この記事はNishi Grover Gargによるゲスト投稿です。
チームがアジャイルを導入すると、それまでのプロジェクトでやっていたように、リリース直前に猛烈な勢いでテストをする時間はないことに気付きます。
テストはプロジェクトの要請に適応する必要があります。以下に、チーム全体でアジャイルのペースに追随し、テスト関連アクティビティをよりよい形で完了するための方法をいくつか紹介します。
品質をチーム全体の取り組みにする
テストアクティビティがチームの一部のメンバーにだけ割り当てられるとしても、品質マインドセットはチーム全体に根付いていなければなりません。
ある機能がパフォーマンスに与える影響を考える場合でも、設計の変更やUIのデザイン刷新のリスク領域を考える場合でも、誰もが品質駆動型の思考プロセスを持っている必要があります。チーム全体でリスク領域を分析し、より品質の高いソフトウェアを作り出すべきです。
チーム全体によるアプローチには、絶え間ないコラボレーションが必要です。アジャイルチームのテスターは、特に要請がなくとも、自動的にすべてのディスカッションに参加し、あらゆるコミュニケーション、設計ディスカッション、文書共有のメンバーになります。
そうすることで、テスターは設計や開発の段階を通じて機能の細部により詳しくなり、自然にテスト作業をシフトレフトさせることになります。
特殊なスキルや知識の共有
アジャイルチームは自己充足的でなければなりません。理想的には、チームはイテレーションの最後に高品質のコードを送り出すために必要なあらゆるスキルを保有しているべきです。
アジャイルチームに必要な特定のスキルや専門知識を持つテスターがいない場合––そのときは、他のメンバーが自分の知識を活かして助っ人に入り、当面のタスクに協力します。
たとえば、特定の新機能のパフォーマンステストが必要だが、チームのただ1人のテスターは、パフォーマンステストに関する知識や経験がなかったとします。しかし、以前のプロジェクトでLoadRunnerやJMeterを使ったことがある開発者がいてタスクを引き受け、他のメンバーに知識を伝えたので、みなで協力してパフォーマンステストをやりとげることができました。
同様に、終了条件として少なくとも70%の単体テストカバレッジが必要であるのに、設計の変更があったために、現在のスプリントで十分な単体テストが作成されておらず、開発者が苦労しているとします。テスターは、簡単なホワイトボックステストの手順を開発者に提供してもらい、それを拡張してより多くの単体テストを作成することができます。アジャイルチームなら、こういったことも容易です。なぜなら、みなが設計文書を共有し、深く議論し、常にコラボレーションしているからです。
アジャイルチームでは、誰もが助けを求め、助けを得ることができます。
つまり、経験のある誰かが物事を先に進めようとしたときに、タスクが大きすぎることも小さすぎることもなく、1つのタスクや領域にだけ縛られたメンバーもいないということです。チームメンバーは、ただ最後によりよく品質の高い成果を得ることを目的として、互いに助け合い、関心に応じて担当を交代し、知識を共有し、それぞれの過去の経験を活かします。
締め切り直前に協力する
短いイテレーションの中で、アジャイルチームは常に時間に追われていますが、スプリントの終盤に作業するという特性上、テスターはさらにその傾向が強くなります。
厳しい締め切りに間に合わせるには、レグレッションテスト、バグの即時修正や再テスト、テストのレビューや更新、最終ビルドに対する自動受け入れテストの実行、レポートの送信、あるいは単にJiraタスクをクローズしてスプリントを終了とマークすることなど、さまざまなタスクを総出で行う必要がある時間が必ず発生します。
タスクはどれも時間と労力を必要とします。スプリントを予定通りクローズするには、チーム全員が責任を分かち合わなければなりません。それは、チームが適切なマインドセットを持ち、誰もが自分に割り当てられたタスクだけでなく、スプリント全体を予定通りデリバリーすることに責任を持つ場合にだけ可能になります。
アジャイルはたえまないコラボレーション
テストにチーム全体で対処するというアプローチは、アジャイルチームの成功に役立ちます。欠陥の数や、テストの数や、障害レポートなどは本質ではありません––肝心なのは、品質とたえまないコラボレーションです。
Lisa CrispinとJanet Gregoryの本『Agile Testing』にあるように、「実のところ、品質がすべてです––そうでないなら、ほんとうに『アジャイル』チームと呼べるかどうか疑問です。」
この、個別の担当から共同オーナーシップへの移行は、アジャイル導入時にチームが直面するカルチャー転換の中でも最も難しい部分であることが多いものです。アジャイルチームで健全な競争、協調、連帯感を促進する方法をもっと知りたければ、アジャイルチームでよくあるコミュニケーション障壁と乗り越え方に関するこちらのブログ記事をお読みください。
Nishiは企業トレーナー、アジャイルの信奉者、そして根っからのテスターです。業界で13年以上の経験を持ち、現在はSahi Proでエバンジェリスト兼トレーニングヘッドとして働いています。トレーニングに情熱を注ぎ、テストコミュニティイベントやミートアップを主催、多数のテストイベントやカンファレンスで講演を行っています。アジャイルおよびテスト分野での最近のトピックを取り上げたブログをご覧ください。
(この記事は、開発元Gurock社の Blog 「Agile Needs a Whole-Team Approach to Testing」2021年10月19日の翻訳記事です。)