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