レグレッションテストとは?プログラミングで使うテストの基礎知識

ざっくりと

  • 既存の機能が壊れていないか確認
  • 新しいバグが発生していないかテスト
  • コードの品質を維持する手法

レグレッションテストとは、既存の機能が壊れていないか確認するテストです。

概要説明

レグレッションテストとは、新しいコードが既存の機能に影響を与えていないか確認するテストである。なぜならば、新しい機能やバグ修正が既存の機能に影響を与える可能性があるからだ。例えば、新しい機能を追加した後に、既存の機能が使えなくなる場合がある。そして、これを防ぐために行う。つまり、コードの品質を維持する手法である。だから、定期的に行うべきだ。

職業職種

  • ソフトウェアエンジニア
    ソフトウェアエンジニアは、新しい機能を追加または修正する際にレグレッションテストを行う。なぜなら、コードの安全性を確保するため。例えば、新機能の追加後。
  • QAエンジニア
    QAエンジニアは、ソフトウェアの品質を確保するためにレグレッションテストを行う。なぜなら、新しいバグが発生していないか確認するため。例えば、リリース前に。
  • プロジェクトマネージャー
    プロジェクトマネージャーは、プロジェクトの進行状況を把握するためにレグレッションテストの結果を確認する。なぜなら、リリースの品質を確保するため。例えば、マイルストーンの確認時。

レグレッションテストは、名前の由来は「Regression」であり、これは「後退」や「退行」を意味する英語です。このテストは、コードが「後退」しないようにするためのものだからこの名前がついています。

代表例

  • ソニー
    ソニーは、レグレッションテストで有名である。なぜなら、ゲーム機やエレクトロニクス製品の品質を確保するために厳格なテストを行っているから。例えば、PlayStationシリーズ。
  • 楽天
    楽天は、レグレッションテストで名高い存在である。なぜなら、オンラインショッピングサイトの安全性と使いやすさを保つために、定期的なテストを実施しているから。例えば、楽天市場。
  • 任天堂
    任天堂は、レグレッションテストで世間に知られている。なぜなら、ゲームソフトの品質を非常に高く保つために、多くのテストを行っているから。例えば、スイッチのゲーム。

手順例

以下は、レグレッションテストの基本手順です。
  1. テスト計画を作成
    テスト計画を作成する。なぜなら、何をテストするのか明確にするため。例えば、テストケースのリストを作る。
  2. 既存のテストケースを確認
    既存のテストケースを確認する。なぜなら、古いテストケースがまだ有効かどうかを知るため。例えば、前回のテスト結果を見る。
  3. テスト環境を整える
    テスト環境を整える。なぜなら、テストが正確に行われるようにするため。例えば、必要なソフトウェアをインストールする。
  4. テストを実行
    テストを実行する。なぜなら、バグや問題点を見つけるため。例えば、自動テストツールを使う。
  5. 結果を分析
    結果を分析する。なぜなら、何が問題だったのかを理解するため。例えば、ログファイルを確認する。

類似語

  • デグレードテスト
    デグレードテストは、レグレッションテストの類似語である。なぜなら、どちらも既存の機能が壊れていないか確認するテストだから。例えば、新機能追加後のテスト。
  • スモークテスト
    スモークテストは、レグレッションテストの類似語である。なぜなら、基本的な機能が動くかどうかを確認するテストで、レグレッションテストの一部とも言えるから。例えば、ソフトウェアの初期段階で行う。
  • ユニットテスト
    ユニットテストは、レグレッションテストの類似語である。なぜなら、特定の部分(ユニット)が正しく動作するかを確認するテストで、レグレッションテストの一部になることもあるから。例えば、関数やメソッドのテスト。

反対語

  • 新機能テスト
    新機能テストは、レグレッションテストの反対語である。なぜなら、新しく追加された機能だけをテストするから。例えば、アップデートで追加されたボタンの動作確認。
  • アドホックテスト
    アドホックテストは、レグレッションテストの反対語である。なぜなら、計画せずに行うテストで、既存の機能に対する確認が少ないから。例えば、急に思いついたバグを探すテスト。
  • 初回テスト
    初回テストは、レグレッションテストの反対語である。なぜなら、ソフトウェアが初めてリリースされる前に行うテストで、既存の機能はまだないから。例えば、アプリが初めて出る前の全体テスト。

会話例

  • プロジェクトミーティングで
    「新機能を追加したけど、レグレッションテストはやった?」
    「うん、やったよ。既存の機能もちゃんと動いてる。」
  • コードレビュー中に
    「このコード変更、レグレッションテストは必要かな?」
    「必要だね。既存の機能に影響が出るかもしれないから。」
  • バグ修正後に
    「バグ修正したけど、レグレッションテストは?」
    「もう終わった。バグは直って、他の機能も大丈夫。」

注意点

レグレッションテストを使用する時の注意点はテストケースの選定である。なぜならば、不適切なテストケースを使うと、本当の問題を見逃してしまう可能性があるからだ。

例えば、古いテストケースをそのまま使うと、新しい機能に対応していないかもしれない。そして、テスト環境も整える必要がある。だから、事前にしっかりと準備をする。

レグレッションテストとユニットテストは、間違えやすいので注意しましょう。

レグレッションテストは、既存の機能が新しい変更によって壊れていないかを確認するテストです。

一方、ユニットテストは、コードの一部分(ユニット)が正しく動作するかを確認するテストです。

記事を書いてる人

ガラケー時代からWEB開発やってる自宅SE です。

「○○を知りたい!!」「○○が分からない!!」などありましたら、Twitterでもブログでもコメントいただければ、ご期待に添えるように頑張ります!

ネット事件簿チャンネルを運営しているので、YouTubeもぜひ覗いてみてください!!

雨おやじのSNSを覗く!!
IT用語辞典
雨おやじのSNSを覗く!!
ITkagyo

コメント