The art of software testing 閱讀筆記(二)

來源:互聯網
上載者:User
第二章 測試的心理學與經濟學

心理學

一個不好的程式測試的主要原因是,大多數程式員是以一個錯誤的定義開始的。他們可能會說:

“測試是證明沒有錯誤的過程。”
或者
“測試的目的是展示程式實現了正確的功能。”
或者
“測試是確立程式能夠正確執行的信心的過程。”

這些定義是本末倒置的。

當你測試一個程式,你是想為它加入價值,也就是提高品質和可靠性。提高可靠性意味著找出並移除錯誤。所以,不要為了證明程式正確而測試,而要為了找出儘可能多的錯誤。

所以,對於測試一個更好的定義應該是:

“測試是帶著尋找錯誤的目的執行程式的過程。”

測試是一個破壞的過程,甚至是一個虐待的過程。(其實大多數人都是傾向於建設而不是破壞的。雖然曾聽一個老師說過人的本性是破壞性的,就好像幼兒園中的小孩子,當他把積木搭得很高的時候沒有一下子把積木推倒時那麼高興。看來,選擇了測試這行,就要做一個"bad boy"了,呵呵)

一個好的測試案例是很可能發現未發現錯誤的用例。
一個成功的測試案例是發現了一個未發現錯誤的的用例。

這就好像是去看醫生,你並不是為了讓醫生告訴你你很健康,而是要讓醫生告訴你你哪裡出了問題。

經濟學

黑箱測試,即便像判斷三角形類型這樣的程式也無法窮舉所有可能輸入,更不用說像編譯器,作業系統,資料庫這樣的程式了。
白盒測試,或許可以做到語句覆蓋,條件覆蓋,甚至是路徑覆蓋,但還是確定程式符合需求,無法測試出缺少的路徑,也無法測試出一些與資料相關的錯誤。
窮舉測試是不可能的,所以需要考慮測試中的經濟學,怎樣用有限的測試案例找出儘可能多的錯誤。

測試的十條原則

1 定義期望的輸出或結果是測試案例的一個必要組成部分。
2 一個程式員應避免測試自己的程式。
3 一個工作群組不應該測試他們自己的程式。
4 徹底檢查每個測試的結果。
5 測試案例除了要有合法的輸入,還要有非法的輸入。
6 檢查程式是否沒有完成應完成的功能只是工程的一半,另一半是看程式是否做了不應該做的事。
7 避免一次性的測試案例,除非程式真是一次性的。
8 不要在默許沒有錯誤會被發現的假設下做測試。
9 一段程式中可能存在更多錯誤的可能性與這段程式中已經被發現的錯誤數成比例。
10 測試是一項非常挑戰創造力和智力的工作。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.