王云
(南京理工大學泰州科技學院 計算機科學與技術專業,江蘇 泰州 225300)
隨著信息化的發展,軟件的應用范圍已從最初的科學計算逐步滲透入社會生活各個方面,而人們對軟件需求日益增長的同時,對軟件的質量要求也越來越高。同時軟件開發中,在需求、設計、編碼階段都有可能產生錯誤,軟件缺陷不可避免[1]。軟件測試技術由此應運而生。軟件測試就是為了發現程序中的錯誤而分析或執行程序的過程,是提高軟件產品質量和可靠性的關鍵。現國內外的軟件公司都十分重視軟件測試,開發大型復雜的系統,軟件測試必不可少,特別是當前WEB應用的興起,測試Web網站的功能及性能顯得尤為重要。
本次測試的網站為在線書城系統,現簡要介紹該網站前臺設計部分主要功能。從系統總體來看,在線書城網站主要分成兩大模塊:前臺會員購書模塊和后臺管理員管理模塊。前臺針對用戶使用設計,用于檢索和查看圖書信息以及完成用戶購書操作,后臺從書城管理員角度設計,用于添加圖書、管理員及用戶管理等。在線書城系統前臺功能結構圖如圖1所示。

圖1 網站前臺功能結構圖Fig.1 Website front office functions chart
所謂測試用例即測試執行的最小實體,為特定的目標而設計的一組測試輸入、執行條件和預期的結果,測試用例就是一個文檔,描述輸入、動作、時間或者一個期望的結果,其目的就是確定應用程序能否正常的工作并達到程序所設計的執行結果[2]。
黑盒測試又稱為數據驅動測試。在測試時,把被測程序視為一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下進行。黑盒測試相對與白盒測試較為簡單,一般只需從程序的輸入與輸出入手即可。
軟件自動化測試是相對手工測試而存在的,主要是通過所開發的軟件測試工具、腳本等來實現,具有良好的可操作性、可重復性和高效率等特點。由手工逐個地運行測試用例的操作過程被測試工具自動執行的過程所代替[3]。
功能測試就是對軟件系統各功能進行驗證,根據功能測試用例,檢查軟件系統是否達到用戶要求的功能。功能測試的目的是保證軟件的功能符合軟件需求,是各種測試的基礎和起點[4]。功能測試用例設計一般采用黑盒測試用例設計技術如等價類劃分法、邊界值分析法、因果圖法等設計測試用例。
本系統功能測試的主要內容有:
1)系統數據庫連接與訪問是否正確;
2)系統頁面之間切換是否正確;
3)系統在各操作系統下運行是否正確;
4)網站各功能模塊是否達到預期功能。
等價類劃分是一種典型的黑盒測試方法。等價類劃分法是把所有可能的輸入數據,即程序的輸入域劃分為若干部分(子集),然后從每一個子集中選取少數具有代表性的數據作為測試用例。等價類可分為兩種情況:有效等價類和無效等價類[5]。
下面以“用戶登錄”功能為例,設計測試用例。功能描述:用戶輸入正確的會員編號和口令后,可以正常登錄網站,進行圖書查詢及購買操作。系統設計要求用戶編號由4位數字字符組成,口令由5個字符組成。用戶登錄等價類如表1所示,用戶登錄等價分類法測試用例如表2所示。

表1 用戶登錄等價類Tab.1 User logs on the equivalence

表2 用戶登錄等價分類法測試用例Tab.2 User logs on equivalence classification test case
應用等價類劃分法進行測試用例設計時,應結合在線書城網站實際的數據處理要求及各種業務處理情況,充分選取覆蓋所有有效等價類和所有無效等價類的測試數據用于網站的實際測試。
對被測軟件進行系統級別的測試,針對軟件的功能需求進行功能測試,驗證此軟件是否實現了需求分析中所定義的功能,是否正確實現了功能[6]。現以圖書查詢模塊為例,設計測試用例用于測試網站所有圖書列表頁面的正確性,同時所有的頁面都按照需求有正確的顯示。測試用例設計如表3所示。

