logo

グーグルのクラウドを支えるテクノロジー > 第86回 GoogleにおけるMutation Testの実践(パート1)

CTC教育サービスはコラム「グーグルのクラウドを支えるテクノロジー > 第86回 GoogleにおけるMutation Testの実践(パート1)」を公開しました。

###

はじめに

 今回からは、2018年に公開された論文「State of Mutation Testing at Google」を元にして、「Mutation Test(ミューテーション・テスト)」と呼ばれる、少し変わったソフトウェアのテスト方法について、Googleにおける取り組みと、その有効性の分析結果を紹介します。

Mutation Testの目的

 Googleにおけるソフトウェア開発では、一般に「テスト駆動開発」と呼ばれる手法を採用しており、ある機能を実装するコードを作成する際は、その機能が正しく動作することを検証するためのテスト用のコードも同時に作成します。将来、該当のコード、あるいはこのコードが依存するライブラリーなどに変更があった際は、このテストを再実行することで、本来の機能が満たされなくなるといった想定外の問題が起きていないことを確認します。この時、テスト用のコードそのものに問題があると困ります。正しく機能しているのにテストが失敗する「偽陽性」のケースであれば、開発者自身がテストに問題があると気づくことができますが、本当は正しく機能していないのにテストが成功するという「偽陰性」の場合、ソフトウェアの問題が気づかれないまま放置される危険性があります。そこで、元のコードに対して、それが正しく機能しなくなるような変更をわざと加えて、対応するテストが正しく「失敗」することを確認しようというのがMuattion Testの考え方です。
 Mutation Testを行う際は、通常、次のような自動化を行います。まず、一定のルールに基づいて、元のコードをランダムに変更します。具体的には、図1のようなルールがあります。

この続きは以下をご覧ください
リンク

本プレスリリースは発表元企業よりご投稿いただいた情報を掲載しております。
お問い合わせにつきましては発表元企業までお願いいたします。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]