自動テストの作成を開始する必要があるのは、アジャイルのどの段階(SCRUM)ですか?


9

私のちょっとした背景-私はSCRUM(1〜2週間のスプリント)を使用したアジャイル環境内で約2年間、手動テスターです。そこで、Selenium WebDriver(Javaを使用)を使用した作業に自動化テストを導入したいと思います。

私の質問は、いつ機能を手動でテストする必要があるか、いつ自動化テスト用に変換する必要があるかです。

私は次のようなさまざまなアプローチを読んでいます。

  1. 新しいスプリントの開始時に、ユーザーストーリーを以前のスプリントの自動スクリプトに変換するか、または
  2. 同じスプリント内でユーザーストーリーを変換します。

アドバイスは非常にいただければ幸いです。前もって感謝します。


4
同じ質問を2つの異なるスタック交換サイトにクロス投稿しないでください。いずれかを削除してください。
R Sahu

回答:


13

テストの自動化(および他のすべてのテスト)は、done定義の一部である必要があります。これは潜在的に出荷可能な製品を作るためです。テストされていない場合は発送できますか?

テストはチーム全体のアプローチであるべきなので、テストの自動化はテスターの責任ではありません。プロセスのできるだけ早くテストについて考え始めます。

アジャイルでは、テストの自動化が非常に重要です。

組織の俊敏性は、技術の敏捷性によって制約されます

言い換えると、製品の変更が遅い場合、チーム、組織、または採用するフレームワークをどのように構成しても、変更への対応が遅くなります。

https://less.works/less/technical-excellence/index.html

テストを次の反復まで延期すると、常に遅れが生じます。製品の外部動作をリファクタリングおよび保護することが困難になるため、製品の方向を変更することが困難になります。反復的な手動テストを行うことが、速度を落とし、自動化する鍵です。

多くのテスターは、製品のインターフェースが安定するまで、エンドツーエンドでテストを開始しないように指示します。待つのではなく、代わりにPageObjectsを十分に活用して、テストが保守可能であることを確認し、テストを作成して修正することを開発者の責任にするようにしてください。


私は最初の「すべき」に同意しません。完了の定義は、スクラムチームが自分で解決する必要があるものです。チームが自動テストを重要だと考える場合、自動テストを定義の一部として含めます。しかし、プロセス自体は、彼らがしなければならない、あるいは彼らがすべきであるとさえ言っていません。それは完全にチーム次第であり、正解、誤解、または優先される答えはありません。
2017年

@aroth私はあなたに同意しますが、ほとんどすべての場合、DoDにテストを追加したいより大きなソフトウェア製品を構築します。したがって、少なくとも真剣に考えるべきだと人々に伝えるのは良いことだと思います。テスターとして、私は最後に別のチームによるテストがWagileへの最初のステップであると信じています。しかし、はい、テストが必要とさえされない状況やケースがあります。
Niels van Reijmersdal

2

重要なことは、そのストーリーの自動テストを作成しない限り、ストーリーを完了としてマークしないことです。

したがって、前のスプリントで完了したタスクのテストを書いているので、1は出ていないようです。テストが失敗した場合はどうなりますか?


したがって、新しいスプリントの1週目に、そのスプリントのユーザーストーリーが回帰テスト可能な状態にない場合、OPは家に帰って何もしないことをお勧めしますか?私にはあまり効率的に聞こえません;-)
Doc Brown

テスト担当者は、最初の週に仕様について質問する必要があります。「うーむ、ユーザーとしては自分のWebページでバックグラウンドミュージックを期待します。開発者は、テスト計画が作成されるまで開始できないと言うことができます
Ewan

@DocBrown:新しいスプリントの1週目に、テスターは驚くべき量の作業を行います。彼らは、製品の所有者と開発者と協力して、開発者が何を構築しているかを理解する必要があります。開発者と協力して、コードをテスト可能にする必要があります。彼らは自動テスト計画に取り掛かることができます。彼らはいくつかのテストを書き始めることさえできます。テストが高度な抽象化で記述されている適切なテストフレームワークがある場合は、コードの準備ができる前にそれらを記述できます。
ブライアンオークリー2017年

1

理想的には、コードが書かれているのと同じスプリントで自動テストを書くべきです。自動テストが作成されるまで、コードは「完了」と見なすべきではなく、スプリントの終わりまでにコードを「完了」状態にする必要があります。

スプリントの初日に、開発者と協力してコードを理解し、テスターとしてのニーズを理解できるようにして、プロセスを開始する必要があります。たとえば、Webページを構築している場合、対話する必要のあるすべてのページ要素に一意の識別子を追加する必要性を理解してもらうことができます。

スクラムでは、あなたの仕事はテストを書くことではないことを覚えておいてください。あなたの仕事は、チームと協力してスプリントの目標を達成することです。これは、コミュニケーションとコラボレーションを意味します。これは、スプリントの非常に早い段階で行われる必要があります。コードをテストする準備ができる前に、テスト設計とテスト計画の作業を開始できます。


0

自動的にテストする場合は、事前にテストを作成することもできます。これは、期待する動作を定義するのに役立ち、クライアントのように考えるように刺激します。これにより、最終的にソフトウェアがより使いやすくなります。また、機能を実装しているので、すぐにテストを利用できます。


1
これは、SeleniumなどのUIテストツールでは機能しません。テストを作成できるようにするには、動作する安定した UI が必要です。
ドクブラウン

@DocBrown:必ずしもそうだとは思いません。新しいWebページの仕様を教えていただければ、ページが作成される前に、自動テストの作成を開始できます(終了することもあります)。開発者と協力して、ページ構造とは何か、要素IDとは何かについて合意する必要があるだけです。
ブライアンオークリー2017年

0

どちらでも実行できますが、通常は自動化テストを使用して回帰テストをターゲットにします。それは、あなたがそれが回帰テストになるのに十分堅固であると確信するまで、私が手動で行うことを意味します。これは、一部の機能ではスプリントの途中である可能性があり、他の機能では将来のスプリントになる可能性があります。


0

別の回答で述べたように、テストが発生したときは、完了定義の一部である必要があります。しかし、私はその答えのいくつかに同意しないので、私は遭遇した経験で拡大したいと思いました。

真にアジャイルな環境では、誰もがすべてを行うことができます。100%テストに専念する人はいないでしょう。基本的なUI作業などを支援するスキルも身につけます。しかし、私たちはめったに理想的な世界に住んでいません。

私がお勧めするのは、少しハイブリッドなアプローチをとることです。完了の定義については、手動テストは作業がコード化されているSprintの一部である必要があると思います。それは機能し、Sprintが終了する前にバグをすぐに報告し、場合によっては修正して、次の計画を立てることができます。 1。手動テストに焦点を当てることで、コードが何をすることになっているかに慣れることができます。次のSprintの始めに、実行することがそれほど多くない可能性がある場合は、自動化されたテストをセットアップして、ビルドプロセスの一部として実行し、回帰エラーを防ぐことができます。


初日に現在のスプリントの目標を達成するのにまだ十分な余裕がないスプリントを見たことがありません。自動テストを作成するにはコラボレーションと計画が必要であり、スプリントの最初の日の最初の1時間に開始する必要があります。
ブライアンオークリー2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.