表3 圖書列表測試用例Tab.3 Book list of test cases
需要說明的是測試時應設定測試完成的標準。測試完成的標準是執行完所有系統測試的功能、性能測試用例,無2級以上遺留問題。如果進行系統測試時,存在嚴重的質量問題,導致無法繼續,并且在可接受的時間范圍內無法修復,系統測試終止。
性能測試是指利用自動化測試軟件模擬多種正常、峰值、異常條件來對系統施壓,從而驗證系統的各項性能指標是否能夠達到用戶所要求的標準,進而找出系統瓶頸,優化系統性能。性能測試包括負載測試和壓力測試兩個方面[7]。
本次測試內容是測試20個購書者同時訪問系統客戶端時,系統的性能情況。采用Mercury的LoadRunner 7.51測試工具進行壓力測試,驗證是否滿足系統的需求。
測試時首先錄制客戶端的基本操作,然后設置參數以保證20個腳本的輸入是不完全一致的。通過設置執行情景來實施性能測試,打開監控窗口監控系統運行狀況,最后得到系統吞吐率的執行結果如圖2所示。

圖2 網站訪問吞吐率Fig.2 Website access throughput
從上圖可以看出,同樣由于在每次提交數據時設定了集合點,吞吐率大都集中在每次填寫完表單、提交數據的時候。而前4個頁面由于需要下載圖片,因此吞吐率也相對較大。
Web網站測試的要點包括多條,本次測試主要探析了Web系統的核心測試部分,即網站的功能與性能測試,由于篇幅所限,不可能一一列舉所有測試要點及測試方案,文中介紹的測試用例設計對網站的測試技術方案有一定的指導意義。
[1]章文婷,徐中偉,喻剛.面向安全苛求軟件的測試用例自動生成[J].計算機應用研究,2009,26(1):172-174.ZHANG Wen-ting,XU Zhong-wei,YU Gang.Autom ated test data generation for safety criticalsoftware[J].Application Research of Computers,2009,26(1):172-174.
[2]楊萍,李杰.利用LoadRunner實現Web負載測試的自動化[J].計算機技術與發展,2007,17(1):242-244.YANG Ping,LI Jie.Using load runner to test Web’s load automatically[J].Computer Technology and Development,2007,17(1):242-244.
[3]侯艷芳,楚書來.探析軟件測試之集成測試[J].計算機光盤軟件與應用,2012,6(3):78-79.HOU Yan-fang,CHU Shu-lai.Analysis of integration testing of software testing[J].Computer CD Software and Applications,2012,6(3):78-79.
[4]李冰.基于LoadRunner軟件的CRM系統性能測試 [J].計算機與數字工程,2012,4(4):73-76.LI Bing.Performance testing of CRM system based on load runner[J].Computer&Digital Engineering,2012,4(4):73-76.
[5]田鵬,周宗錫.基于開發測試流程的軟件測試用例設計[J].微處理機,2008,12(4):93-95.TIAN Peng,ZHOU Zong-xi.TestCase design based on develop ing and testing process[J].Microproce Ssors,2008,12 (4):93-95.
[6]孟祥豐.軟件性能測試解析與優化 [J].電子設計工程,2011,19(19):26-28.MENG Xiang-feng.Analysis and optimization of software performance test[J].Electronic Design Engineering,2011,19(19):26-28.
[7]張志敏,周四望.針對軟件系統功能的自動化測試工具設計[J].計算機系統應用,2010,19(6):123-125.ZHANG Zhi-min,ZHOU Si-wang.Design of an automatic testing tool for software system functions[J].Computer Systems&Applications,2010,19(6):123-125.
[8]王森,李志忠,徐曉晴.大型接地裝置的性能測試與綜合評價[J].陜西電力,2012(1):28-32.WANG Sen,LI Zhi-zhong,XU Xiao-qing.Performance testing and comprehensive evaluation on large grounding connection[J].Shaanxi Electric Power,2012(1):28-32.