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

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


コメントを読む

新着ピック  






















新着ニュース

東大卒プロゲーマー「ときど」はスランプに陥っていた——ウメハラからの助言、そしてたどり着いた「努力2.0」

5分でできるS3とCloudFrontを利用したセキュアな静的Webサイトの作り方 | Developers.IO

[初心者向け] AWS CDKのレイヤーについて調べてみた | Developers.IO

気化した過酸化水素で除染すればN95マスクも再利用可能に | TechCrunch Japan

Wheelsがハンドルとブレーキレバーがセルフクリーニングされる電動バイクを展開 | TechCrunch Japan

ロケット打ち上げスタートアップのSkyroraは消毒液とマスクの生産に注力 | TechCrunch Japan

AWSアカウント間でAmazon EventBridgeイベントを送受信してみた | Developers.IO

CloudFrontの作成や更新時間が約5倍高速になりました | Developers.IO

ポラロイドカメラが復活、新モデルPolaroid Nowが登場 | TechCrunch Japan

新型コロナ、過去2カ月の感染状況を比較した

市販の材料を使い1分で完成する医療用フェイスシールドの作り方をニューヨーク大学が無料公開 | TechCrunch Japan

「エスパーウィーク」は自宅で新ポケモン捕獲のチャンス 家で遊ぶ「ポケモンGO」まとめ

[オンラインハンズオン] はじめての自然言語処理(NLP)powered by LINE API Expert #jawsdays #jawsug #jawsdays2020 #LINE_API | Developers.IO

ソフトバンクGも出資の英OneWebが新型コロナで破産申請 74の衛星を残して

Looker 7でIDE(モデルやビューのWeb編集画面)のUIが改善されました #looker | Developers.IO

Lookerで「Liquid変数」を使ってWeb記事のURL情報をカスタマイズ #looker | Developers.IO

5分間で陽性がわかる米食品医薬局が新たに認可したAbbottの新型コロナ検査 | TechCrunch Japan

ソフトバンクなどからの追加資金を確保できずOneWebが破産を申請 | TechCrunch Japan

【小ネタ】スクリーンショットをカレントへ移動する処理をちょっと深掘り | Developers.IO

AIとビッグデータが新型コロナとの戦いで奇跡を起こすことはない | TechCrunch Japan

もっと見る
記事をPICKする
会員登録
Register
記事をPICKする

会員登録すると、もっと便利に利用できます。