2. 對父類的測試是否能照搬到子類?
援用上面的假設,Base::Redefined()和Derived::Redefined()已經是不同的成員函數,它們有不同的服務說明和執行。對此,照理應該對 Derived::Redefined()重新測試分析,設計測試用例。但由于面向對象的繼承使得兩個函數有相似,故只需在 Base::Redefined()的測試要求和測試用例上添加對Derived::Redfined()新的測試要求和增補相應的測試用例。例如:
Base::Redefined()含有如下語句
If (value<0) message ("less");
else if (value==0) message ("equal");
else message ("more");
Derived::Redfined()中定義為
If (value<0) message ("less");
else if (value==0) message ("It is equal");
else
{message ("more");
if (value==88)message("luck");}
在原有的測試上,對Derived::Redfined()的測試只需做如下改動:將value==0的測試結果期望改動;增加value==88的測試。
文章來源于領測軟件測試網 http://www.kjueaiud.com/