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