軟體測試的兩類經典方法

來源:互聯網
上載者:User

標籤:

傳統上認為軟體測試的方法從總體上分為兩類。

第一類測試方法是試圖驗證軟體是“工作的”,所謂“工作的”就是指軟體的功能是按照預先的設計執行的;而第二類測試方法則是設法證明軟體是“不工作的”。

提出第一類方法的代表人物是軟體測試領域的先驅Dr. Bill Hetzel,他曾於1972年6月在美國的北卡羅來納大學組織了曆史上第一次正式的關於軟體測試的論壇。他首先在1973年給軟體測試一個這樣的定義:“就是建立一種信心,認為程式能夠按預期的設想運行。後來在1983年他又將定義修訂為:“評價一個程式和系統的特性或能力,並確定它是否達到預期的結果。軟體測試就是以此為目的的任何行為。在他的定義中的“設想”和“預期的結果”其實就是我們現在所說的使用者需求或功能設計。他還把軟體的品質定義為“符合要求”。

第一類測試可以簡單抽象地描述為這樣的過程:在設計規定的環境下運行軟體的功能,將其結果與使用者需求或設計結果相比較,如果相符則測試通過,如果不相符則視為Bug。這一過程的終極目標是將軟體的所有功能在所有設計規定的環境全部運行,並通過。

在軟體行業中一般把第一類方法奉為主流和行業標準。1990年的IEEE/ANSI標準將軟體測試進行了這樣的定義:“就是在既定的狀況條件下,運行一個系統或組建,觀察記錄結果,並對其某些方面進行評價的過程。這裡所謂“既定的狀況”也可理解為需求或設計。

儘管如此,這一方法還是受到很多業界權威的質疑和挑戰。代表人物是Glenford J. Myers,他認為測試不應該著眼於驗證軟體是工作的,相反應該首先認定軟體是有錯誤的,然後去發現儘可能多的錯誤。他還從人的心理學的角度論證,將 “驗證軟體是工作的”作為測試的目的,非常不利於測試人員發現軟體的錯誤。於是他於1979年提出了他對軟體測試的定義:“就是以發現錯誤為目的而運行程式的過程。

這就是軟體測試的第二類方法,簡單地說就是驗證軟體是“不工作的”,或者說是有錯誤的。他甚至極端地認為,一個成功的測試必須是發現Bug的測試,不然就沒有價值。這就如同一個病人(假定此人確有病),到醫院做一項醫學檢查,結果各項指標都正常,那說明該項醫學檢查對於診斷該病人的病情是沒有價值的,是失敗的。

第二類軟體測試方法在業界也很流行,受到很多學術界專家的支援,有一個明確而簡潔的定義:“軟體測試員的目標是找到軟體缺陷,儘可能早一些,並確保其得以修複。”有些軟體企業以Bug數量來作為考核測試人員業績的一項指標,其實就是接受了這樣的方法。

軟體測試的兩類經典方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.