クラウドソーシングテスト(Crowdsourced Testing)とは、クラウド — 実在のユーザとテスタ — が現実の条件下でテストに参加するという、ユニークなテスト手法だ。Swisscomにおいてそれは、開発プロセスの早い段階での欠陥発見と製品の品質向上に役立った、とMaja Schreiner氏は論じている。すべてのフィードバックを収集して要約するのは難しい作業だが、開発者が関与することによってテストサイクルのスピードアップを図るとともに、製品のテスト方法やテスタの考え方に対する理解を深めることもできた。
SwisscomのシニアテストマネージャであるMaja Schreiner氏は、Spring Online Testing Conference 2017で、“Crowd Testing Magic”と題した講演を行なった。カンファレンスに関してはInfoQでも今後,Q&Aや要約,記事を通じて取り上げる予定だ。
クラウドソーシングテストの講演を終えたMaja Schreiner氏にインタビューした。
InfoQ: クラウドソーシングテストとは何でしょう?
Maja Schreiner: クラウドソーシングテスト(CT)とはクラウド、すなわち実在のユーザやテスタが、現実の条件下でテストに参加するという、ユニークなテスト手法です。
エンドユーザはテスト環境の中にいる訳ではありません。それどころか今日では世界中にユーザがいます — プロジェクトが次の要件のいくつかを満たすのであれば、クラウドソーシングテストがテスト戦略を豊かなものにしてくれることは間違いありません。
- ユーザのフィードバックによって成功が決まるような、ユーザセントリックなソフトウェアを開発中である。
- 確証バイアスを排除したい。
- 次のようなテストカバレッジを達成する必要がある。
- iOSとAndroidのモバイル端末
- さまざまなオペレーティングシステム
- 複数のインターネットブラウザ
- 非常に短期間でテストリソースを拡張する(並行テストを実施する)必要がある。
- 予算修正があり、経費を削減したい — CTは通常30~40%の削減が可能である。
InfoQ: クラウドソーシングテストをどのように導入したのですが、その際に直面した課題にはどのようなものがありましたか?
Schreiner: 私たちはスクラムとかんばん、DevOpsの原則に従って製品開発を行なっています。4つの開発チームがあって、1週ないし2週のペースで小規模な機能向上を提供しています。手作業による機能テストサイクルはこれとは別に、スプリント中はDEV環境で毎日、スプリント後期はTEST環境において48hの回帰テストサイクルで、それぞれ実施しています。
私がプロジェクトに参画する数ヶ月前に、前任者がすでにCTをプロジェクトに導入していたので、私は当時の社外CT企業とチームとの契約を引き継ぎました。現在もその同じCT企業とのセットアップを、1年以上使用しています。
対処しなければならなかった課題は次のようなものでした。
- 十分な価値を提供しないと主張して、既知のバグの多くを拒否する開発者。
- 発見を予測されていたバグのいくつかが見逃されたことを理由に、CTを信用しない開発者 — 私自身もちろん、その事実には満足していませんでした。
- CT、開発、DevOps各チーム間のコミュニケーションに多くの時間が必要であったこと。
- すでに管理や調整で多くの時間を消費しているため、戦略的な作業には十分な時間のないこと。
- 全員が私をCTコーディネータとしてのみ見始めて、テストマネージャとしての私の責務を忘れていること。
これらの課題はチームの全メンバに影響するため、できるだけ早く解決する必要があることは明らかでした。
最初に、何から手を付けるのかを決めなくてはなりません。通常それは、もっとも損害の大きい場所です。私にとってのそれは、コミュニケーションとコーディネーションに要する時間を削減することでした。そこで私は、タイムボックスのブロッカをカレンダに書き込みました。これはスケジュールの完遂を私に意識させるとともに、プロセスの改善にもっと多くの時間的投資を行なうことが可能になりました。
これはつまり、より優秀なテスト結果を提供可能にするためには、テスタが必要とするインプットやその他すべての必要な情報を改善する必要がある、という意味でもあります。テストサイクルすべてにおいて、明解な情報を彼らに提供しなくてはなりません。
- テストスコープ / 製品
- テスト計画(回帰)
- 既知の問題点リスト
- 内部リリースノート
- スプリントレビューのビデオデモとプレゼンテーション
- ロードマップ
私は優先度“高”や“重大”の欠陥数や所要時間を追うことによって、改善を毎日追跡していました。
戦略は週毎にチェックし、適合させる必要があります。CTでテスト対象とする製品や機能、テストスコープは週毎に変わる場合があります。インプットもそれに応じたものを提供しなければなりません。テスタも変わるかも知れません。開発プロセスと最終製品の品質を向上させるためには、入手したさまざまな結果を分析し、使用することが必要なのです。
InfoQ: どのようなメリットがありましたか?
Schreiner: テストサイクルのインプットを改善することで、テスト結果としてのアウトプットは大幅に改善されました。必要なインプットの提供を手伝ったり、あるいは検出した問題の承認やチェックといった作業を通じて、開発者たちも徐々にではありますが、サイクル自体に参加するようになりました。
最も大きな課題はすべてのフィードバックを収集して要約することであり、最も数多い問題は製品ないし機能追加に応じて繰り返し発生するものであることは、想像するに難くありません。このような場合においては、開発者の支援によってテストサイクルを大幅にスピードアップすると同時に、テストの方法やテスタの考え方に対する開発者の理解も向上することができました。
開発プロセスの早い段階で欠陥が発見されることによって多くのメリットが得られるとともに、製品の品質を向上することができたのです。
InfoQ: クラウドソーシングテストを実践したことで何を学びましたか?
Schreiner: 学習と改善を止めてはならない、ということです。
探索的テストの重要性も忘れることはできません。探索テストでは、
- 確実に退行以上の価値を得ることができる。
- テスタがより意欲的かつ創造的になる。
- 一般論として、より多くのバグを発見できる。
- 回帰テストの実施が“早過ぎる”場合など、いくつかのバグが見落とされる場合がある。
ただし、社内でのテストも忘れないでください。テストやQA、ソフトウェア開発の問題をCTがすべて解決することを期待してはなりません。テストリソースの所在が社内か社外かとは関係なく、それらの問題を解決するための作業が必要なのです。
もうひとつ重要なこととして、優れたテスタを讃え、それに報いることを忘れないでください。
- あらゆるサイクルで最善のテスタを確保する。
- 新しい視点を得るために新たなテスタを導入して、同じような製品のテストを続けている“古い”テスタにフィードバックを提供する。
InfoQ: クラウドソーシングテストを使ってみたいと思ったならば、どのようなアドバイスがありますか?
Schreiner: 銀行や保険のような幅広いノウハウが必要なアプリケーションには、クラウドソーシングテストはそのニーズに最適なソリューションではないかも知れません。もし使用するのであれば、次のことを忘れないでください。
- 全体的なテスト戦略と開発プロセスの上で実施すること。
- CTの戦略とプロセスを常に検査し、適応させること。
- さまざまなテスタや開発チームのメンバに対して忍耐を持つこと。議論と知識交換を促進すること。
- 絶えず学習し、探索すること。常に失敗と成功から学び、会合に出席し、ブログや文書を読み、同僚と知識を交換し、メンタや上司と協調すること。
この記事を評価
- 編集者評
- 編集長アクション