web-dev-qa-db-ja.com

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

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

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

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

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

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

9
Jay

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

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

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

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

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

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

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

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

13

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

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

2
Ewan

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

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

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

1
Bryan Oakley

どちらでも実行できますが、通常は自動化テストを使用して回帰テストを対象とする必要があります。それは、あなたがそれが回帰テストになるのに十分しっかりしていることが確実になるまで、私が手動でやることを意味するでしょう。これは、一部の機能ではスプリントの途中である可能性があり、他の機能では将来のスプリントになる可能性があります。

0
mutt

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

0
Martin Maat

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

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

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

0
krillgar