ソフトウェア開発者の立場でのプログラミングテスト中に同様の質問がありました。二日後、私はまだ答えがありません。Cでの単体テストを使用した修正
2つの浮動小数点を入力として受け取り、副作用がなく、確定的に実行する関数があるとします(単一スレッド環境も考慮してください)。例えば。 bool test(float arg1, float arg2);
これをテストするには、任意の数のランダム入力を使用するとします。この関数は非常にまれに失敗しますが、失敗します。我々はテストのコードのこの部分を使用することを言ってみましょう:
//Set a,b
if(test(a,b)){
printf("Test passed\n");
} else {
printf("%f %f\n", a,b);
}
ので、印刷された入力をキャプチャした後、我々はこのようなこれらの入力を使用します。
a = //Fill from the printf
b = //Fill from the printf
boolean a = test(a,b);
の結果を検証した後、テストは有効/パスされます。あなたはどんな説明をしていますか?私はデバッグのためのprintfは難しいかもしれないが、それは私が尋ねられた質問だったことを知っている。