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