寧華 劉煜
摘要:從20世紀40年代,電子計算機問世以來,人們對其的依賴也越來越強。軟件技術發(fā)展至今,軟件測試技術已經成為了軟件開發(fā)過程中不可缺少的一部分。隨著軟件開發(fā)難度日益提高、團隊規(guī)模日益壯大、開發(fā)過程日益細致,軟件測試的重要性也日益突出。測試技術是軟件開發(fā)中的重要環(huán)節(jié),是軟件質量的重要保障手段,可以大大減少軟件缺陷,提高軟件質量和軟件的可信度。
關鍵詞:軟件測試;功能測試;性能測試
1 前言
從20世紀60年代,為了證明軟件的正確性而產生了軟件測試,從初期的程序調試到現(xiàn)在的各類測試。軟件測試技術也在越來越完善,越來越規(guī)范。
1972年舉行了首屆軟件測試正式會議;1979年,正式對軟件測試進行了定義;1983年,測試是對軟件質量的度量;1996年,提出測試能力成熟度TCMM;從此,軟件測試工具盛行起來,軟件測試進入了高速發(fā)展,不斷完善的新進程。
2 軟件測試
2.1 軟疾測試定義
所謂測試,就是以檢驗產品是否滿足需求。而軟件測試,是為了發(fā)現(xiàn)軟件(產品)的缺陷而運行軟件(產品)的活動。
軟件測試發(fā)展至今,針對其定義出現(xiàn)過很多的版本。其中較標準的定義是:在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)錯誤,對軟件質量進行評估的活動。
IEEE標準定義:使用人工或自動的手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗;它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。
G.J.Myers給出的定義:“程序測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”。
要完整地理解軟件測試,就要從不同方面和視角去辨證地審視軟件測試。概括而言,軟件測試就是貫穿整個軟件開發(fā)生命周期、對軟件產品進行驗證和確認的活動過程,其目的是盡快盡早地發(fā)現(xiàn)在軟件產品中存在的各種問題和與用戶需求、預先定義不一致的地方。
2.2 軟件剛試目的
軟件測試是程序的一種執(zhí)行過程,目的是盡可能發(fā)現(xiàn)并改正被測試軟件中的錯誤,提高軟件的可靠性。它是軟件生命周期中一項非常重要的工作,對軟件可靠性保證具有極其重要的意義。在目前形式化方法和程序正確性證明技術還無望成為實用性方法的情況下,軟件測試在將來相當一段時間內仍然是軟件可靠性保證的有效方法。
2.3 軟件測試分類
軟件缺陷在開發(fā)前期發(fā)現(xiàn)比在開發(fā)后期發(fā)現(xiàn)節(jié)約90%成本;軟件缺陷在推向市場前發(fā)現(xiàn)比在推出后發(fā)現(xiàn)節(jié)約90%成本。因此軟件的缺陷應該盡早發(fā)現(xiàn)。但不是所有的軟件都要進行任何類型的軟件測試的,可以根據(jù)產品的具體情況進行不同類型的測試,測試的分類如下:
按運行狀態(tài)分:動態(tài)測試、靜態(tài)測試;
按執(zhí)行過程分:手工測試、自動化測試;
按內容分:功能測試、性能測試、兼容性測試,Ul測試、文檔測試等;
按測試用例技術分:黑盒測試、白盒測試、灰盒測試;
按開發(fā)階段分:單元測試、集成測試、系統(tǒng)測試、驗收測試;
按組織方分:Alpha測試、Beta測試、第三方測試;
其他測試方法:隨機測試、冒煙測試、回歸測試、恢復測試等; 藏鑫粼鼎擎裂過程中管理,測試工作可以分為如下的5個階段:
(1)計劃階段:編寫測試計劃,制定整體測試方案。
(2)設計階段:主要編寫測試用例。
(3)執(zhí)行階段:搭建測試環(huán)境,執(zhí)行測試、記錄跟蹤測試bug.
(4)評估階段:測試報告,對整體過程做總結,對質量評估。
(5)驗收階段:完成用戶操作手冊等,保證每一步輸出的有效。
2.5 軟件測試工具
軟件測試工具是通過一些工具能夠使軟件的一些簡單問題直觀的顯示在讀者的面前,這樣能使測試人員更好的找出軟件錯誤的所在。軟件測試工具分為自動化軟件測試工具和測試管理工具。具體工具如下:
軟件測試管理工具:Bugfree、TestLink、禪道等。
軟件功能自動化測試工具:Watir、Selenium、MaxQ、Weblnject、QTP等。
軟件性能目動化測試工具:Jmeter、ODenSTA、TPTEST、LoadRunner等。
其他測試工具與框架:Rational Functional Tester、WinRunner、Robot等。
使用較為廣泛的工具有:
(1)禪道:功能比較全面的測試管理工具,功能涵蓋軟件研發(fā)的全部生命周期,為軟件測試和產品研發(fā)提供一體化的解決方案。是一款優(yōu)秀的國產開源測試管理工具。
(2)Quality Center:基于Web的測試管理工具,可以組織和管理應用程序測試流程的所有階段,包括指定測試需求、計劃測試、執(zhí)行測試和跟蹤缺陷。
(3)QuiekTest Professional:用于創(chuàng)建功能和回歸測試。
(4)LoadRunner:預測系統(tǒng)行為和性能的負載測試工具。
3 結束語
在具體工作過程中,測試工程師的工作是利用測試工具按照測試方案和流程對產品進行功能和性能測試,甚至根據(jù)需要編寫不同的測試用例,設計和維護測試系統(tǒng),對測試方案可能出現(xiàn)的問題進行分析和評估。對軟件測試工程師而言,必須具有高度的工作責任心和自信心。任何嚴格的測試必須是一種實事求是的測試,因為它關系到一個產品的質量問題,而測試工程師則是產品出交付前的把關人,所以,沒有專業(yè)的技術水準是無法勝任這項工作的。
參考文獻
[1]王軼辰,軟件測試從入門到精通.
[2]辛慶,基于Selenium的Web UI自動化測試[D]2012.
[3]杜麗潔,基于QTP自動化3111試框架的開發(fā)與應用[D],2012.