本章的主要目標是提出一種測試手段的分類系統,我們把它叫做“五要素測試系統(Five-fold Testing System) ” 。人們可以做的所有測試都可以在五個方面進行描述:
·測試員。進行測試的人。例如,用尸測試是由目標市場的成員、通常使用 該產品的人應行的專項測試。
·覆蓋率。測試了哪些內容。例如,在功能測試中,要測試每個功能。
·潛在問題。測試的原因(要測試什么風險) 。例如,測試極值錯誤。
·活動。如何測試。例如探索式測試。
·評估。怎樣判定測試通過還是不通過。例如,與巳知正確結果的比較。
本章還要詳細描述幾個手段,并就另外幾個手段的使用提出自己的觀點,不過我們的主要目標還是解釋分類系統。
所有測試都包括所有這五個要素。測試手段將測試員的關注點集中的一個或幾個要素上,把其他要素留給測試員自己判斷?梢园殃P注一個要素的手段與關注另一個要素的手段結合起來,以得到想要的結果?梢园堰@種結合的結果叫做新手段(有人確實這樣叫),不過我們認為思考過程要比增加另一個名字更重要。在測試領域中,正在使用的定義不一致的手段清單正在不斷膨脹。我們的分類模式有助于讀者有意識地理智深刻地理解這種結合。
測試任務常常按一個要素分配,但是完成任務時要涉及所有五個要素。例如:
·有人可能要求測試員做功能測試(徹底測試每個功能) 。它說明的是要測試什么,測試員還必須決定誰來測試,以及要尋找什么問題,如何測試每個函數,如何確定程序是否通過。
·有人可能要求測試員做極值測試(測試在向變量輸入極值條件下的錯誤處理)。它說明的是要找出什么問題。測試員還必須決定誰來測試,要測試哪些變量、如何測試這些變量,如何評估結果。
·有人可能要求測試員做?測試(讓市場的外部代表做測試) 。它說明的是誰來測試,測試員還必須決定告訴外部代表什么(告訴他們多少)、試用產品中的哪一部分、他們應該查找什么問題(應該忽略什么問題) 。在有些?測試中,測試員還要具體地告訴他們如何識別特定類型的問題,可能要求他們以特定的方式執行特定的測試。在另外一些?測試中,可能會由他們決定要完成的活動和評估。
手段不一定只涉及一種要素,也不應該是這樣。所有測試都涉及所有五個要素,因此我們應該期望跨多個要素的更綜合的測試手段。以下是多要素手段的一個例子:如果有人要求做“基于需求的測試”,則可能是表示以下三種想法的任意組合:
·覆蓋率(測試在這個需求文檔中列出的所有內容)。
·潛在問題(測試不滿足這個需求的各種方式) 。
·評估(設計測試的方式,要使得測試員能夠使用需求規格說明確定程序是否通過) 。
在說到“基于需求的測試”時,不同的測試員會有這三種想法的不同組合,對這個詞并不存在惟一的正確解釋①。
盡管存在模糊性(并且在一定程度上正是因為有這種模糊性),但是我們認為這種分類系統是一種很有用的思想生成器。
測試時要時刻想著所有五個要素,就可能做出更好的組合選擇。在?測試中,可能決定不描述這些要素中的一個或多個,可以決定不確定如何評估測試結果或測試員該怎樣做。但是我們的建議是,要有意識地做出類似上面提到的決定,而不是采用只關注一種要素的手段,而不注意到還要做出其他決定。
①基于需求測試的多種含義,提供了軟件工程中一個重要普遍問題的例子。定義在測試領域是不固定的。定義的使用在不同子領域和個人之間有很大不同,即使存在期望能被看作是參考標準的文檔。我們稍后討論使很多人無視標準文檔的一些因素。請注意,我們在這里不是要聲稱提供權威定義,或測試領域手段的描述。有些人會使用同樣的詞匯表示不同的含義。其他人可能會同意我們的描述,但是卻以不同的方式表達。不管哪種情況都是合理的、有說服力的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/