软件缺陷与软件测试
軟件缺陷的定義
■軟件未實現產品說明書要求的功能 ■軟件出現了產品說明書指明不應該出現的功能 ■軟件實現了產品說明書未提到的功能 ■軟件未實現產品說明書雖未明確提及但應該實現的目標 ■軟件難以理解、不易使用、運行緩慢或者(從測試的角度看)最終用戶會認為不好所有不滿足需求或者超出需求的都是缺陷;沒有不存在缺陷的軟件,只有尚未發現的缺陷
軟件測試發展
起源于上世紀70年代中期,出現了《測試數據選擇的原理》《軟件測試的藝術》;20世紀80年代關注軟件質量,出現了QC或者QA
軟件測試的思維–正向思維和反向思維
正向思維
出發點:使自己確信產品是能夠正常工作的評價一個程序和系統的特性或能力,并確定它是否達到期望的結果,軟件測試就是以此為目的的任何行為。也就是說讓自己相信軟件是沒有問題的,會因為錨點效應(先入為主)產生主觀的意識。
反向思維
由Glenford.J.Myers提出,認為測試是為發現錯誤而執行一個程序或者系統的過程
◆測試是為了證明程序有錯,而不是證明程序無錯誤
◆一個好的測試用例在于它能發現以前未發現的錯誤
◆一個成功的測試是發現了以前未發現的錯誤的測試
軟件測試的定義
IEEE定義的測試
■在規定條件下運行系統或構件的過程:觀察和記錄結果,并對系統或構件的某些方面給出評價
■分析軟件項目的過程 :檢測現有狀況和所需狀況之間的不同,并評估軟件項目的特性
廣義軟件測試定義
軟件測試是對軟件形成過程中的所有工作產品 (包括程序以及相關文檔)進行的測試,而不僅僅是對程序的運行進行測試,包括驗證和確認兩個過程,驗證( Verification )是通過檢查和提供客觀證據來證實指定的需求是否滿足;確認( Validation )是通過檢查和提供客觀證據來證實特定目的的功能或應用是否已經實現。
軟件測試的目的
以最少的人力、物力和時間找出軟件中潛在的各種錯誤和缺陷,通過修正各種錯誤和缺陷保障軟件質量,避免軟件發布后由于潛在的軟件錯誤和缺陷造成的隱患所帶來的商業風險。同時利用測試過程中得到的測試結果和測試信息,作為后續項目開發和測試過程改進的重要輸入,避免在將來的項目開發和測試中重復同樣的錯誤;采用更加高效的測試管理手段,提高軟件測試的效率和軟件產品的質量
■測試需要保證以下兩點:
軟件測試的目的是盡可能早的找出軟件產品中潛藏的缺陷,并確保其得以修復!
軟件測試只是保證產品質量的手段之一,若要提高產品質量,則需要持續不斷的進行過程改進
測試和調試的區別
■在目標、方法和思路上有所不同
調試的目標是沒有錯誤,測試的目標是零缺陷(不是絕對零,是指軟件發布后有缺陷但用戶可以容忍);調試的方法依賴于工具,測試則可以進行手工測試和工具測試;
■測試是從已知的條件開始,使用預先定義的過程,并且有預知的結果;調試是從未知的條件開始,結束的過程可能不可預計 ■測試可以計劃,可以預先制定測試用例和過程,工作進度可以度量;描述調試的過程或持續時間相對比較困難 ■測試的對象包括軟件開發過程中的文檔、數據以及代碼,而調試的對象一般來說只是代碼軟件的定義
在計算機中與硬件相互依存的另外一部分,包括程序和文檔,而程序包括代碼、算法和數據。軟件中的文檔主要分為外部文檔和內部文檔,外部文檔比如幫助文檔、用戶手冊、安裝指南、研究論壇等,也就是用戶能夠看到的文檔。內部文檔則包含開發文檔、設計文檔等。
總結
- 上一篇: mysql类exadata功能_Exad
- 下一篇: 回调方法