江蘇蘇源高科技有限公司 張 彥
We b應(yīng)用軟件測試方法的研究
江蘇蘇源高科技有限公司 張 彥
提高軟件質(zhì)量的最有效手段是軟件測試。近年來隨著信息化不斷發(fā)展,Web應(yīng)用軟件的規(guī)模也隨之不斷擴(kuò)大,針對Web軟件的測試技術(shù)逐漸成為行業(yè)熱點(diǎn)。本文介紹了軟件測試基本概念,以及Web軟件測試的內(nèi)容及方法,在Web應(yīng)用軟件測試技術(shù)方面作了深入的討論。
Web;應(yīng)用軟件;測試方法
伴隨信息技術(shù)的飛速進(jìn)步,各種Web應(yīng)用成為軟件開發(fā)的重點(diǎn),該類軟件具有安裝簡便快捷、易于操作使用等優(yōu)點(diǎn)。Web應(yīng)用軟件是經(jīng)過Internet技術(shù)連接并能夠傳輸被處理的數(shù)據(jù)的客戶端軟件。在市場要求與技術(shù)發(fā)展的促進(jìn)下,Web的應(yīng)用軟件數(shù)量和類型持續(xù)增長,軟件開發(fā)時(shí)間變短,軟件規(guī)模與軟件復(fù)雜度不斷增加,如何提高Web軟件品質(zhì)逐步變?yōu)橹攸c(diǎn)問題。作為確保Web軟件品質(zhì)與穩(wěn)定性的關(guān)鍵工具,Web應(yīng)用程序測試變成軟件開發(fā)進(jìn)程的關(guān)鍵組成部分。由于Web應(yīng)用程序的異構(gòu)、分布式、并發(fā)和平臺無關(guān)等特性,用于測試Web應(yīng)用程序比經(jīng)典應(yīng)用程序測試更難,如何更好的測試Web軟件在軟件測試領(lǐng)域提出了新挑戰(zhàn)。
通常的Web應(yīng)用軟件模式為客戶端(通常為瀏覽器)、Web服務(wù)器、數(shù)據(jù)服務(wù)器,在這種模式下,客戶端層顯示人機(jī)交互界面及數(shù)據(jù)展示,Web服務(wù)器層則處理各種事物,數(shù)據(jù)服務(wù)器層提供存取和管理應(yīng)用數(shù)據(jù)的能力。這種模式一般是分布式的、多用戶并發(fā)的以及異構(gòu)的。
因?yàn)橄到y(tǒng)結(jié)構(gòu)的差異,傳統(tǒng)的軟件測試與WEB類型的軟件測試也有非常大的不同,這對于軟件測試又是一種新的挑戰(zhàn)。差異主要表現(xiàn)在以下幾個(gè)方面:
①Web軟件應(yīng)用范圍不斷變化,采用技術(shù)也日新月異,這些變化都極大的增加了Web軟件的測試難度;此外,Web軟件的復(fù)雜度及網(wǎng)絡(luò)狀態(tài)的不可預(yù)見性,也是測試Web軟件面臨的主要困難之一,往往需要大量的測試資源及人力。
②Web軟件測試還需要對軟件的兼容性、壓力及多元化的功能進(jìn)行測試,以針對Web軟件的分布式、并發(fā)性、開放性、異構(gòu)性及多用戶的特點(diǎn),測試還要考慮在各種硬件環(huán)境及軟件環(huán)境下,系統(tǒng)的響應(yīng)時(shí)間要求。
Web軟件系統(tǒng)通常擁有多層級架構(gòu),在與客戶端通訊時(shí)也會有各種不同的方式,這就造成了Web軟件的復(fù)雜度層層升高。各種不同的瀏覽器、相同瀏覽器的不同版本,對應(yīng)的顯示技術(shù)都不一樣,使得信息的展示也會不同,往往在一種瀏覽器上正常顯示的內(nèi)容,在另一種上就不能正常的顯示。服務(wù)器在多用戶并發(fā)時(shí),響應(yīng)時(shí)間也會有所下降甚至失敗,導(dǎo)致用戶體驗(yàn)度下降。如何發(fā)現(xiàn)、分析、排除這種問題,常常都需要經(jīng)過多次測試,這樣才能確保Web軟件擁有優(yōu)異的性能、良好的兼容性及極大的穩(wěn)定性。
Web軟件的功能測試主要側(cè)重點(diǎn)在:網(wǎng)頁鏈接測試、表單提交測試、客戶端Cookies測試、腳本語言測試以及數(shù)據(jù)庫測試。
①網(wǎng)頁鏈接測試包含檢查顯示信息是否正確、提示是否合理、是否能正常跳轉(zhuǎn)及跳轉(zhuǎn)位置正確。
②表單提交測試包含客戶端是否驗(yàn)證輸入,服務(wù)端是否驗(yàn)證輸入,驗(yàn)證不通過時(shí)提示信息是否準(zhǔn)確,提交正確信息后是否能得到正確結(jié)果,以及異常是否得到處理。
③客戶端Cookies測試包含是否能正常保存用戶本地信息,是否對重要信息加密。
④腳本語言測試包含測試腳本在不同的瀏覽器及相同瀏覽器的不同版本中,是否能正常的運(yùn)行。
⑤數(shù)據(jù)庫測試包含用戶提交異常字符是否會導(dǎo)致數(shù)據(jù)無法正常存入或讀取,以及多客戶端同時(shí)提交時(shí)是否會造成數(shù)據(jù)一致性失效。[1]
Web應(yīng)用軟件的性能測試主要側(cè)重點(diǎn)在:連接速度測試、負(fù)載測試、壓力測試等。
①連接速度測試用于測試Web軟件對于用戶發(fā)出的客戶端請求,服務(wù)端響應(yīng)到達(dá)的時(shí)間,在網(wǎng)絡(luò)擁堵或者多用戶并發(fā)時(shí),是否響應(yīng)會過慢,甚至出現(xiàn)無響應(yīng)的情況。
②負(fù)載測試主要用于在一定負(fù)載級別上,系統(tǒng)是否能正常響應(yīng)客戶請求。負(fù)載級別一般指同一時(shí)刻的并發(fā)用戶數(shù),或者是在線數(shù)據(jù)處理的數(shù)量。
③壓力測試用于測試系統(tǒng)的極限及故障恢復(fù)能力,發(fā)現(xiàn)Web系統(tǒng)崩潰的原因。通常黑客也會通過發(fā)送大量的錯(cuò)誤數(shù)據(jù),導(dǎo)致系統(tǒng)崩潰,以獲得系統(tǒng)權(quán)限的漏洞,所以在表單提交或其他信息交互界面要重點(diǎn)做壓力測試。[2]
安全性對于Web軟件舉足輕重,特別是對于網(wǎng)絡(luò)業(yè)務(wù)而言,假設(shè)不能保證安全性,這是非??膳碌?。傳統(tǒng)軟件安全測試包含:用戶名和密碼、程序運(yùn)行超時(shí)限制、日志文件檢測、文件加密情況、授權(quán)問題、防火墻、緩沖區(qū)溢出等測試。Web軟件的安全測試還包含跨站腳本檢查、SQL注入檢查等。[3]
①跨站腳本:Cross site scripting(XSS),黑客通過郵件發(fā)送,或者輸入在網(wǎng)頁上顯示內(nèi)容的表單中,通過輸入<script>標(biāo)簽引發(fā)用戶客戶端執(zhí)行非法腳本,導(dǎo)致嚴(yán)重的后果。測試人員一般通過直接輸入<script>標(biāo)簽,或者以組合方式輸入<script>標(biāo)簽后提交表單,檢查系統(tǒng)是否對此進(jìn)行的必要的驗(yàn)證。
②SQL注入:黑客可以通過在需要驗(yàn)證的表單中,輸入部分SQL內(nèi)容以打斷正常的SQL,達(dá)到繞開登錄界面或取得數(shù)據(jù)庫權(quán)限等目的。測試人員在所有會執(zhí)行SQL的表單中,輸入破壞性的SQL,來驗(yàn)證系統(tǒng)是否能阻斷這種惡意操作。
測試Web軟件的兼容性應(yīng)通過以下幾個(gè)方面:不同平臺與瀏覽器測試、多種分辨率測試、網(wǎng)絡(luò)連接速率測試、網(wǎng)絡(luò)打印測試、各種組合測試等。測試人員可以創(chuàng)建兼容性矩陣來測試兼容性,測試Web軟件在各種平臺、各種瀏覽器、各種分辨率等不同條件下組合運(yùn)行情況。
Web軟件的接口測試用于測試系統(tǒng)與外部接口交互測試等。比如,網(wǎng)絡(luò)支付需要鏈接支付網(wǎng)關(guān)的驗(yàn)證接口,以驗(yàn)證用戶身份是否合法。
Web軟件的測試和經(jīng)典軟件測試有異曲同工的地方,也有所差異。在充分的了解Web軟件自身的特點(diǎn)后,汲取經(jīng)典軟件測試的經(jīng)驗(yàn),合理的針對Web軟件在網(wǎng)絡(luò)、異構(gòu)、多平臺、多用戶、分布式等特性進(jìn)行測試,有效的提高了Web軟件的健壯性、穩(wěn)定性、可效性和及時(shí)性。在Web軟件迅猛發(fā)展的未來,Web軟件的測試方法還有很長路要走。
[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ī)報(bào),2005,(10):25.