軟體測試技術及工具
一、軟體測試的發展史
1979年,Glenford Myers的《軟體測試藝術》,對測試做了定義:測試是為發現錯誤而執行的一個程式或者系統的過程。1983年,Bill Hetzel在《軟體測試完全指南》中指出:測試是以評價一個程式或者系統屬性為目標的任何一種活動,測試是對軟體質量的度量。1996年提出的測試能力成熟度TCMM(Testing Capability Maturity Model)、測試支援度TSM(Testability Support Model)、測試成熟度TMM(Testing Maturity Model)。2002年,Rick和Stefan在《系統的軟體測試》一書中對軟體測試做了進一步定義:測試是為了度量和提高被測軟體的質量,對測試軟體進行工程設計、實施和維護的整個生命過程。
二、軟體測試的相關背景
由於測試在中國的重視程度的問題, 才畢業那時的我也一直認為測試應該是不重要的, 甚至認為沒有必要有專門的測試職業。認為軟體主要是開發人員的事,軟體的成果也是由開發人員決定的, 當我在參加工作後, 真正參與軟體技術開發的時候, 才知道並不是我想象的那樣。軟體是人編的,所以不完美,不可能不存在錯誤。例如著名的軟體測試案例:
1、迪士尼的獅子王 (1994~1995)軟體。
2、英特爾奔騰浮點除法軟體缺陷(1994)。
3、美國航天局火星極地登陸(1999)專案。
4、千年蟲。
三、軟體測試的概述
3.1軟體測試的定義
軟體測試是使用人工或者自動手段來執行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。
3.2軟體測試的目的
如果測試的目的是為了儘可能多地找出錯誤,那麼測試就應該直接針對軟體比較複雜的部分或是以前出錯比較多的位置。在談到軟體測試時,引用Grenford J. Myers在《The Art of Software Testing》一書中的觀點:(1)軟體測試是為了發現錯誤而執行程式的過程;(2)測試是為了證明程式有錯,而不是證明程式無錯誤;(3)一個好的測試用例是在於它能發現至今未發現的錯誤;(4)一個成功的測試是發現了至今未發現的錯誤的測試。
3.3軟體測試的原則
1.應當把"儘早和不斷的測試"作為開發者的座右銘。2.測試用例應由測試輸入資料和與之對應的預期輸出結果這兩部分。3.程式設計師應避免檢查自己的程式。4.在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件。5.充分注意測試中的群集現象。6.嚴格執行測試計劃,排除測試的隨意性。對於測試計劃,要明確規定,不要隨意解釋。7.應當對每一個測試結果做全面檢查。8.妥善儲存測試計劃,測試用例,出錯統計和最終分析報告,為維護提供方便。
軟體測試的分類及相應的工具
4.1常用分類
(1)從是否需要執行被測軟體的角度, 可分為:靜態測試和動態測試。
靜態測試是指不實際執行被測軟體, 而只是靜態的檢查程式程式碼、介面或文件中可能存在的錯誤的過程。其中包括程式碼測試、介面測試和文件測試3個方面。靜態測試工具的代表有:Telelogic公司的Logiscope軟體;PR公司的PRQA軟體。
動態測試是指實際執行被測程式, 輸入相應的測試資料, 檢查實際輸出結果和預期結果是否相符的過程。所以,我們判斷一個測試屬於動態還是靜態測試 , 唯一的標準就是看是否執行程式。動態測試工具的代表有:Compuware公司的DevPartner軟體;Rational公司的Purify系列等。
(2)從測試是否針對系統的內部結構和具體實現演算法的角度來看, 可分為:白盒測試和黑盒測試。
白盒測試也稱結構測試或邏輯驅動測試, 它是知道產品內部工作過程, 可透過測試來檢測產品內部動作是否按照規格說明書的規定正常進行, 按照程式內部的結構測試程式, 檢驗程式中的每條通路是否都有能按預定要求正確工作, 而不顧它的功能。根據測試工具原理的不同,又可以分為靜態測試工具和動態測試工具。白盒測試的主要方法:邏輯驅動測試和基本路徑測試
黑盒測試指的是把被測軟體看作是一個黑盒子, 我們不去關心盒子裡面的結構是什麼樣子, 只關心軟體的輸入資料和輸出結果。
黑盒測試的測試用例設計主要是:等價劃分法、邊界值法、錯誤推測法、因果圖法。黑盒測試工具的代表有:Rational公司的TeamTest、Robot Compuware公司的QACenter。
4.2其他測試工具
專用於效能測試的工具包括有:Radview公司的WebLoad;Microsoft公司的WebStress等工具;針對資料庫測試的TestBytes;對應用效能進行最佳化的EcoScope等工具。MercuryInteractive的LoadRunner是一種適用於各種體系架構的自動負載測試工具,它能預測系統行為並最佳化系統效能。LoadRunner的測試物件是整個企業的系統,它透過模擬實際使用者的操作行為和實行實時效能監測,來幫助您更快的查詢和發現問題。AdventNet QEngine是一個應用廣泛且獨立於平臺的自動化軟體測試工具,可用於Web功能測試、web效能測試、Java應用功能測試、Java API測試、SOAP測試、迴歸測試和Java應用效能測試。
專用於功能測試的工具有:QTP測試工具,一種自動測試工具。主要目的是用它來執行重複的手動測試,主要是用於迴歸測試和測試同一軟體的新版本。QuickTest針對的是GUI應用程式,包括傳統的Windows應用程式,以及現在越來越流行的Web應用。Mercury Interactive公司的WinRunner是一種企業級的功能測試工具,用於檢測應用程式是否能夠達到預期的功能及正常執行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69914734/viewspace-2657101/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 軟體測試技術-黑盒測試
- 軟體測試之資料庫測試技術系列七資料庫
- 學習軟體測試需要掌握哪些技術?
- 軟體測試方法和技術有哪些呢?
- 軟體測試需要學習什麼技術?
- 漫談SCA(軟體成分分析)測試技術:原理、工具與準確性
- 軟體測試技術學習技巧總結,助你事半功倍
- 漫談軟體成分分析(SCA)安全測試技術
- 軟體測試培訓需要學習什麼技術
- 軟體測試要學什麼(7)軟體測試常用工具
- 軟體測試常用的工具都有哪些-測試常用工具
- 學會軟體測試技術以後的發展如何?
- 軟體測試要學什麼(4)軟體測試流程及常見測試點總結
- Helix QAC—軟體靜態測試工具
- Helix QAC — 軟體靜態測試工具
- 論系統測試技術及應用
- 軟體測試的流程及策略方式
- 探索軟體測試的核心知識——解密第三方軟體測試中心的價值與技術解密
- 軟體安全性測試要點有哪些?常用軟體安全測試工具分享
- 軟體測試培訓:不可不知的十大軟體測試工具
- 參加軟體測試培訓需要學什麼技術呢
- Tessy—嵌入式軟體單元測試/整合測試工具
- Tessy — 嵌入式軟體單元測試/ 整合測試工具
- 軟體效能測試方法及步驟分享,權威的軟體測試公司有哪些?
- Locust效能測試工具核心技術@task和@events
- Python技術棧效能測試工具Locust入門Python
- 軟體驗收測試 第三方軟體測試 軟體功能測試 軟體資訊保安測試
- Helix QAC-軟體靜態測試工具
- 軟體測試中需要使用的工具
- WinAMS--嵌入式軟體單元測試/整合測試工具
- 介面測試工具好物分享,讓你的軟體測試事半功倍
- 軟體測試詳解—測試中需要使用的工具大全
- 【軟體測試】——介面測試
- 軟體測試——三、軟體測試的分類
- 鄭政 | 2021軟體程式碼開發技術作業五 | 程式碼開發、測試及釋出
- 解放雙手——你知道軟體測試階段都有哪些主流自動化測試技術嗎?
- Laravel 測試技術Laravel
- 通用測試技術