ステートメント カバレッジは、広く使用されているソフトウェア テストの 1 つです。ホワイトボックステストの対象となります。
ステートメント カバレッジ手法は、ホワイト ボックス テスト ケースの設計に使用されます。この手法には、ソース コードのすべてのステートメントを少なくとも 1 回実行することが含まれます。これは、ソース コード内に存在するステートメントの合計から、ソース コード内で実行されたステートメントの合計数を計算するために使用されます。
ステートメント カバレッジは、コードの構造に基づいたホワイト ボックス テスト プロセスの下でテスト ケースのシナリオを導き出します。
ホワイトボックステストでは、テスターは内部ソースコードの動作とコードのフローチャートやフローグラフに集中します。
一般に、内部ソース コードには、演算子、メソッド、配列、ループ、制御ステートメント、例外ハンドラーなどのさまざまな要素があります。プログラムに与えられた入力に基づいて、一部のコード ステートメントが実行され、一部のコード ステートメントは実行されない場合があります。処刑される。ステートメント カバレッジ手法の目標は、コード内の実行可能なステートメントとパス行をすべてカバーすることです。
例によってステートメント カバレッジを計算するプロセスを理解しましょう。
雪と氷
ここでは、ソース コードを使用して入力値に従って 2 つの異なるシナリオを作成し、各シナリオのステートメント カバレッジの割合を確認します。
ソースコードの構造:
- a=0 と b=1 のような 2 つの値を入力します。
- これら 2 つの値の合計を求めます。
- 合計が 0 より大きい場合は、「これは肯定的な結果です。」と出力します。
- 合計が 0 未満の場合は、「これは負の結果です。」と出力します。
input (int a, int b) { Function to print sum of these integer values (sum = a+b) If (sum>0) { Print (This is positive result) } else { Print (This is negative result) } }
これがプログラムの基本構造であり、それが実行するタスクです。
次に、2 つの異なるシナリオと、特定のソース コードのステートメント カバレッジの割合の計算を見てみましょう。
シナリオ 1:
a = 5 の場合、b = 4
print (int a, int b) { int sum = a+b; if (sum>0) print ('This is a positive result') else print ('This is negative result') }
シナリオ 1 では、合計の値が 0 より大きい 9 になり、条件に従って結果が ' になることがわかります。 これは肯定的な結果です。 ' 黄色で強調表示されたステートメントは、このシナリオで実行されたステートメントです。
最初のシナリオのステートメント カバレッジを計算するには、ステートメントの合計数 7 と使用されるステートメントの数 5 を取得します。
Total number of statements = 7 Number of executed statements = 5
Statement coverage = 5/7*100 = 500/7 = 71%
同様に、シナリオ 2 では、
シナリオ 2:
A = -2、B = -7 の場合
print (int a, int b) { int sum = a+b; if (sum>0) print ('This is a positive result') else print ('This is negative result') }
シナリオ 2 では、合計の値が 0 より小さい -9 になり、条件に従って結果が ' になることがわかります。 これは否定的な結果です。 ' 黄色で強調表示されたステートメントは、このシナリオで実行されたステートメントです。
最初のシナリオのステートメント カバレッジを計算するには、ステートメントの合計数 7 と使用されるステートメントの数 6 を取得します。
ステートメントの合計数 = 7
実行されたステートメントの数 = 6
Statement coverage = 6/7*100 <br> = 600/7 = 85%
ただし、すべてのステートメントが両方のシナリオでカバーされていることがわかり、全体的なステートメント カバレッジは 100% であると考えることができます。
したがって、ステートメント カバレッジ手法は、デッド コード、未使用のコード、およびブランチをカバーします。