VB.net、エクセルマクロのソースから単体テスト項目表を一括で作成

UT.Browserは、VB.net、VB6、エクセルマクロのコメントから単体テスト項目表を一括で作成します。

  • 単体試験項目作成ツールUT.Browser画面イメージ
  • 単体試験項目作成ツールUT.Browserエクセル出力イメージ

ソースファイルを読込、条件文、ループ文、例外処理を解読し、コメントからテスト項目を抽出します。
抽出されたテスト項目は、ソースのどのコメントから作成されたか確認することができます。
テスト項目は、見やすいレイアウトでエクセル出力ことができます。

手順は簡単3ステップ

  • 1.ソースファイルの選択 (※マクロ、VBAの場合、ファイル選択後モジュールを選択 )
  • 2.テスト項目出力
  • 3.エクセル出力

また、UT.Browserは、コメントの入力不備をチェックすることができます。       
ソースレビュー前に、コメントの入力チェックで使用して頂くことにより、レビューの質をあげることができます。
丁寧にコメントが入力されているソースは、ソースの理解及び、後任者への大幅な負担軽減となります。

UT.Browserの単体テスト項目を出力する仕組み

  • UT.Browserではソースのコメントから試験項目、試験条件、確認項目の3項目をテスト項目として作成しています。

    • ・試験項目は、何を行なう為の処理であるのかを説明する項目
    • ・確認条件項目は、試験項目についてのIF文などの条件や、LOOPなどの境界等の条件
    • ・確認項目については、確認条件が満たした場合や処理の内容

    ソースを元にUT.Browserで作成するテスト項目をみていきます。

通常処理の場合の出力例

  • 通常処理の場合は、ソース行、またはソースの前行をコメントを取得します。取得した内容は試験項目となります。 確認項目は定型で「処理が正常に完了すること」となります。 取得対象コメントがない場合、除外コメント指定の場合、試験項目を作成しません。

    単体試験項目作成の通常処理サンプル

IF文、SELECT CASE文等の条件分岐の場合(ネストなし)

  • IF文は、IF句の前行に処理内容をコメントで記述します。このコメントが試験項目となります。 THEN句の後ろに処理の条件をコメントで記述します。このコメントが確認条件項目となります。 確認項目は、「IF文に入り処理を継続する」と定型文になります。 以降のIF文内の処理は、試験項目、確認条件を引継ぎ、確認項目に処理の内容が出力されます。

    Else if文、Else文の場合は、IF文の試験項目を引継ぎ、Else if文のthenの後ろのコメント、Else文の 後ろのコメントを確認条件として取得します。確認項目は、「Else if文に入り処理を継続すること」、 「Else文に入り処理を継続すること」と定型文になります。 以降のElse if文、Else文内の処理は、試験項目、確認条件を引継ぎ、確認項目に処理の内容が出力されます。

    単体試験項目作成のIF文サンプル

  • Select Case文はSelect文の前行に処理内容をコメントで記述します。このコメントは試験項目となります。 以降はCase句の後に条件をコメントで記述します。このコメントが確認条件となります。 確認項目は、「Case文に入り処理を継続すること」になります。 以降の処理については、試験項目、確認条件を引継ぎ、確認項目に処理のコメントを出力します。

    単体試験項目作成のSelectCase文サンプル

ループ文(WHILE,FOR,LOOP,DO)の場合の出力例

  • FOR、WHILE、DO句の前行にループ処理の内容をコメントで記述します。このコメントが試験項目となります。 また、FOR、WHILE、DO句の行にループの境界条件を記述します。このコメントは確認項目になります。 確認条件は各ループの境界条件が定型文で取得します。 ループ内の処理については、試験項目、確認条件を引継ぎ、取得したコメントを確認項目で出力します。

    単体試験項目作成のLOOP文サンプル

例外処理(TRY~CATCH~FINARY)の場合

  • 例外処理は、試験項目が「例外処理」になります。CATCHの後ろにコメントを記述します。このコメントは確認条件と なります。確認項目は「Catch文に入り処理を継続すること」と定型文になります。 例外処理内での処理については、試験項目、確認条件を引継ぎ、確認項目に処理のコメントを出力します。 Finaryについては、確認条件に「共通処理」と定型文を出力します。

    例外処理内でのIF文等ネストする場合、確認条件に処理のための条件が追記されます。
    (例外処理の出力例 赤枠)

    単体試験項目作成の例外処理サンプル

IF文、ループ文の処理内でネストされた条件文、ループ文の出力について

  • 条件文やループ文内の処理で、条件文、ループ文がある場合、
    • 1.対象の条件文、ループ文を通常処理をして確認項目を作成
    • 2.対象の条件文、ループ文を条件文、ループ文処理をして試験項目、確認条件、確認項目を作成

    単体試験項目作成のネストサンプル

最終更新日:2019年03月05日