謝栓庫
摘 要:基于web的軟件測試與傳統意義上的單機軟件測試既有相同之處,也有不同之處。用戶需求的實現只是基于web的軟件測試的基礎。如何在時間短、任務量大的情況下進行web測試,對此提出了新的挑戰。文章從web測試的測試類型方面入手,對功能、性能、可用性等基于web系統的測試方法進行討論。
關鍵詞:軟件測試;web系統;測試研究
近年來隨著internet的興起與快速增長,web對于我們的工作和生活產生了深遠的影響,電子商務和電子政務等web應用的興起,基于b/s結構的軟件日舉國強勁發展,正在成為未來軟件模式的趨勢。同時,由于web系統開發的開發規模較小、周期較短、成本較低、便宜于維護等原因,使得多數的中小型規模的軟件企業都愿意在此進行投入。通常意義上的大型軟件例如《魔獸世界》、《星際爭霸》等,從軟件的設計、開發、測試到最終版本發布,周期通常以年來計算;而基于web的應用軟件的發布周期則短很多,通常以月,甚至是以日來計算。本文的研究就是基于這種需求,作者基于最近幾年的實際項目經驗,結合已經進行過的web測試實踐,總結出的在時間短、傷務量大的情況下,基于目標的web性能測試方法,具有較強的目的性和可操作性。
一、概述
一般來說,web測試主要可以分為功能性測試和非功能性測試兩種:功能性測試就是參照軟件產品的需求規格說明書,根據功能測試用例對軟件的各個功能進行逐一驗證,檢查測試的軟件是否達到最終的要求;而非功能性需求會涉及到一些諸如性能、可用性等屬性。測試的目的:不同的階段,測試的目的也是不同的。我對web測試分成三個階段,第一階段,主要是功能性測試,驗證基本功能是否達到要求,同時進行部分非功能性測試,以檢測系統是否易用;第二個階段是系統的性能測試,這個階段的目的是檢測系統在功能達標的情況下,是否存在性能的瓶頸,為系統優化打好基礎;第三個階段是進行系統的安全性測試。
二 安全性測試
Web應用系統的安全性測試主要有:登錄及權限、超時限制、目錄設置、日志文件、加密解密、腳本權限。
1 登錄及權限
現在的Web應用系統采用先注冊,后登錄的方式。因此,必須測試有效和無效的用戶名和密碼,要注意到是否大小寫敏感,可以試多少次的限制,是否可以不登錄而直接瀏覽某個頁面等。
登錄及權限的主要測試內容包括:驗證用戶輸入有效性,比如輸入錯誤的用戶名或密碼則不能登錄;不能輸入非法字符,如:% 4.3 加密解密測試
加密解密測試主要測試內容包括:地址是否為明碼?URL中是否用戶名和密碼是否為加密?加密是否正確?
2腳本語言測試
服務器端的腳本常常構成安全漏洞,這些漏洞又常常被黑客利用。所以還要測試沒有經過授權,就不能在服務器端放置和編輯腳本的問題。
三、性能方面的測試
首先要做好性能測試的準備,包括:明確測試目標;依據產品功能說明書、性能需求說明書,確定系統要達到的性能指標。刪除瀏覽器中的緩存數據。性能測試的場景選取:重點業務的邏輯點;與數據庫測試相結合。
1)連接速度測試
連接速度測試主要包括:根據上網方式的變化而變化,如電話撥號、寬帶上網等;不同用戶操作,如瀏覽、下載;頁面有超時的限制,如果響應速度太慢,用戶可能還沒來得及瀏覽內容,就需要重新登陸了,也可能引起數據丟失,使用戶得不到真是的頁面。
2)負載測試
負載測試是為了測量Web系統在某一負載級別上的性能,以保證Web系統需求范圍內能正常工作。負載級別可以分為:某個時刻同時訪問Web系統的用戶數量;在線數據處理的數量。例如:Web應用系統能允許多少個用戶同時在線?如果超過了這個數量,會出現什么現象?Web應用系統能否處理大量用戶對同一個頁面的請求?負載測試要選取應用系統的重點業務功能進行測試,根據系統的功能來確定登錄、瀏覽、查詢、修改等不同操作的頻度和比率,制定合適的負載測試計劃。
3)數據庫測試
在Web應用中,最常用的數據庫類型是關系型數據庫,可以使用SQL對信息處理。一般情況下,可能發生兩種錯誤,分別是數據一致性錯誤和輸出錯誤。數據一致性錯誤主要是由于用戶提交的表單信息不正確而造成的,而輸出錯誤主要是由于網絡速度或程序設計問題等引起的。數據庫測試主要內容包括:數據庫安全性測試、數據備份恢復測試、災難恢復測試、數據庫性能測試。
四、web系統的非功能性測試
非功能性需求會涉及到一些諸如性能、可用性等屬性。常見的非功能性測試主要包括以下幾個類型:
(1)性能測試。性能測試包括很多種,但是主要分為以下幾類:(1)連接速度測試。當用戶點開一個頁面或者激活一個窗口的時候,如果web系統響應時間太長,或者執行某個操作,系統由于程序或者帶寬的限制導致得到的操作結果十分緩慢,這樣就會導致用戶的滿意度直線下降。(2)負載測試。負載測試是為了衡量web系統,在某種特定負載級別上的性能,以確定web系統能夠正常工作的范圍。例如:web應用系統允許多少個用戶同時在線?多少個用戶執行并發操作?如果超過了這個范圍,會有什么影響?(3)壓力測試。進行壓力測試是指以施加壓力破壞一個web應用系統的方式對系統進行測試,以檢驗系統在這種情況下的運行情況。壓力測試不達標主要有以下兩種情況。一是程序出現異常,大量數據的讀寫可能會出現代碼或數據庫的異常。二是程序讀寫效率低下。壓力測試的目的是測試用系統在什么情況下會崩潰?崩潰的后果是什么?在web系統中,對于表單、登錄和其他信息傳輸頁面,都需要進行壓力測試。
(2)可用性測試。可用性測量試主要進行的是非功能性測試,其中包括:(1)導航測試。導航測試是否直觀?因為在同一個頁面上放太多的信息,往往起到與預期相反的效果。(2)圖形測試。一個web應用系統的圖形可以包括圖片、動畫、按鈕等。力片和動畫除了能起到美化頁面的功能之外,還可以進行廣告宣傳。圖形測試的內容有:①保證頁面元素的美觀,不要雜亂無章地排列,同時圖片和動畫要盡可能的小,以免浪費傳輸時間。②驗證所有相關聯的頁面布局和字體的風格是否一致。③背景顏色應該與字體顏色和前景顏色相搭配。(3)內容測試。內容測試用來檢驗web應用系統所提供信息是否準確,而錯誤的內容,很可能導致法律糾紛等一系列問題的出現。
四、結語
基于web的軟件測試與傳統意義上的單機軟件測試既有相同之處,也有不同之處。如何在時間短、任務量大的情況下進行web軟件測試,對此提出了新的挑戰。因此,不論是基于web的軟件測試,還是傳統意義上的單機應用軟件的測試,最好要由測試團隊在充足的測試時間內來完成,這樣可以將由于測試導致的風險降低至最小。
參考文獻:
[1] Patton R.軟件測試[M].周予濱,姚靜,譯.北京:機械工業出版社,2002.
[2] 齊治昌,譚慶學,寧洪.軟件工程[M].2版.北京:高等教育出版社,2004.
[3] 杜文潔,景秀麗.軟件測試基礎教程[M].北京:水利水電出版社,2008.
[4] 路曉麗.軟件測試技術[M].北京:機械工業出版社,2007.
[5] 陳能技.QTP自動化測試實踐[M].北京:電子工業出版社,200