「GAFAM」から学ぶ、自動テスト手法――アジャイル開発で単体テストの“確からしさ”を検証する、ミューテーションテストとは:海外企業に学ぶテスト自動化(1)
海外の先進的企業の事例を基にテスト自動化に使われる手法を解説する本連載。第1回は、アジャイル開発において単体テストを検証する「ミューテーションテスト」について。
今の時代に「海外に学ぶ」というタイトルは反感を覚える方がいるかもしれませんが、残念ながら日本のソフトウェア企業と「GAFAM」(Google、Amazon.com、Facebook、Apple、Microsoft)との技術力の差は大きいです。それは日本の技術者が米国などの海外の技術者より劣っているという話ではなく、企業の利益の差が大きいと思っています。例えば、Googleの利益は約4兆円で、利益率約20%、1人当たりの利益は約7000万円、Microsoftの利益は約6兆円、営業利益率 約40%、1人当たりの利益は約4000万円です。
筆者のいたソニーの利益は約1兆円、営業利益率は10%、1人当たりの利益は1000万円。やはりもうかっていれば、技術(品質技術も含め)に大きな投資ができます。残念ながらソニーにいたころに使えた品質に関する研究開発費は、その前にいたMicrosoftほど潤沢ではありませんでした。
しかし今の時代、GAFAMの成果は自社の研究開発費がなくても使えます、多くの成果はWebや専門誌で公開されています。他人のふんどしではないですが、少し先端的な品質管理のための技術を本連載で解説していきます。
ミューテーションテストの必要性
現代のソフトウェア開発はウオーターフォールからアジャイルへの流れは止めるとこはできなさそうです。その流れの中でソフトウェアテストという分野は大きな転換点を迎えていると思います。
ウオーターフォールモデルでのソフトウェアのテストの基本はVモデルです。要求仕様があれば、要求仕様が書かれた段階でテスト(レビューをして要求仕様の間違いを見つける)をする。詳細設計とコーディングが終われば単体テストをするといったようなものです。実にうまく分割され、そのステージごとの品質保証スタイルも洗練されていました。品質保証の担当者には気持ち良いプロセスだったのかもしれません。
しかしこれがアジャイル開発が進み、そのメリットとスピード感が受け入れられると、ひょっとしたらテストエンジニアは、私は何をすべきなのかと思うかもしれません。要求仕様はユーザーストーリーに入れ替えられ、開発者は基本設計書や詳細設計書を書かないケースも出てきます。
またコーディングに対する単体テストの比重は大きくなり、さらにコードの書けないテストエンジニアは困る可能性もあります。余談ですが、今後のテストエンジニアはコーディングに対する関与は必須になりスキルセットの変革が求められると思います。
編集部注)2022年7月13日、上記図版内の記載に誤りがあったため修正しました
Vモデルに対応するテスト手法がアジャイルではうまく適応できなくなった今、明確に重要度が増しているのが単体テストだと思います。もしかすると、他のテスト手法がアジャイルでは適応しにくくなって地位が下がったので、逆に単体テストに対する品質保証の依存度は上がったともいえるのではないでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- テスト自動化で「失敗しない」ために、何がいる? 必要なツールと手順をおさらい
テスト自動化に取り組みたいけれどノウハウがない、過去に導入していたがうまくいかなくてやめた人に向けて、テスト自動化の「あるある」な失敗事例とともにどうすればうまく取り入れられるのかを解説する本連載。第2回は自動化ツールの種類やテスト自動化に必要な手順について。 - 5分で分かるテスト自動化
現在のソフトウェア開発に欠かせない「テスト自動化」について、およそ5分でざっくり解説します。 - 技術的負債の放置、リリース直前に炎上――アジャイル開発で陥りがちな問題とその原因とは
少人数、短期間の開発を繰り返すアジャイル開発では、どのようにすれば品質を保つことができるのだろうか。本連載では、アジャイル開発における品質管理の手法を解説する。初回は、アジャイルテストの基本的な考え方と戦略について、2回に分けて解説する。前編となる今回はアジャイル開発において発生しがちな問題とその原因について。