はじめに
テストについて勉強していると、カバレッジという単語が出てきましたがなんのこっちゃという感じでした。そこでカバレッジの概要を掴むために調べた記事をまとめてみました。
カバレッジとは
以下記事によるとカバレッジとは 『対象範囲に対して、全体の内どれくらい網羅しているかを示す指標のことです。ソフトの品質を担保するための一つの指標として使われます。』 とのこと。ソフトウェアの動作やプログラムのパスなどがとり得る状態の全体に対して、どのくらい網羅してテストするかということのようです。記事では論理構造の全体に対してどれほど実行できたかということを尺度としていました。
参考ウェブサイト
【徹底解説】カバレッジ(網羅率)とは?ソフトウェア開発における意味と3つの基準について解説
C0,C1,CDC,MC/DC,MCCカバレッジとは
カバレッジには段階があり、基本的に以下の順で網羅率の高さが異なっています。カバレッジが高ければその分ソフトの品質は担保されますが、テスト工程が増えるため予算や期間に応じてどの程度テストするのかは考えたほうが良いでしょう。
カバレッジ低 → カバレッジ高
C0→C1→CDC→MC/DC→MCC
それぞれの詳細については以下の記事が分かりやすかったです。
参考ウェブサイト
ホワイトボックステストにおけるカバレッジとテストケース(C0, C1, C2, CDC, MC/DC, MCC)
猫でも使えるソフトウェアのテスト網羅(4):C1カバレッジの弱点とエンジニアの信念
nスイッチカバレッジとは
nスイッチカバレッジという単語は、ホワイトボックステストで主に用いられる上記のC0などとは異なる文脈で使われるようでした。この単語はブラックボックステストの一つである状態遷移テストの文脈で使われます。1つの状態を1つのスイッチに例え、n個の状態を経由した遷移をテストするという意味で使用されます。これもnの値を上げるとソフトの品質は保証されますが、テスト工数が大幅に増えるため、予算や期間に応じてどの程度テストするのかは考えたほうが良いでしょう。
そもそも状態遷移テストとは
通常、入力条件が同じならば同じ出力結果になるという前提に立ってテストケースを設計します。しかしプログラムによっては、現在の状態や過去の履歴によって、同じ入力データを用いても異なる振る舞いをすることがあります。
こういった場合を網羅するために複数の手順を組み合わせたテストを行うのですが、それを設計する際に用いるのが状態遷移テストです。
具体的には、状態と状態を変化させるイベントを「状態遷移図」「状態遷移表」にまとめてテストケースを作成します。
詳細は以下のページで分かりやすく説明されていました。
参考ウェブサイト
Jasst Tohoku 状態遷移テスト
状態遷移テストと1スイッチカバレッジ
さいごに
テストについて少し勉強してまとめてみました。基本的に詳細は他記事に書いてあるので、それぞれ気になった方はそちらを見てください。開発時間が限られている中で、いかに重要な所にフォーカスしてテストを設計できるかが大事なんじゃないかなと思いました。