自動テストをとりまく要素から見た、成功のポイント
ヒューマンクレストは、ソフトウェアテストを専業とする企業。自動テストを中心に、継続的なリファクタリング支援、脆弱性診断、負荷テストなどのソリューションを提供している。浅黄氏はこの10年で機能テスト、リグレッションテスト、APIテストなど、70件の自動テストのプロジェクトに携わってきた。それらには組織に定着したもの、継続しなかったものがあるとし、成功事例と失敗事例を共有した(本講演で対象となるのはUIやサービスのテストで、Unitテストは対象外)。
浅黄氏が示した成功事例は以下の表のとおり。
テスト対象 | テストタイプ | 実行トリガー | UI | |
---|---|---|---|---|
事例1 | BtoB Webシステム(グループウェア) | シナリオテスト(40シナリオ) | 定期実行 毎日0時 | PCブラウザ(Chrome、firefox、Edge) |
事例2 | BtoC Web、スマホ向けシステム(HR系) | シナリオテスト(30シナリオ) | 定期実行 毎日8時、14時 | PCブラウザ(Chrome)、スマホブラウザ(Chrome、Safari)、スマホアプリ |
事例3 | BtoC スマホアプリ | 機能テスト(26ケース)→チェックポイント数百箇所 | 定期実行 毎日0時,12時 | スマホ(Android、iPhone) |
事例4 | BtoB Webシステム(リアルエステート) | 機能テスト(260ケース) | Push時 | Webブラウザ(DockerChrome) |
これらの事例の解説にあたり浅黄氏は、自動テストを取り巻く要素を整理した図「Test Automation Circles(テストオートメーションサークル)」を提示した。
テストオートメーションサークルの中心には「なぜテストをするのか?」というコア(目的)が置かれ、その周りには、「どんなテストをするのか?」というコンセプト(戦略や設計、スコープ)がある。その外側には「何で実現するか?」のアーキテクチャ(環境、フレームワーク、ツール、CI/CD)があり、さらに外側にはモニタリングとコントロール(実現された自動テストの実行、結果分析、レポーティングなど)がある。そして、それらはベース(チームのリソース、スキルセット、文化)の上に成り立っている。
浅黄氏は、テストオートメーションサークルのコア、コンセプト、アーキテクチャ、モニタリングとコントロール、ベースを先の4つの成功事例にあてはめた表を示した。
4つの事例ともにコア(目的)は定まっている。事例1では、元々あった手動テストを自動化してきた背景から、コンセプトにあたる設計部分があまりよくない。また、単独のテストでCI/CDには取り組んでいないため、アーキテクチャも弱い。事例2も同様に単独のテストでCI/CDには取り組んでいないため、アーキテクチャが弱い。
浅黄氏は、これらの成功要因は2つあり、その1つはデベロッパーが自動テストの結果を求めていること、もう1つはバグが発生した際にその後の手順が明確であることだとした。
「テストが失敗した後、バグだとわかった後にどんな手順でどこまで修正するか、誰がそのテストケースをもう1回実行するのかが明確になっていると、継続される率が高いです」(浅黄氏)