劉繼華
(呂梁學(xué)院 計(jì)算機(jī)系,山西 離石 033000)
Web應(yīng)用軟件測試內(nèi)容及方法的研究
劉繼華
(呂梁學(xué)院 計(jì)算機(jī)系,山西 離石 033000)
軟件測試是提高軟件質(zhì)量的有效手段。隨著Web應(yīng)用軟件規(guī)模的不斷擴(kuò)大,軟件測試技術(shù)的研究逐漸成為熱點(diǎn)。對軟件測試基本概念以及傳統(tǒng)軟件測試的內(nèi)容及方法作了簡要介紹,通過比較傳統(tǒng)軟件與Web應(yīng)用軟件,就Web應(yīng)用軟件測試內(nèi)容及方法作具體探析,對基于Web應(yīng)用軟件測試技術(shù)的研究具有一定的價值。
軟件測試;Web應(yīng)用軟件;測試方法
隨著Internet的快速發(fā)展,Web應(yīng)用軟件已廣泛應(yīng)用于商業(yè)、工業(yè)、銀行、財政、教育、政府和娛樂等領(lǐng)域,但所存在的軟件質(zhì)量問題可能造成巨大的損失,所以對于Web應(yīng)用軟件質(zhì)量如何保障,如何對其進(jìn)行測試顯得尢為重要,由于現(xiàn)有的測試內(nèi)容和方法并不能完全適應(yīng)當(dāng)前WEB應(yīng)用軟件開發(fā)實(shí)踐的需要,所以對WEB應(yīng)用軟件測試提出新的測試方法和內(nèi)容顯得尤為必要。
軟件測試就是利用測試工具、按照測試方案和流程對產(chǎn)品進(jìn)行功能和性能測試,甚至根據(jù)需要編寫不同的測試工具,設(shè)計(jì)和維護(hù)測試系統(tǒng),對測試方案可能出現(xiàn)的問題進(jìn)行分析和評估,執(zhí)行測試用例后,需要跟蹤故障,以確保開發(fā)的產(chǎn)品適合需求。
軟件測試的具體內(nèi)容是驗(yàn)證(verification)和確認(rèn)(validation),其中驗(yàn)證就是保證軟件正確地實(shí)現(xiàn)某些特定功能的一系列活動,保證軟件以正確的方式完成特定事件。驗(yàn)證的主要工作是:
①確定軟件生存周期中處于一個給定階段的產(chǎn)品是否達(dá)到前階段確立的需求的過程。
②程序正確性的形式證明,即采用形式理論證明程序符合設(shè)計(jì)規(guī)約規(guī)定的過程。
③評市、審查、測試、檢查、審計(jì)等各類活動,或?qū)δ承╉?xiàng)處理、服務(wù)或文件等是否和規(guī)定的需求相一致進(jìn)行判斷并提出報告。
確認(rèn)是一系列的活動和過程,目的是想證實(shí)在一個給定的外部環(huán)境中軟件的邏輯正確性。即保證軟件做了你所期望的事情。
①靜態(tài)確認(rèn),不在計(jì)算機(jī)上實(shí)際執(zhí)行程序,通過人工或程序分析來證明軟件的正確性。
②動態(tài)確認(rèn),通過執(zhí)行程序做分析,測試程序的動態(tài)行為,以證實(shí)軟件是否存在問題。
軟件測試的對象不僅僅是程序測試,軟件測試應(yīng)該包括整個軟件開發(fā)期間各個階段所產(chǎn)生的文檔,如需求規(guī)格說明、概要設(shè)計(jì)文檔、詳細(xì)設(shè)計(jì)文檔,軟件測試的主要對象當(dāng)然還是源程序。
單元測試是最微小規(guī)模的測試,用來測試某個功能或代碼塊,一般由程序員而非測試員來做,因?yàn)樗枰纼?nèi)部程序設(shè)計(jì)和編碼的細(xì)節(jié)知識。這個工作不容易做好,除非應(yīng)用系統(tǒng)有一個設(shè)計(jì)良好的體系結(jié)構(gòu),還可能需要開發(fā)測試驅(qū)動器模塊或測試套具。
集成測試是指一個應(yīng)用系統(tǒng)的各個部件的聯(lián)合測試,是單元測試的邏輯擴(kuò)展。主要是識別組合單元時出現(xiàn)的問題。一般采用的集成策略有自頂向下集成、自底向上集成、傘形集成、突擊式。
系統(tǒng)測試是基于系統(tǒng)整體需求說明書的黑盒類測試,應(yīng)覆蓋系統(tǒng)所有聯(lián)合的部件,是針對整個產(chǎn)品系統(tǒng)進(jìn)行的測試,目的是驗(yàn)證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不相符合或與之矛盾的地方。系統(tǒng)測試的范圍涉及到功能、壓力、負(fù)載、兼容性、安全性、升級、可用性、可計(jì)算性、配置、啟動和恢復(fù)以及沖擊等方面。
驗(yàn)收測試是根據(jù)測試計(jì)劃和結(jié)果對系統(tǒng)進(jìn)行測試和接收,它讓系統(tǒng)用戶決定是否接收系統(tǒng),是一項(xiàng)確定產(chǎn)品是否能夠滿足合同或用戶所規(guī)定需求的測試,多采用稱為α、β測試。β測試是軟件的多個用戶在一個或多個用戶的實(shí)際使用環(huán)境下進(jìn)行的測試。開發(fā)者通常不在測試現(xiàn)場,β測試不能由程序員或測試員完成。α測試是由一個用戶在開發(fā)環(huán)境下進(jìn)行的測試,也可以是公司內(nèi)部的用戶在模擬實(shí)際操作環(huán)境下進(jìn)行的受控測試,α測試不能由該系統(tǒng)的程序員或測試員完成。
回歸測試是指在發(fā)生修改之后重新測試先前的測試以保證修改的正確性,驗(yàn)證以前發(fā)現(xiàn)和修復(fù)的錯誤是否在新軟件版本上再次出現(xiàn)。目的在于驗(yàn)證以前出現(xiàn)過但已經(jīng)修復(fù)好的缺陷不再重新出現(xiàn)。一般指對某已知修正的缺陷再次圍繞它原來出現(xiàn)時的步驟重新測試。在驗(yàn)證修好的缺陷時不僅要服從原有缺陷出現(xiàn)時的步驟重新測試,而且還要測試有可能受影響的所有功能。因此應(yīng)當(dāng)鼓勵對所有回歸測試用例進(jìn)行自動化測試。
Web應(yīng)用軟件一般采用客戶機(jī)/服務(wù)器/數(shù)據(jù)服務(wù)器的計(jì)算模式,在這種模式下,客戶機(jī)層用于人機(jī)交互與應(yīng)用的表示,web服務(wù)器層用于事物處理,數(shù)據(jù)服務(wù)器層用于應(yīng)用數(shù)據(jù)的存取和管理。其通常是分布式的、并發(fā)的多用戶的和異構(gòu)的。
由于系統(tǒng)結(jié)構(gòu)的不同,基于WEB的軟件測試與傳統(tǒng)的軟件測試也有較大區(qū)別,對軟件測試提出了新挑戰(zhàn)。主要表現(xiàn)在以下幾個方面:
①網(wǎng)絡(luò)和WEB應(yīng)用軟件的復(fù)雜性及不可預(yù)見性是WEB應(yīng)用軟件測試面臨的最大困難,所以需要大量測試人員;另外,WEB應(yīng)用不斷變化,自身又依賴大量的技術(shù),這些都增加了Web應(yīng)用軟件測試的困難。
②由于分布式、開放式、并發(fā)、多用戶和異構(gòu)性,Web測試需要兼容性測試、壓力測試及多元化的功能測試對象,測試時還要滿足不同的計(jì)算機(jī)對編程環(huán)境的要求,實(shí)時性的要求較高使得傳統(tǒng)的測試技術(shù)無法勝任。
由于Web應(yīng)用軟件的特殊性,在傳統(tǒng)測試方法的基礎(chǔ)上,Web應(yīng)用軟件自身具有其特有的測試內(nèi)容和方法。
Web應(yīng)用軟件的功能測試主要包含鏈接測試、表單測試、Cookies測試、設(shè)計(jì)語言測試以及數(shù)據(jù)庫測試。
①鏈接測試主要測試是否有鏈接、鏈接位置是否正確等。
②表單測試需要驗(yàn)證服務(wù)器能否正確保存數(shù)據(jù),而且后臺運(yùn)行的程序能否正確解釋和使用這些信息,另外數(shù)據(jù)正確性驗(yàn)證、異常處理等都需測試。
③Cookies測試主要是確認(rèn)該cookie是否能夠正常工作而且已對這些信息已經(jīng)加密,需要驗(yàn)證次數(shù)累計(jì)是否正確。
④設(shè)計(jì)語言測試主要測試語言的不同是否會影響客戶端或服務(wù)器端的正常運(yùn)行。
⑤數(shù)據(jù)庫測試主要測試數(shù)據(jù)一致性問題和輸出問題。由于用戶提交的表單信息不正確有可能會造成數(shù)據(jù)不一致;網(wǎng)絡(luò)速度或程序設(shè)計(jì)問題等也可能會引起數(shù)據(jù)輸出錯誤。[1]
WEB應(yīng)用軟件的性能測試主要包含:負(fù)載測試、壓力測試、連接速度測試等。
①連接速度測試主要測試WEB軟件是否會由于網(wǎng)絡(luò)或多用戶等原因造成的頁面超時或速度過慢,是否會引起數(shù)據(jù)丟失等問題。
②負(fù)載測試主要測量Web系統(tǒng)在某種負(fù)載級別上的運(yùn)行情況,測試系統(tǒng)在需求范圍內(nèi)能否正常工作。負(fù)載級別一般設(shè)定同一時刻用戶數(shù)量,也可以是在線數(shù)據(jù)處理的數(shù)量。
③壓力測試是測試系統(tǒng)的限制和故障恢復(fù)能力,也就是測試Web應(yīng)用系統(tǒng)在什么情況下會崩潰。因?yàn)楹诳统3L峁╁e誤的數(shù)據(jù)負(fù)載,直到Web應(yīng)用系統(tǒng)崩潰,接著當(dāng)系統(tǒng)重新啟動時獲得存取權(quán),所以壓力測試對于WEB應(yīng)用軟件非常重要,主要的區(qū)域包括表單測試、登陸情況和其他信息傳輸頁面等。[2]
可用性測試一般包括導(dǎo)航測試、圖形測試、內(nèi)容測試以及整體界面測試。
①導(dǎo)航測試主要測試導(dǎo)航的直觀性、易導(dǎo)性,是否需要站點(diǎn)地圖、搜索引擎或其他的導(dǎo)航幫助?頁面結(jié)構(gòu)、導(dǎo)航、菜單、連接的風(fēng)格是否一致。
②圖形測試主要測試圖片、動畫位置是否井然有序,是否有明確用途;測試頁面字體的風(fēng)格是否一致;測試背景、字體、前景顏色是否和諧;圖片的格式、大小質(zhì)量如何。
③內(nèi)容測試用來檢驗(yàn)Web應(yīng)用系統(tǒng)提供信息的正確性、準(zhǔn)確性和相關(guān)性。
④整體界面測試主要測試整個Web應(yīng)用系統(tǒng)的頁面結(jié)構(gòu)設(shè)計(jì),是給用戶的一個整體感。主要考慮網(wǎng)頁的最終用戶、網(wǎng)頁的設(shè)計(jì)風(fēng)格、風(fēng)格是否統(tǒng)一、是否協(xié)調(diào)等問題。[3]
對于WEB應(yīng)用軟件,兼容性測試應(yīng)包含:平臺與瀏覽器測試、分辨率測試、Modem/連接速率測試、打印機(jī)測試、組合測試等。兼容性測試可采用創(chuàng)建一個兼容性矩陣,測試軟件在不同平臺、不同的瀏覽器、不同的分辨率等多種條件下的運(yùn)行情況。
安全性測試在WEB應(yīng)用軟件測試中是必不可少的一個環(huán)節(jié),不管應(yīng)用程序是否需要用戶輸入口令以訪問站點(diǎn),測試人員必須對目前已知的Internet安全隱患進(jìn)行檢測。主要的測試包含:用戶名和密碼、程序運(yùn)行超時限制、日志文件檢測、文件加密情況、授權(quán)問題、防火墻、緩沖區(qū)溢出等測試。
WEB應(yīng)用軟件的接口測試是測試瀏覽器與服務(wù)器的接口、外部接口測試等。例如,網(wǎng)上商店可能要實(shí)時驗(yàn)證信用卡數(shù)據(jù)以減少欺詐行為的發(fā)生;另外,測試人員還應(yīng)及時對接口錯誤進(jìn)行處理。[4]
總之,Web應(yīng)用軟件測試與傳統(tǒng)測試有相同之處,也有較大差異,如何有效地針對Web應(yīng)用軟件的特點(diǎn)進(jìn)行測試,而又合理地利用傳統(tǒng)測試技術(shù),是Web應(yīng)用軟件測試研究的重點(diǎn),由于Web應(yīng)用軟件自身的復(fù)雜性、運(yùn)行環(huán)境的不同、網(wǎng)絡(luò)問題、多用戶等因素,有關(guān)它的測試技術(shù)、內(nèi)容及方法的研究還有待于進(jìn)一步的探討。
[1]劉智勇.Web應(yīng)用軟件測試技術(shù)研究及自動化測試工具的實(shí)現(xiàn)[D].湖南大學(xué),2005.
[2]黃寧,余瑩,張大勇.Web服務(wù)軟件測試技術(shù)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2004,40(35):47-49.
[3]吳信生.如何提高軟件測試水平[N].中國計(jì)算機(jī)報,2005,(10):25.
[4]Gledford J.Myers.The Art Of Software Testing(second edition)[M].Newyork:John Wiley and Sons,2004.
Research on Web Application Software Testing Content and Method
LIU Ji-hua
(Department of Computer Science Lvliang College,Lishi Shanxi 033000)
Software testing is an effective means of improving the quality of software.With the expand of the scale of Web application software,the software testing technology research has become a hotspot.The concepts of software testing and the traditional software testing content and method has been introduced briefly in this paper.By comparing the traditional software and Web application software,Web application software testing content and method has been analysed specifically.This will contributes to the software testing technology research based on Web application.
software testing;Web application software;testing method
TP31
A
1673-2014(2011)05-0046-03
2011—04—08
劉繼華(1975—),女,山西稷山人,講師,主要從事軟件工程研究。
(責(zé)任編輯 李學(xué)斌)