三、測試用例設計
這種設計目前正處于形成階段。
傳統軟件測試用例設計是從軟件的各個模塊的算法細節得出的,而OO軟件測試用例則著眼于適當的操作序列,以實現對類的說明。
黑盒子測試不僅適用于傳統軟件,也適用OO軟件測試。白盒子測試也用于OO軟件類的操作定義。但OO軟件中許多類的操作結構簡明,所以有人認為在類層上測試可能要比傳統軟件中的白盒子測試方便。
OO測試用例設計包含OO概念,在OO度量中所講的五個特性:局域性、封裝性、信息隱藏、繼承性和對象的抽象,肯定會對用例設計帶來額外的麻煩和困難。
Berard提出了一些測試用例的設計方法,主要原則包括:
(1)每個測試用例應當給予特殊的標識,并且還應當與測試的類有明確的聯系。
(2)測試目的應當明確。
(3)應當為每個測試用例開發一個測試步驟列表。這個列表應包含以下一些內容:
列出所要測試對象的專門說明。
列出將要作為測試結果運行的消息和操作。
列出測試對象可能發生的例外情況。
列出外部條件(即為了正確對軟件進行測試所必須有的外部環境的變化)。
列出為了幫助理解和實現測試所需要的附加信息。
1.基于故障的測試
在OO軟件中,基于故障的測試具有較高的發現可能故障的能力。由于系統必須滿足用戶的需求,因此,基于故障的測試要從分析模型開始,考察可能發生的故障。為了確定這些故障是否存在,可設計用例去執行設計或代碼。
基于故障測試的關鍵取決于測試設計者如何理解“可能的錯誤”。而在實際中,要求設計者做到這點是不可能的。
基于故障測試也可以用于組裝測試,組裝測試可以發現消息聯系中“可能的故障”。
“可能的故障”一般為意料之外的結果、錯誤地使用了操作/消息、不正確引用等。為了確定由操作(功能)引起的可能故障必須檢查操作的行為。
這種方法除用于操作測試外,還可用于屬性測試,用以確定其對于不同類型的對象行為是否賦予了正確的屬性值。因為一個對象的“屬性”是由其賦予屬性的值定義的。