私はソフトウェアテスト試験のために改訂しています。質問の 1 つは、このメソッドを提供し、障害を特定し、障害を実行しないテスト ケース (存在する場合) を生成するよう求めます。
コードは次のとおりです。
public static int oddOrPos(int[] x) {
//Effects: if x==null throw NullPointerException
// else return the number of elements in x that
// are either odd or positive (or both)
int count = 0;
for (int i = 1; i < x.length; i++)
{
if (x[i]%2 == 0 || x[i] > 0)
{
count++;
}
}
return count;
}
私は2つの問題を特定しました。1 つは、i が for ループで 1 に初期化されるため、x[0] がテストされないことです。またx[i] % 2 == 0
、する必要がありますx[i] != 0
これらの問題は障害ですか、それともエラーですか? 私がこの質問をするのは、その質問が 1 つだけ欠点があるように見えるからです。
また、for ループは常に実行されるため、fault を実行しないテスト ケースはないと仮定します。