回帰テスト

回帰テスト(リグレッションテスト)とは?

回帰テスト(Regression Testing)とは、コードを改修した際に、改修した部分だけでなく、他の機能に影響が出ていないか確認するテスト です。
つまり、「修正したことで別のバグを生んでいないか?」をチェックするテスト です。


回帰テストが必要な理由

VBA(Excel/Access)でも、コードの修正や機能追加を行うと、想定外の影響が出ることがあります
例えば、以下のようなケースで回帰テストが重要になります。

🔹 共通モジュールの変更
 → 影響範囲が広いため、他の処理に不具合が出る可能性がある

🔹 既存の計算ロジックを修正
 → 修正した部分だけでなく、他の計算結果も確認する必要がある

🔹 ユーザーフォームの動作変更
 → 画面の入力・出力処理や、他のフォームとの連携を確認する必要がある

🔹 データの処理フロー変更
 → 変更後のデータが正しく反映されるか、既存データへの影響がないか確認


回帰テストの進め方

回帰テストを行う際の具体的な流れを説明します。

① 影響範囲の特定

まず、今回の修正がどの機能・処理に影響する可能性があるのかを整理 します。
変更したモジュールや関数が、どこで使われているかを調査
修正した部分と関連のある他の機能を洗い出す

例:ある関数を修正した場合

  • その関数を直接呼び出しているマクロをテスト
  • そのマクロを実行するユーザーフォームやボタンの動作を確認

② 主要なテストケースを選定

回帰テストをすべての機能に対して実施するとコストがかかりすぎるため、影響が大きい部分を優先的にテスト します。

テストすべき代表的なパターンを決める
過去にバグが発生しやすかった箇所は重点的にチェック

例:データ入力のバリデーションを修正した場合

  • 正常値での入力チェック
  • エラー値(想定外の入力)でのチェック
  • 修正前のデータでも問題なく処理できるか確認

③ 実際にテストを実施

変更部分と影響範囲に対して、手動 or 自動でテストを実施します。
VBAの場合、多くは手動でのテストになりますが、マクロを使ったテスト自動化 も可能です。

事前に想定される動作と、実際の結果が一致するかを確認
テスト結果を記録し、異常があれば修正


④ 回帰テストの結果を記録

回帰テストの結果をドキュメントにまとめておくと、「この変更がどこまでテストされたか」 を後で確認できます。
テストケースごとに「OK / NG」を記録
NG(エラー)が発生した場合、原因を特定して修正


回帰テストの効率化

回帰テストは毎回手作業でやると負担が大きいので、以下の方法で効率化できます。

テスト用マクロを作成して自動化
 👉 例:「特定の入力値をシートに入力し、処理結果を比較するマクロ」を作る

テスト観点リストを作り、簡単なチェックで済むものを明確にする
 👉 例:「フォームのボタン動作 → クリックするだけでOKならチェックリストにする」

Excelの条件付き書式を活用し、意図しない変更をすぐ見つけられるようにする
 👉 例:「計算結果の比較セルに条件付き書式を設定し、差異があれば色を変える」


まとめ

📌 回帰テストは「修正の影響で他の機能が壊れていないか確認するテスト」
📌 影響範囲を特定し、必要なテストケースを選定することで効率的に進める
📌 手動テストの負担を減らすために、マクロやチェックリストを活用するのが効果的

VBAでも、コードの修正を行うたびに 最低限の回帰テストを意識することで、予期せぬ不具合を防ぐ ことができます! 🎯

コメント