メインコンテンツへ
開発技術テスト技術

ミューテーションテスト(変異テスト)の説明として、最も適切なものはどれか。

ア.ソースコードに意図的な小さな変異(バグ)を埋め込み、既存のテストスイートがその変異を検出できるかを評価することで、テストの品質(テストの有効性)を測る手法正解
イ.遺伝的アルゴリズムを用いてテストケースを自動生成する最適化手法
ウ.ウイルス・マルウェアがコードに悪意ある変更を加えていないかを検査するセキュリティテスト
エ.コードのリファクタリング後に機能的な変化がないことを確認する回帰テストの別名

解説

ミューテーションテストは「わざと間違いを混ぜて、テストが気づくか確かめる」品質検査。テストの先生が採点するのではなく、逆に「このテストは本当にちゃんと機能しているか」をテストする、二重チェックの仕組みです。

なぜ ア が正解か

ミューテーションテスト(Mutation Testing)は、ソースコードに小さな変異(ミュータント)——例えば「+を-に変える」「>を>=に変える」——を故意に埋め込み、既存テストがそのミュータントを「殺せる(検出できる)」かどうかを確認します。殺せないミュータントが多いほどテストが不十分であることを意味します。テストスイートの品質・カバレッジの有効性を測る高度な手法です。

なぜ イ は間違いか

遺伝的アルゴリズムを使ったテストケース自動生成は「サーチベーステストの一種」であり、ミューテーションテストとは異なります。「ミューテーション=遺伝子突然変異」からの連想ですが、別手法です。

なぜ ウ は間違いか

マルウェアがコードを改ざんしていないかのセキュリティ検査は「コード整合性チェック」や「マルウェアスキャン」です。ミューテーションテストは開発者が意図的に変異を埋め込むテスト品質評価手法です。

なぜ エ は間違いか

リファクタリング後の機能変化がないことを確認するのは「回帰テスト」または「リグレッションテスト」です。ミューテーションテストは回帰テストの別名ではなく、テスト品質評価の手法です。

出典: AI生成問題(学習用)