サイクロマチックコムplexソフトウェアテストにおける重要性(例)

マッケイブのサイクロマティックコムとはplexシティ?

サイクロマチックコムplexソフトウェアテストの重要性 com を測定するために使用されるテスト指標です。plexソフトウェアプログラムの性質。 これは、ソフトウェア プログラムのソース コード内の独立したパスの定量的な尺度です。 サイクロマチックコムplex性は、制御フロー グラフを使用することによって、またはソフトウェア プログラム内の関数、モジュール、メソッド、またはクラスに関して計算できます。

独立したパスは、他のパスで以前に通過したことのない少なくとも XNUMX つのエッジを持つパスとして定義されます。

このメトリクスは、1976 年に Thomas J. McCabe によって開発され、プログラムの制御フロー表現に基づいています。 制御フローは、プログラムをノードとエッジで構成されるグラフとして表現します。

グラフでは、ノードは処理タスクを表し、エッジはノード間の制御フローを表します。

サイクロマチックコムplexソフトウェアテストの重要性

プログラムのフロー グラフ表記:

プログラムのフロー グラフ表記は、エッジを介して接続された複数のノードを定義します。 以下は、if-else、while、until などのステートメントと通常のフロー シーケンスのフロー図です。

プログラムのフロー グラフ表記

サイクロマティックコムの計算方法plexITY

数学的表現:

数学的には、これはグラフ図を通る一連の独立したパスです。 コードコムplexプログラムの性質は次の式を使用して定義できます。

V(G) = E - N + 2

ここで、

E – エッジの数

N – ノードの数

V (G) = P + 1

ここで、 P = 述語ノード (条件を含むノード) の数

例–

i = 0;
n=4; //N-Number of nodes present in the graph

while (i<n-1) do
j = i + 1;

while (j<n) do

if A[i]<A[j] then
swap(A[i], A[j]);

end do;
j=j+1;

end do;

このプログラムのフローグラフは次のようになります。

サイクロマチックコムplexこのプログラムのフロー グラフ

数学的に計算すると、

  • V(G) = 9 – 7 + 2 = 4
  • V(G) = 3 + 1 = 4 (条件ノードは 1,2、3、XNUMX ノード)
  • Basis Set – プログラムの可能な実行パスのセット
  • 1、7
  • 1、2、6、1、7
  • 1、2、3、4、5、2、6、1、7
  • 1、2、3、5、2、6、1、7

サイクロマチックコムの性質plexity:

Following はサイクロマチックコムのプロパティですplexity:

  1. V (G) はグラフ内の独立したパスの最大数です。
  2. V (G) >=1
  3. V (G) = 1 の場合、G には XNUMX つのパスが存在します。
  4. コムを最小化するplex10まで

この指標はソフトウェアのテストにどのように役立ちますか?

Basis Path テストは White の XNUMX つです box この技術により、テスト中に少なくとも XNUMX つのステートメントが実行されることが保証されます。 プログラム内の線形に独立した各パスをチェックします。 テストケースの数を意味し、サイクロマティックコムと同等になりますplexプログラムの内容。

このメトリクスは、Cyclomatic com の特性により役立ちます。plexシティ (M) –

  1. M は分岐カバレッジを達成するためのテスト ケースの数です (上限)
  2. M はグラフを通るパスの数です。 (下限)

この例を考えてみましょう –

If (Condition 1)
Statement 1

Else
Statement 2

If (Condition 2)
Statement 3

Else
Statement 4

サイクロマチックコムplexこのプログラムのシティは 8-7+2=3 になります。

アズコムplexity は 3 と計算されており、上記の例の完全なパス カバレッジには XNUMX つのテスト ケースが必要です。

従うべきステップ:

次のことwing Cyclomatic com を計算するには、次の手順に従う必要があります。plex性とテストケースの設計。

ステップ 1 – コードからのノードとエッジを含むグラフの構築

ステップ 2 – 独立したパスの特定

ステップ 3 – サイクロマティックコムplexシティの計算

ステップ 4 – テストケースの設計

基本セットが完成したら、 テストケース すべてのパスを実行するように記述する必要があります。

V (G) の詳細:

サイクロマチックコムplexプログラムが小さい場合は手動で計算できます。 プログラムが非常に複雑な場合は、自動ツールを使用する必要があります。plex これにはより多くのフロー グラフが含まれるためです。 comに基づくplex数値に応じて、チームは対策を講じる必要があるアクションを結論付けることができます。

Following 表は com の概要を示していますplexv (G) の番号と対応する意味:

とplex市番号 意味
1-10 構造化されよく書かれたコード

高いテスト容易性

コストと労力が少なくて済みます

10-20 とplex Code

中程度のテスト容易性

コストと労力は中程度

20-40 とてもコムplex Code

低いテスト可能性

コストも手間もかかる

> 40 まったくテストできません

非常に高いコストと労力

サイクロマティックコム用ツールplexシティの計算:

com を決定するために多くのツールが利用可能ですplexアプリケーションの性質。 あるコムplex性計算ツールは特定のテクノロジーに使用されます。 コムplexかどうかは、プログラム内の決定ポイントの数によってわかります。 決定ポイントは、ソース コード内の if、for、for-each、while、do、catch、case ステートメントです。

ツールの例としては、

  • OCLint – C および関連言語用の静的コード アナライザー
  • リフレクター アドイン – .NET アセンブリのコード メトリクス
  • Gメトリクス – メトリクスを検索します Java 関連アプリケーション

サイクロマチックコムの用途plexity:

サイクロマチックコムplexは非常に役立つことがわかります

  • 開発者とテスターが独立したパスの実行を決定するのに役立ちます
  • 開発者は、すべてのパスが少なくとも XNUMX 回テストされていることを保証できます。
  • 覆われていない道にもっと集中できるようになります
  • コードカバレッジを改善する ソフトウエアエンジニアリング
  • アプリケーションまたはプログラムに関連するリスクを評価する
  • サイクルの早い段階でこれらの指標を使用すると、プログラムのリスクがさらに軽減されます

結論:

サイクロマチックコムplexity は、構造化されたデータやデータに役立つソフトウェア メトリックです。 ホワイト Box テスト。 主にcomの評価に使用されます。plexプログラムの性質。 決定点が多ければ、complexプログラムの内容はさらに充実しています。 プログラムにハイコムがある場合plex数が多い場合、メンテナンスやトラブルシューティングにかかる​​時間が長くなり、エラーの可能性が高くなります。