王云
(南京理工大學(xué)泰州科技學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè),江蘇 泰州 225300)
隨著信息化的發(fā)展,軟件的應(yīng)用范圍已從最初的科學(xué)計(jì)算逐步滲透入社會生活各個(gè)方面,而人們對軟件需求日益增長的同時(shí),對軟件的質(zhì)量要求也越來越高。同時(shí)軟件開發(fā)中,在需求、設(shè)計(jì)、編碼階段都有可能產(chǎn)生錯(cuò)誤,軟件缺陷不可避免[1]。軟件測試技術(shù)由此應(yīng)運(yùn)而生。軟件測試就是為了發(fā)現(xiàn)程序中的錯(cuò)誤而分析或執(zhí)行程序的過程,是提高軟件產(chǎn)品質(zhì)量和可靠性的關(guān)鍵。現(xiàn)國內(nèi)外的軟件公司都十分重視軟件測試,開發(fā)大型復(fù)雜的系統(tǒng),軟件測試必不可少,特別是當(dāng)前WEB應(yīng)用的興起,測試Web網(wǎng)站的功能及性能顯得尤為重要。
本次測試的網(wǎng)站為在線書城系統(tǒng),現(xiàn)簡要介紹該網(wǎng)站前臺設(shè)計(jì)部分主要功能。從系統(tǒng)總體來看,在線書城網(wǎng)站主要分成兩大模塊:前臺會員購書模塊和后臺管理員管理模塊。前臺針對用戶使用設(shè)計(jì),用于檢索和查看圖書信息以及完成用戶購書操作,后臺從書城管理員角度設(shè)計(jì),用于添加圖書、管理員及用戶管理等。在線書城系統(tǒng)前臺功能結(jié)構(gòu)圖如圖1所示。
圖1 網(wǎng)站前臺功能結(jié)構(gòu)圖Fig.1 Website front office functions chart
所謂測試用例即測試執(zhí)行的最小實(shí)體,為特定的目標(biāo)而設(shè)計(jì)的一組測試輸入、執(zhí)行條件和預(yù)期的結(jié)果,測試用例就是一個(gè)文檔,描述輸入、動作、時(shí)間或者一個(gè)期望的結(jié)果,其目的就是確定應(yīng)用程序能否正常的工作并達(dá)到程序所設(shè)計(jì)的執(zhí)行結(jié)果[2]。
黑盒測試又稱為數(shù)據(jù)驅(qū)動測試。在測試時(shí),把被測程序視為一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下進(jìn)行。黑盒測試相對與白盒測試較為簡單,一般只需從程序的輸入與輸出入手即可。
軟件自動化測試是相對手工測試而存在的,主要是通過所開發(fā)的軟件測試工具、腳本等來實(shí)現(xiàn),具有良好的可操作性、可重復(fù)性和高效率等特點(diǎn)。由手工逐個(gè)地運(yùn)行測試用例的操作過程被測試工具自動執(zhí)行的過程所代替[3]。
功能測試就是對軟件系統(tǒng)各功能進(jìn)行驗(yàn)證,根據(jù)功能測試用例,檢查軟件系統(tǒng)是否達(dá)到用戶要求的功能。功能測試的目的是保證軟件的功能符合軟件需求,是各種測試的基礎(chǔ)和起點(diǎn)[4]。功能測試用例設(shè)計(jì)一般采用黑盒測試用例設(shè)計(jì)技術(shù)如等價(jià)類劃分法、邊界值分析法、因果圖法等設(shè)計(jì)測試用例。
本系統(tǒng)功能測試的主要內(nèi)容有:
1)系統(tǒng)數(shù)據(jù)庫連接與訪問是否正確;
2)系統(tǒng)頁面之間切換是否正確;
3)系統(tǒng)在各操作系統(tǒng)下運(yùn)行是否正確;
4)網(wǎng)站各功能模塊是否達(dá)到預(yù)期功能。
等價(jià)類劃分是一種典型的黑盒測試方法。等價(jià)類劃分法是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分為若干部分(子集),然后從每一個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。等價(jià)類可分為兩種情況:有效等價(jià)類和無效等價(jià)類[5]。
下面以“用戶登錄”功能為例,設(shè)計(jì)測試用例。功能描述:用戶輸入正確的會員編號和口令后,可以正常登錄網(wǎng)站,進(jìn)行圖書查詢及購買操作。系統(tǒng)設(shè)計(jì)要求用戶編號由4位數(shù)字字符組成,口令由5個(gè)字符組成。用戶登錄等價(jià)類如表1所示,用戶登錄等價(jià)分類法測試用例如表2所示。
表1 用戶登錄等價(jià)類Tab.1 User logs on the equivalence
表2 用戶登錄等價(jià)分類法測試用例Tab.2 User logs on equivalence classification test case
應(yīng)用等價(jià)類劃分法進(jìn)行測試用例設(shè)計(jì)時(shí),應(yīng)結(jié)合在線書城網(wǎng)站實(shí)際的數(shù)據(jù)處理要求及各種業(yè)務(wù)處理情況,充分選取覆蓋所有有效等價(jià)類和所有無效等價(jià)類的測試數(shù)據(jù)用于網(wǎng)站的實(shí)際測試。
對被測軟件進(jìn)行系統(tǒng)級別的測試,針對軟件的功能需求進(jìn)行功能測試,驗(yàn)證此軟件是否實(shí)現(xiàn)了需求分析中所定義的功能,是否正確實(shí)現(xiàn)了功能[6]。現(xiàn)以圖書查詢模塊為例,設(shè)計(jì)測試用例用于測試網(wǎng)站所有圖書列表頁面的正確性,同時(shí)所有的頁面都按照需求有正確的顯示。測試用例設(shè)計(jì)如表3所示。
表3 圖書列表測試用例Tab.3 Book list of test cases
需要說明的是測試時(shí)應(yīng)設(shè)定測試完成的標(biāo)準(zhǔn)。測試完成的標(biāo)準(zhǔn)是執(zhí)行完所有系統(tǒng)測試的功能、性能測試用例,無2級以上遺留問題。如果進(jìn)行系統(tǒng)測試時(shí),存在嚴(yán)重的質(zhì)量問題,導(dǎo)致無法繼續(xù),并且在可接受的時(shí)間范圍內(nèi)無法修復(fù),系統(tǒng)測試終止。
性能測試是指利用自動化測試軟件模擬多種正常、峰值、異常條件來對系統(tǒng)施壓,從而驗(yàn)證系統(tǒng)的各項(xiàng)性能指標(biāo)是否能夠達(dá)到用戶所要求的標(biāo)準(zhǔn),進(jìn)而找出系統(tǒng)瓶頸,優(yōu)化系統(tǒng)性能。性能測試包括負(fù)載測試和壓力測試兩個(gè)方面[7]。
本次測試內(nèi)容是測試20個(gè)購書者同時(shí)訪問系統(tǒng)客戶端時(shí),系統(tǒng)的性能情況。采用Mercury的LoadRunner 7.51測試工具進(jìn)行壓力測試,驗(yàn)證是否滿足系統(tǒng)的需求。
測試時(shí)首先錄制客戶端的基本操作,然后設(shè)置參數(shù)以保證20個(gè)腳本的輸入是不完全一致的。通過設(shè)置執(zhí)行情景來實(shí)施性能測試,打開監(jiān)控窗口監(jiān)控系統(tǒng)運(yùn)行狀況,最后得到系統(tǒng)吞吐率的執(zhí)行結(jié)果如圖2所示。
圖2 網(wǎng)站訪問吞吐率Fig.2 Website access throughput
從上圖可以看出,同樣由于在每次提交數(shù)據(jù)時(shí)設(shè)定了集合點(diǎn),吞吐率大都集中在每次填寫完表單、提交數(shù)據(jù)的時(shí)候。而前4個(gè)頁面由于需要下載圖片,因此吞吐率也相對較大。
Web網(wǎng)站測試的要點(diǎn)包括多條,本次測試主要探析了Web系統(tǒng)的核心測試部分,即網(wǎng)站的功能與性能測試,由于篇幅所限,不可能一一列舉所有測試要點(diǎn)及測試方案,文中介紹的測試用例設(shè)計(jì)對網(wǎng)站的測試技術(shù)方案有一定的指導(dǎo)意義。
[1]章文婷,徐中偉,喻剛.面向安全苛求軟件的測試用例自動生成[J].計(jì)算機(jī)應(yīng)用研究,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實(shí)現(xiàn)Web負(fù)載測試的自動化[J].計(jì)算機(jī)技術(shù)與發(fā)展,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].計(jì)算機(jī)光盤軟件與應(yīng)用,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系統(tǒng)性能測試 [J].計(jì)算機(jī)與數(shù)字工程,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]田鵬,周宗錫.基于開發(fā)測試流程的軟件測試用例設(shè)計(jì)[J].微處理機(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]孟祥豐.軟件性能測試解析與優(yōu)化 [J].電子設(shè)計(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]張志敏,周四望.針對軟件系統(tǒng)功能的自動化測試工具設(shè)計(jì)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,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]王森,李志忠,徐曉晴.大型接地裝置的性能測試與綜合評價(jià)[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.