肥大化し続けるソフトウェアをどうテストする? アジャイル時代のソフトウェアテストに必要な考え方:海外企業に学ぶテスト自動化(終)
海外の先進的企業の事例を基にテスト自動化に使われる手法を解説する本連載。最終回は、アジャイル開発におけるテスト自動化において重要な考え方とは何かを解説する。
これまでの連載でミューテーションテストとカオスエンジニアリングを紹介しました。先進企業においては「時間はお金で買うもの、特に品質担保の時間はなるべく少ない方がいい」「テストの時間がゼロになるならお金はいくらでもつぎ込みたい」というのが本音だと思います。GAFAM(Google、Amazon.com、Facebook、Apple、Microsoft)は十分な利益があるのでお金で時間を買って先行者利益を得たいはずだと筆者は考えています。Googleのあるテスト担当者は「私たちはマニュアルテストをしている時間がないから自動化するのだ」と言っていたそうです。これはコスト削減のためにテストを自動化するという多くの日本企業の姿勢とは異なります。
アジャイル時代の今後のソフトウェアテストは、次の2つが重要であると考えています。
- 単体テストの比重に重きを置き、その結果から品質を確率統計的に判断する
- 自動化されたランダムテストを多用する、その結果から品質を確率統計的に判断する
下図はGoogleが単体テストにテストの重きをおくという指針を示したものです。連載第1回で述べたように、Googleでは単体テストベースでミューテーションテストを行っています。
しかし、多くの日本の企業では下図のように、自動化すべきでないUIから一生懸命に自動化しているのではないでしょうか。
いまだにUIの動作を記録して再生させる自動化ツールを喜んで使っている日本のソフトウェア組織がたくさんあります。言い方は酷かもしれませんが、もう少し戦略的にテストというものに取り組んでみませんか。ソフトウェアは肥大化しています。無限の空間をどう効率的にテストするかというのは非常に重要な考え方です。UIをただなぞるだけの自動化では製品全体の0.001%しかテストできていないかもしれません。
上記のようなアジャイル開発ではデイリースクラムの中へ定量的に毎日計測できる品質メトリクスを入れなければ意味がありません。そういう意味ではミューテーションテストもカオスエンジニアリングも定量的な品質指標を毎日出すことができます。
ランダムはでたらめではない
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- テスト自動化で「失敗しない」ために、何がいる? 必要なツールと手順をおさらい
テスト自動化に取り組みたいけれどノウハウがない、過去に導入していたがうまくいかなくてやめた人に向けて、テスト自動化の「あるある」な失敗事例とともにどうすればうまく取り入れられるのかを解説する本連載。第2回は自動化ツールの種類やテスト自動化に必要な手順について。 - 5分で分かるテスト自動化
現在のソフトウェア開発に欠かせない「テスト自動化」について、およそ5分でざっくり解説します。 - 技術的負債の放置、リリース直前に炎上――アジャイル開発で陥りがちな問題とその原因とは
少人数、短期間の開発を繰り返すアジャイル開発では、どのようにすれば品質を保つことができるのだろうか。本連載では、アジャイル開発における品質管理の手法を解説する。初回は、アジャイルテストの基本的な考え方と戦略について、2回に分けて解説する。前編となる今回はアジャイル開発において発生しがちな問題とその原因について。