1

データフローカバレッジでは、DUパスを使用して、コード部分全体に定義され使用されている変数を分離します。未使用の変数割り当てでデータフローのカバレッジを達成するにはどうすればよいですか?

このような場合、変数xのすべての定義をカバーするテストケースを作成するにはどうすればよいですか?

それが唯一の新しい値を毎回割り当てはなく、この関数のどこにでも使われているので:コードを解析

Function x (int y, int z) { 
    int x = 0; 
    M = y + z; 
    My_Array = [1,2,3];   
    if (0 < M < 10) 
     x = My_Array[1]; 
    else if (10 < M < 20) 
     x = My_Array[2]; 
    else 
     x = 0; 
} 
+0

これはどの言語ですか?この関数は何かを返しますか? –

+0

もっと多くの言語に適用できる擬似コードに似ていますが、テストでは多く使われています。 void(戻り値なし)でもxを返すかもしれませんが、とにかく質問には影響しません。 –

+0

[値を返すことができます](http://stackoverflow.com/questions/32908375/data-flow-coverage-return-statement/37127193)ので、私は尋ねました。とにかく、この特定の(擬似)コードに対してどのようなテストケースを書くか、あるいは未使用の定義を持つコードのテストケースを見つけるためにどのような方法を使用するかを尋ねていますか? –

答えて

1

試験におけるデータフロー分析を使用する方法は

  • である
  • データフロー分析でコードに問題が見つかった場合は、問題のない理想的なデータフローを構築してください。
  • 理想的なデータフローに基づいてテストを作成してください。テストは終了します。これは、コードのクリーンアップビューに基づいて設計されているためです。
  • コード内の問題を修正し、理想的なデータフローに一致させます。コードを修正するときに間違いがない限り、テストは合格となります。

DUパス分析では、すべての変数が定義されてから使用されると仮定しています。コードの最後の前に変数が使用されていない場合は、コード内でエラーとなり、上記のように修正されます。 DUKパス解析では、 "キル"(変数が再割り当てされるかプログラムを終了する場所)が考慮されますが、同じ方法で修正する必要のあるエラーは使用されないままであるとみなされます。

あなたの例では、未使用の割り当てをすべて取り除き、コードが残っていないこと、テストすることがないこと、関数がインライン化できることがわかります!

関連する問題