首先,很吸引人的結論:實驗結果表明,蛻變測試與特殊用例測試之間是互補的,而且就蛻變測試的源測試用例言,隨機測試用例在測試能力和效率上優于特殊測試用例。并且,隨機測試用例是不需要給出期望輸出的!
具體過程是這樣的:
1. 使用源測試用例來測試被測對象,如果某一個用例引起了異常,則結束測試,報告測試未通過。
2. 對于每一個蛻變關系(metamorphic relation)MR=(R, Rf)
a) 從源測試用例,根據關系R生成新的測試用例Xk
b) 用Xk測試被測對象
c) 如果被測對象異常退出,測試結束,報告測試未通過
d) 如果被測對象正常結束并輸出Yk,使用關系Rf驗證,如果Rf((X1, X2), ..., (Xk, Yk))不成立,則報告測試未通過
3. 如果沒有錯誤報告,則認為測試通過
舉個例子來說明一下使用隨機測試用例進行蛻變測試的過程:
測試一個矩陣乘法的程序,輸入矩陣A和B,輸出AB的乘積C
給出隨機的A和B,記錄程序輸出C
根據下表中的關系R生成A’和B’,根據關系Rf和C來驗證輸出C’

這樣我們就可以使用隨機測試用例來測試程序了,而不需要事先知道期望輸出。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/