天天看點

讀書筆記:《The Art of Software Testing》第四章—于無聲處聽驚雷

  Myers的這本書非常不錯,非常薄,但簡明扼要,講的是測試中的基本原則,值得人反複研讀。今天看的第四章測試用例的設計應該算是本書的重點部分。簡而言之,在書中的前面幾章,作者闡明了一個觀點。完全的測試方法是不可能的,對任何程式的測試必定是不完全的。那麼,如何在時間成本的限制條件下,盡量選取一個測試用例的子集,使其最有可能發現最多的錯誤。

  總的原則确定了,接下來作者分别讨論了黑盒和白盒測試的一些具體測試方法。并且建議在實作政策時将這幾種方法綜合起來,因為任何一種單獨的測試方法都是不完善的,都有其優勢和弱點。  白盒測試方法有語句覆寫,判定覆寫,條件覆寫,判定/條件覆寫,多重條件覆寫。白盒的優點是測試可以覆寫程式邏輯結構(源代碼),但缺點是它未考慮到程式的規格說明。這之中,最完整的是多重條件覆寫。

  黑盒的測試方法有等價類劃分,邊界值分析,因果圖分析,錯誤猜測。等價類中,覆寫有效等價類時,一次要覆寫盡可能多的有效等價類,即用例設定在多個有效等價類的交集部分。覆寫無效等價類時,每次僅覆寫一個,這是因為一次有多個無效條件,可能在判斷出第一個條件不滿足時,後面的條件根本不做判定了,進而相關的等價類就沒有被測試到。邊界值分析也較好了解,這是從經驗中總結出來的,重點考慮邊界條件時,具有較好的測試回報率。因果圖看起來比較複雜,整個過程也極為繁瑣。其中最具難度的地方是将因果圖轉化為判定表的部分。錯誤猜測則具有相當多的偶然性了。大體是我們可以猜想程式可能會出錯的地方,然後編寫用例加以測試。

  最後,作者建議了一個測試政策。

  1.先根據規格說明使用因果圖分析。

  2.邊界值分析加以補充

  3.等價類分析

  4.錯誤猜測

  5.檢查程式邏輯結果,使用白盒中各種覆寫準則。

  看完這部分,最大的體會就是,測試工作量如此之大,超乎人的想象。

  然而這項工作又是具有多麼大的挑戰性啊。給人以非常大的施展才華的空間。

  可以說,測試中的想象力和創造力一點也不亞于分析和設計。

  看來,測試就是“螺獅殼裡做道場”,“于無聲處聽驚雷”!

繼續閱讀