検索
連載

肥大化し続けるソフトウェアをどうテストする? アジャイル時代のソフトウェアテストに必要な考え方海外企業に学ぶテスト自動化(終)

海外の先進的企業の事例を基にテスト自動化に使われる手法を解説する本連載。最終回は、アジャイル開発におけるテスト自動化において重要な考え方とは何かを解説する。

Share
Tweet
LINE
Hatena

 これまでの連載でミューテーションテストとカオスエンジニアリングを紹介しました。先進企業においては「時間はお金で買うもの、特に品質担保の時間はなるべく少ない方がいい」「テストの時間がゼロになるならお金はいくらでもつぎ込みたい」というのが本音だと思います。GAFAM(Google、Amazon.com、Facebook、Apple、Microsoft)は十分な利益があるのでお金で時間を買って先行者利益を得たいはずだと筆者は考えています。Googleのあるテスト担当者は「私たちはマニュアルテストをしている時間がないから自動化するのだ」と言っていたそうです。これはコスト削減のためにテストを自動化するという多くの日本企業の姿勢とは異なります。

 アジャイル時代の今後のソフトウェアテストは、次の2つが重要であると考えています。

  • 単体テストの比重に重きを置き、その結果から品質を確率統計的に判断する
  • 自動化されたランダムテストを多用する、その結果から品質を確率統計的に判断する

 下図はGoogleが単体テストにテストの重きをおくという指針を示したものです。連載第1回で述べたように、Googleでは単体テストベースでミューテーションテストを行っています。

 しかし、多くの日本の企業では下図のように、自動化すべきでないUIから一生懸命に自動化しているのではないでしょうか。

 いまだにUIの動作を記録して再生させる自動化ツールを喜んで使っている日本のソフトウェア組織がたくさんあります。言い方は酷かもしれませんが、もう少し戦略的にテストというものに取り組んでみませんか。ソフトウェアは肥大化しています。無限の空間をどう効率的にテストするかというのは非常に重要な考え方です。UIをただなぞるだけの自動化では製品全体の0.001%しかテストできていないかもしれません。

 上記のようなアジャイル開発ではデイリースクラムの中へ定量的に毎日計測できる品質メトリクスを入れなければ意味がありません。そういう意味ではミューテーションテストもカオスエンジニアリングも定量的な品質指標を毎日出すことができます。

ランダムはでたらめではない

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る