テスト自動化に必要な7つのチャレンジ

The Top 7 Challenges in Test Automation」というセミナーを聞きましたが、なかなかおもしろいデータや視点があったのでメモ。

テスト自動化の共通する難関

テスト自動化に関する共通のチャレンジは以下。

  • 自動化スキル不足をどうするか?
  • ビルドパイプラインにどうやってマージするか?
  • ノイズの中からバグを見逃さないようにするためには?
  • レポートを分析する時間を節約するには?
  • テストのメンテコストやカバレッジの問題(クロスプラットフォーム、クロスブラウザなど)
  • 自動テストをどうやって拡張していくか(パフォーマンス、セキュリティ、網羅性など)
  • テスト環境をどうやって簡単に作れるようにするか?
  • 自動化する時間をどうやって捻出するか?
  • テスタビリティをどうやって設計するか?

悩ましいところはたくさんですね。

体制に関する問題

「誰がテストをするか?」を調査した結果が紹介されていました。

  • 47%: 内部QA + Featureチームによるテスト
  • 34%: 内部QA + Featureチームによるサポート
  • 18%: Featureチームによるテスト

ポイントはQAと呼ばれる何かがFeatureチームの内なのか Or 外なのかと、Featureチームがどこまでテストしているのかでしょうか。

これらに関するスピーカーの推奨はこちら。

  1. Dev and QA構成のFeatureチーム
  2. 組織横断でのテスト自動化戦略策定、カバレッジの定義
  3. 個人スキルや扱える技術の中から、目的にあったものを選ぶ

1についてはDevOpsにおいてテストやQAが置き去りにされている問題に似ていて、mablが言ってるようなDevQAOpsの世界を作っていく必要があるのでしょうね。

テスト自動化の問題

調査によると、テスト自動化に関して、全体の半分以上が自動化できている企業は38%になるそうです。はたしてこれは多いのか少ないのか。

様々な課題があるなか、スピーカーの考えるおすすめは以下でした。

  • ゼロベースで戦略を考えること
  • CIにマージしていくこと
  • テストスイートを増やし、カバレッジを上げてスケールしていく
  • 改善策を継続的に分析していく

自動化の戦略は、通常のテスト戦略とはちょっと違うと思います。なぜなら、手段ごとのメリットデメリットが異なるからです。

  • 手動: おもてなしマインドたっぷり
  • 自動: 繰り返し、たくさん、並列が得意

手段が違うのに同じ戦略はかなり難しい。

だからこそゼロベースという表現であったり、CIといった技術領域じ踏み込んでいく必要があるのかなと思います。

継続的テストへの道のり

The testing manifest」というものが紹介されていましたが、いいこと書いているけど実用的ではなさそうです。ただ、「The path to continuous testing(継続的テストへの道のり。詳細は What Is Continuous Testing? を参照のこと)」は面白い情報です。ざっくりいうと

  • まず安定化しましょう
  • 日時で実行するサイクルを回しましょう
  • カバレッジを上げていきましょう
  • カバレッジ95%を目指しましょう

黄金パターンですねぇ。でも、具体的に「カバレッジ95%」を目標にしているのはとてもいいチャレンジに思いました。見習おう。

日時実行については

  • スモークレベル: PRごとに実行
  • 日中ビルド: 昼ごろFBをゲット
  • レグレッション: 夜間実行(クロスプラットフォームやクロスブラウザのカバレッジ80%を目指す)

といったレベル分けがとてもいい感じです。

ツールベンダーのセミナーでしたが、実際に導入現場で得たナレッジなんだろうなと思うところばかり。

Youtubeでも見れるようです。↑