アジャイル組織におけるテスターの役割

2020/03/16 09:07

functionize    
サンフランシスコに本社を置くAIと機械学習テクノロジーを組み込んだ自律テストプラットフォームを提供するソフトウェアベンダ
この記事は、著者の許可を得て配信しています。
https://www.functionize.com/blog/the-role-of-testers-in-an-agile-organization/

開発が反復的でアジャイルな場合、テスターは開発者の傘下に入りその作業は必然的に開発者との連携が肝要となります。

アジャイル開発、具体的にはスクラムでは、「開発者」を使用することが普遍的に支持され、「テスター」という肩書が消える傾向にあります。しかし、テスターの役割がきれいさっぱり無くなることなどあり得ません。例えスクラムチーム全体がテストとコード品質の責任を負っていたとしても、チームにはテストに精通している者が必要であり、単体テストと回帰テストの自動化設定、エンドツーエンドの統合テスト実行、そして製品全体にわたり予備テストを主導して行う者も必要です。

アジャイル手法を採用することにより、開発者がすべてを行うということにはなりません。肩書などとは関係なく、テスターは必要なのです。

予備テスト

アジャイル開発での最重要事項は時間です。よって、テスト速度と短いフィードバックループが重要となります。

アドホックテストとも呼ばれる予備テストが一例です。これにより、自動テストの範囲外でバグを見つけ出すことが可能となります。例えば、アドホックテストによりUIとUXの問題が見つかります。ほとんどのテストでは自動化はかなわず、人の手が必要です。

予備テストを行うのに、そのテスト計画など必要ありません。故に物事が速く進められます。普通はテスト計画に同意するには、チームでの話し合いが必要になるからです。テストする者は、予備テストで見つかったバグを直ぐに開発責任者に見せることが出来ます。

なぜ開発者は自身で予備テストを行うことが出来ないのでしょうか? 作家が自分の作品を編集できないのと同じです。よく知っている、ということには盲点があるのです。開発者は、機能が作り上げられた後、時間が経ったインターフェイスがどう働くかが分かってしまうのです。別のテスターは真っ新な目でソフトウェアを見られるという利点があります。

自動テストの作成

テスト駆動開発(TDD)を実践する開発者は、通常は単体テストになりますが、独自の自動テストを作成し、しばしばテストスイートを実行しながらバグの再発を検出する、という手法を学んで行きます。重要なセットアップとツール(テストの存続期間中の一時的なデータベースの作成やデータの追加など)を必要とするテストを作成することは、開発者の能力を超えている部分もありますが、テスターと言う意味ではその範囲内と言える部分が多くあります。

継続的な統合 / 継続的な開発(CI / CD)プロセスでは、テスターはパイプラインで実行されるテストに入力するものを提供しなければなりません。例えば、開発者がコードチェックインを実行した後、CIシステムは新しいコードを受け入れる前に、(殆どは開発者が提供する)充満したスイートと単体テストを実行します。次にQAスタッフ、あるいはCIシステムは(ほとんどがテスターによって作成された)エンドツーエンドで統合されたテストのスイートを実行します。エンドツーエンドのテストが非常に長く、CI / CDパイプラインでのビルドが遅れそうな場合は、パイプラインの外部で夜ごとそれを行うことになります。

早期の頻繁なるテスト

TDDやCI / CDと統合された自動テストにより、シフトレフトテスト戦略は功を奏します。シフトレフトとは、ソフトウェア開発のライフサイクルにおけるテスト位置のことを指しています。各製品のバージョンのリリースを遮る(タイムラインの右側の)端にある大きなスパイクが構成される代わりに、プロセス全体で小さなブリップを徹底的に取り除きます。

テスターは、開発者がコードを書き連ねる前にアジャイル開発プロセスでその存在感を発揮します。テスターが行うことは、情報の収集、要件管理や受け入れ基準定義への貢献です。つまり、アジャイルテストは初日、あるいはもっと前から開始する必要があるのです。

アジャイルの原則で規定されているように、チーム全体が物理的に共にいれば、大いに相互の意思疎通を図ることが可能です。テスト担当者が開発者とは異なる建屋にいる場合は、「ちょっとこれを見てくれますか」という簡単な問い合わせを行うことですらあまりにも多くの障壁があります。

だからと言ってアジャイルチームがヘッドフォンを着けたままテーブルのオープンプランオフィスに座っていればいい、というわけではありません。最新のコレボレーションツールを使えば、チームが仮想的に共存することは可能ですが、それでも相互の意思の疎通を図るには、障壁や遅延が生じます。そのため理想的には、アジャイルテスターは物理的にチーム内の開発者の傘下に入り、同じ会議に出席し、同じコーヒーポットのコーヒーを飲む関係で無ければなりません。

最終的にテスターをアジャイルチームに組み入れれば、チーム全体にとっては大いなる恵みにはなりますが、本質はそうは行きません。QA部門が潰されたこともありました。「開発者がテストを行える」、そしてその結果、製品品質が著しく低下したこともあったからです。そんな組織にしてはいけません。そうでは無く、テスターがアジャイル開発のライフサイクル全体にわたり参加可能とし、身内のソフトウェアテストのタレントの才能を最大限に活用出来るようにしてください。

appstore
googleplay
会員登録
URLからPICKする

会員登録して、もっと便利に利用しよう

  • 1.

    記事をストックできる
    気になる記事をPickして、いつでも読み返すことができます。
  • 2.

    新着ニュースをカスタマイズできます
    好きなニュースフィードをフォローすると、新着ニュースが受け取れます。