こんにちは。プロダクト品質部のSです。
今回は、多くのプロダクトで行われているリグレッションテストについて紹介したいと思います。
リグレッションテストの定義
国際的な品質基準(ISTQB)の日本語版であるJSTQBにはリグレッションテストは以下の定義がされています。
修正および変更でコードの一部に対して行った変更が、同一コンポーネ ント、同一システム内の他コンポーネント、または他システムの振る舞いに意図せず影響を及ぼ す場合がある。変更には、オペレーティングシステムやデータベース管理システムの新しいバー ジョンなど、環境の変更も含まれる。そのような意図しない副作用をリグレッションと呼ぶ。リグレッションテストでは、テストを実行して、そのような意図しない副作用を検出する。
(JSTQB Foundation Level シラバス Version 2018V3.1.J03 より引用)
つまり、コードの変更が意図しない副作用(悪影響)を起こさないかを検出するテストがリグレッションテストということです。
そもそもですが、不具合や機能改修が行われたとき、不具合が修正されたこと、機能が正しく実装されていること、または予測しなかった悪影響が発生していないことを確認するためにテストをしなければなりません。
システムは本質的に進化するものであるため、確認テストとリグレッションテストはきわめて重要であると思います。
リグレッションテストの自動化
リグレッションテストは何度も実行され、通常は少しずつ拡充していきます。
リグレッションテストはテスト自動化に適しているテストとされ、自動化したうえで各開発フェーズで行うことが理想とされています。
なぜテスト自動化にリグレッションテストが適しているかというと、プログラム修正による影響が今まで通りの挙動が行われていることを確認するテストであり、何度も同じケースを実行するテストだからです。
※ちなみに、要件や仕様が頻繁に変わる機能のテストや実施頻度が低いテスト、使い勝手など人の感覚的な判断が必要なユーザビリティテストはテスト自動化に適していません
リグレッションテストを行わないことのリスク
多くのプロダクト(特に既存開発)にて行われているリグレッションテストですが、リグレッションテストを行わないと一般的には以下のリスクをはらむことになります。
特にリスクのもととなるデグレードに関してはリリースした機能だけでなく、既にリリース済みの機能についても悪影響を及ぼします。
既存のお客様に対する信頼を損ねることになり、最悪チャーン(解約)につながってしまうため何としても阻止しなければなりません。
こういったリスクの軽減にリグレッションテストは役立つのではないかと思います。
当社リグレッションテストの現状
このように、デグレードおよび市場不具合のリスクを軽減するリグレッションテストですが、スパイダープラスでは案件の受入テストにおいて影響範囲の確認を行っており、確認観点のダブルチェックを行うことで確認観点の抜け漏れを防ぐといったリスク対策を行っています。
さらなる改善策として、機能横断的なリグレッションテストを目下準備しています。
当社リグレッションテストの今後
手動テストを行った後、テスト実施効率化や加速する開発に対応するため自動化ツールでの運用も視野に入れています。
また、現状は機能単位になっているユースケースを機能横断的なユースケースにし、よりお客様の業務フローに沿ったものにしていきたいと考えております。
市場不具合のリスクをリグレッションテストにより軽減⇒市場不具合を阻止し、プロダクトに対するお客様の信頼を得ることに寄与できればと思います。
ところで、スパイダープラスでは仲間を募集中です。
スパイダープラスにちょっと興味が出てきたなという方がいらっしゃったらお気軽にご連絡ください。