胡艷梅
[摘要]隨著科技的不斷進步,企業(yè)的信息系統(tǒng)都毫無例外的傾向數(shù)據(jù)大集中方向發(fā)展,這就需要我們提高系統(tǒng)的可靠性、安全性,合理使用自動化測試工具能夠幫助人們更好的檢測軟件中存在的BUG。
[關(guān)鍵詞]數(shù)據(jù)大集中自動化測試BUG
中圖分類號:TP2文獻標(biāo)識碼:A文章編號:1071-7597(2009)0610060-01
一、自動化測試工具的地位
隨著軟件功能的增加,軟件規(guī)模也日益增大,人們對軟件真正的了解也日漸減弱。人們的日常生活也漸漸不能離開軟件,銀行系統(tǒng)、高速公路的收費系統(tǒng)、醫(yī)院的醫(yī)療系統(tǒng),軟件產(chǎn)品的質(zhì)量已經(jīng)與人們的生活息息相關(guān)。通過單純的手工測試已經(jīng)不能滿足人們對軟件的質(zhì)量要求,人們逐漸采用能夠進一步保證軟件質(zhì)量的自動化測試工具代替手工測試。
二、自動化測試工具的作用
(一)某些測試內(nèi)容手工很難實現(xiàn)可以借助測試工具來完成。在負載測試中,我們通常需要模擬大量數(shù)據(jù)或大量并發(fā)測試,例如模擬2000人同時登陸郵箱或發(fā)信,我們可以將2000人聚集到一起進行操作,但是這種手工測試方式不但浪費時間、人力、物力,而且不能保證2000人能夠同一時刻進行點擊操作,這樣就不能保證同一時刻對服務(wù)器產(chǎn)生壓力。使用LoadRunner性能測試工具我們可以先錄制一個用戶登陸郵箱或發(fā)信的操作過程,然后進行場景設(shè)置,可以在一臺機器上設(shè)置多個虛擬用戶,使用測試工具可以完成手工測試難以實現(xiàn)的問題,發(fā)現(xiàn)正常測試中難以發(fā)現(xiàn)的錯誤。
(二)軟件在回歸測試中合理運用測試工具節(jié)省人力資源。任何一個項目在開發(fā)過程中都要進行修改,軟件也會在不斷的升級過程中增加新的功能,編碼人員在修改項目中的部分模塊后,有時會影響其它模塊的功能。每天重復(fù)的手動黑盒回歸測試會使軟件測試人員陷入既耗時又單調(diào)的簡單繁瑣勞動中,而且很多企業(yè)的項目由于時間的限制經(jīng)常無法在軟件產(chǎn)品發(fā)布前徹底測試所有功能。通過測試工具可以一次性開發(fā)測試腳本,多次運行同樣的測試用例來進行回歸測試,不但可以減輕測試的勞動強度,而且能夠提高測試效率。
(三)搜集測試結(jié)果數(shù)據(jù)。自動化測試工具能夠監(jiān)控后臺各個環(huán)節(jié)的資源消耗情況,把后臺資源消耗情況、客戶端的相應(yīng)時間、吞吐量等重要指標(biāo)保存到本地硬盤上,測試結(jié)束后會將測試結(jié)果傳遞到分析機,并自動得出測試結(jié)果圖,測試人員通過自動得出的結(jié)果圖能夠快速定位軟件的瓶頸,及時的向開發(fā)人員提供軟件存在的BUG。
三、正確看待自動化測試工具
測試工作中80%以上的缺陷都是手工測試發(fā)現(xiàn)的,僅有不到20%的缺陷是自動測試發(fā)現(xiàn)的,而且這20%的發(fā)現(xiàn)也要求測試人員合理的運用測試工具,而且隨著軟件的修改需要對腳本不斷維護,過分強調(diào)工具的自動化作用,極力追求各種軟件測試工具,是軟件測試本末倒置的表現(xiàn)。
軟件測試工具是針對解決某些特定的問題而開發(fā)的,所以必然有其局限性。而且測試工具本身也是軟件,只要是軟件就會存在缺陷,因此自動化測試工具也會存在軟件兼容性等不可避免的軟件通病,所以在使用自動化測試工具測試軟件時要合理的選擇測試工具,針對自己的軟件產(chǎn)品,先解決實際測試中最突出的問題,才能達到事半功倍的效果。
四、自動化測試工具基本要素
1、產(chǎn)生壓力:無論是Unix操作系統(tǒng)還是windows操作系統(tǒng),都很容易產(chǎn)生多個進程或多個線程,每個進程或線程都可以模擬一個用戶,我們很容易知道一臺計算機可以模擬成百上千的用戶,每個進程實際上是一個正在執(zhí)行的程序,每個執(zhí)行的程序向后臺發(fā)送一個合法的請求包,每個請求以測試腳本形式存在,按照進程或線程的形式去運行就會對后臺系統(tǒng)產(chǎn)生一定的壓力,這個壓力與成百上千用戶的真實操作沒有任何本質(zhì)區(qū)別。
2、提供錄制腳本的功能:自動化測試工具為了能夠提高開發(fā)測試腳本的速度,必須能夠提供錄制腳本的功能。開發(fā)測試腳本可以不需要錄制,可以由測試人員手動編寫,但是測試人員需要先研究客戶端對數(shù)據(jù)庫的請求,需要大量了解底層細節(jié)問題,造成測試速度非常慢,延誤產(chǎn)品的上市時間。采用自動化測試工具的錄制功能可以將通訊包錄制下來,快速得到技術(shù)細節(jié)問題,從而提高開發(fā)測試腳本的速度。通過錄制腳本自動產(chǎn)生代碼可以大大提高測試的工作效率。
3、監(jiān)控計算機并自動生成測試分析圖:產(chǎn)生壓力后并不是漫無目的向服務(wù)器發(fā)出請求的,而是通過控制器控制如何向后臺發(fā)送請求,同時控制器還能提供監(jiān)控后臺各個環(huán)節(jié)的資源消耗情況的監(jiān)控手段,自動得出測試分析圖,測試人員可以根據(jù)經(jīng)驗通過分析圖對軟件進行分析,快速得出軟件中存在的BUG。
五、全面性能測試的模型
性能測試分為許多種類型,包括壓力測試、負載測試、強度測試、并發(fā)(用戶)測試、大數(shù)據(jù)量測試、配置測試、可靠性測試等。我們在測試過程中通常需要側(cè)重某一點對軟件進行測試,為了達到減少不必要的工作量、節(jié)約測試成本的目的,我們可以將性能測試的很多內(nèi)容經(jīng)過一定的組織來統(tǒng)一進行,這就是“全面性能測試模型”。
1、預(yù)期指標(biāo)的性能測試:在進行測試之前,我們需要先對軟件進行需求分析、制定測試計劃,完成測試計劃中制定的性能測試要求是對軟件的基本需求,對軟件的基本需求的測試即為預(yù)期指標(biāo)的性能測試。
2、獨立業(yè)務(wù)性能測試:軟件有一些核心業(yè)務(wù)模塊,核心模塊的功能較復(fù)雜、使用比較頻繁,它是測試人員測試的重點,核心模塊中存在BUG可能會導(dǎo)致整個產(chǎn)品上市的失敗。為了使軟件中存在的BUG更少,測試人員通常在集成或系統(tǒng)測試階段開始單獨測試其性能,后期進一步對其進行測試,保證系統(tǒng)的穩(wěn)定性。
3、組合業(yè)務(wù)性能測試:用戶在使用軟件時對模塊的每個功能都會使用到,在對軟件進行測試時既要模擬多用戶的相同操作,又要模擬多用戶的不同操作,一般我們按照用戶的實際使用人數(shù)來模擬各個模塊的組合并發(fā)情況。
4、疲勞強度和大數(shù)據(jù)量性能測試:以一定的負載壓力或大數(shù)據(jù)量長時間運行系統(tǒng),測試系統(tǒng)長時間處理較大業(yè)務(wù)量時的性能。
5、服務(wù)器性能測試:為了找出各種服務(wù)器存在的瓶頸,為系統(tǒng)擴展、優(yōu)化提供相關(guān)的依據(jù),測試人員對數(shù)據(jù)庫、web服務(wù)器、操作系統(tǒng)進行的測試。
6、網(wǎng)絡(luò)性能測試:現(xiàn)在的許多軟件都是B/S操作系統(tǒng),帶寬、負載以及端口的變化都會影響用戶使用軟件的相應(yīng)時間,為了測試應(yīng)用系統(tǒng)的用戶數(shù)目與網(wǎng)絡(luò)帶寬的關(guān)系,我們需要對網(wǎng)絡(luò)進行相應(yīng)的性能測試。
六、結(jié)論
隨著人們對測試工作的重視以及測試工作的不斷深入,越來越多的公司開始使用自動化測試工具。綜合各種因素,正確的選擇和使用自動化測試工具,能夠提高測試的效率和測試質(zhì)量,降低測試成本。更好的完成軟件測試工作。