スクラムガイドにテスターがいないと書かれているのはなぜですか?


14

私はscrum.orgのスクラムガイドを読んでおり、次のように書いています。

開発チームには、テストやビジネス分析などの特定のドメイン専用のサブチームは含まれていません。

文字通りの翻訳では、これは混乱を招くテスターがいないことを意味します。彼らはどのようにこれを提案できますか?


4
文字通りの翻訳では、これはプログラマーもいないことを意味します。ビジネスアナリストはいません。適切な例えは、すべての人が生存者であり、その仕事は、すべての人が生き残るのに必要なすべてを実行する(そして実行することを学ぶ)ことです。
rwong

3
いいえ、それは文字通りの翻訳ではありません。専用のサブチームはない、と言っています。チームをサブチームに分割して問題に取り組むことができますが、それらのチームは一瞬でミックスとマッチを行えるはずです。テスターがいないことについては何も述べていません。
zzzzBov

回答:


25

次のいずれかを意味します。

  1. テスターは開発チームに統合されています-開発者がテストだけでなくテストを支援するツールを構築します。

    または:

  2. チームはテスト駆動開発を実践します。つまり、システムを実行する自動テストを作成します。

どちらの場合も、別のテストチームは必要ありません。


TDDは、スタートアップチームにとってより良いアプローチです。テスターと開発者が初心者チームで一緒に作業する場合、テストが問題になると強く感じています。あなたは何を言っていますか?
Maxood

4
@Maxood:私は、TDDが手動テストを不要にすることはほとんど間違いないと言っています。何かが問題になる場合、それを解決します。あなたはそれを避け始めません。
マイケルボルグワード

@MichaelBorgwardt非常に本当です!しかし、主に開発者の仕事である単体テストでテスターが忙しいとしたらどうでしょうか?前者のオプションは、コードの最適化やアプリケーションのスケーラビリティなどに関してのみ利用すべきだと思います。どう思いますか?
Maxood

7
@Maxood:テスターは、私の意見では、単体テストに触れないでください。開発者と協力して受け入れテストに取り組み、手動/ GUIテストを担当する必要があります。単体テストは、開発者にとってのみ興味深いレベルです。テストピラミッド(blogs.agilefaqs.com/2011/02/01/inverting-the-testing-pyramid)には、unit-testing = developers、受け入れテスト=共有、GUIテスト=テスターという応答性もあります。
martiert

12

文字通りの翻訳では、これは混乱を招くテスターがいないことを意味します...彼らはどのようにこれを提案できますか?

はい、これはまさに彼らが示唆していることです。言い換えれば、開発者はテスターであり、テスターは開発者です。

アイデアは、コードの所有権と品質を育成することです。

これは、コードがテストされていないことを意味するのではなく、コードの作成に関与した人がテストに関与していることを意味します。責任の分離はありません。

このアプローチが解決しようとしている問題は、開発者とテスターの間の非常に一般的な分離です。標準以下のソフトウェア。


2
私は、AがBが開発したものをテストすることを強く支持しています。「独自のコード失明」の落とし穴を避けるためのアドバイスとしてスクラムには何がありますか(あなたが機能Xの開発者とテスターの両方である場合、コードがどのようにコーディングされているかを知っており、仕事、または無意識のうちに弱点を回避しますか?)
マルジャンヴェネマ

1
@MarjanVenema-Aが書いた内容をBがテストするか、コードを書く前に自動テストを書くことができます。
オデッド

5
すべての開発者には、決して消えないQAの盲目があります。業界で起こったことは、人々が「QA対開発者」を使いすぎて、「壁を越えて」システムを作成したことです。開発者とQAは単一のチームとして成功と失敗を繰り返しますが、QAはコーディングとは異なる役割とスキルです。コーダーは開発テストを行う必要があり、ユニットテストはQAの一部ですが、QA機能全体ではありません。また、QAの役割には、技術文書の作成をやめるほど「機敏」になっていない場所での文書の作成が含まれることがよくあります。
ウォーレンP

6
私の経験では、テスターが最終ユーザーの観点からソフトウェアを見て、開発者よりもはるかに多くのバグを見つけることができるのは、まさに役割の分離です。結果の製品は間違いなく「標準以下」ではありません。
ジョルジオ

2
QAと開発は、2つの異なるスキルセット(および給与スケール)を持つ2つの異なる役割です。優れたQAには、誰かが開発者とQAの二重の義務を果たしている場合には起こり得ない、集中力と専門性が必要です。
17年

2

これの基本的な部分は、機能するコードを作成して要件を満たすことがコーダーの責任であることです。これには、特定の考え方が必要です-「私が書いているコードは、想定されていることを行います。」

コーダーの責任をミックスするということは、コーダーが他の活動のために他の考え方を入力する必要があることを意味します。

テスターの責任は、バグを見つけ、機能が必要な機能から逸れる場所を見つけることです。これには、「コードが壊れているため、その方法を調べる」という考え方が必要でした。

同様に、ビジネスアナリストは、顧客が実際に求めている要件を特定しようとしています。これには、「アプリケーションはこのように動作しませんが、動作するはずです」という別の考え方が必要です。

コーダーがこれらの他の機能のいずれかで動作するためには、考え方が競合し、コーダーがサブパーを実行する合理的な可能性があります。

  • Coder / QA-「コードは完全に機能します。コードを壊す可能性があると考えられるあらゆる方法を処理するために、すでにコード化しています。」
  • コーダー/ BA-「コードは私が望むように機能するはずであり、これらは顧客が考えていないことを追加するためのきちんとしたものになるでしょう。

これは、すべてのコーダーがこれらの問題の影響を受けやすいということではありません(非常に才能のあるコーダー/ QAタイプに出会ったことがありますが、彼らが書いたコードではありません)。

これは、開発チームにも及んでいます。開発チームの責任とそれらの責任の関連する考え方を混ぜると、最終製品(コード)が損なわれます。


1

テスト専用のサブチームはないという。これは、テストがまったく実行されないという意味ではありません。これは、チームメンバーが独自のテストを行い、多くの場合、他の人のコード/機能をテストすることを意味します。私はスクラムの方法論にあまり詳しくありませんが、手足を動かして、クライアントもテストに関与している可能性があると言います。


「クライアントもテストに関与している可能性があります」-はい、まったく正しいです。そうでなければ、完了した定義が「プロジェクトの終わりに達しました」というウォーターフォールプロジェクトがあります。それは機敏ではありません。
ロビングリーン

1

これは部分的には、自分のコードのテストを書いてそれが機能するかどうかを確認することを期待されていることを意味すると思います(そうでない場合は、実際にそれを終了していない) 。

人々がソフトウェア品質の仕事を他の人に任せて無視することを許可するのではなく、これは誰もが常に品質の観点から書いているコードについて考えることを強制するので、それは良い考えです。


1

このステートメントは基本的に、サイロ化された作業を回避しようとしています。これに対するソリューションの一部は、次のようなプラクティスです。-テスト駆動開発-ペアプログラミング-プルリクエスト-テストの自動化など、すべてのテストを、側面または「後」。

さらに、スクラムガイドでは役割について非常に限られた話があります。実際、彼らは開発チームについて話します。彼らが意味するのは、あなたが強力なクロスファンクショナルチームが欲しいということです。つまり、プロジェクトに必要なものに応じて、UX、BA、QA /テスター、Ops、Coderなどのスキルが必要になりますが、これらをカバーする1人または複数の個人であるかどうかは実際には重要ではありません。

DevOpsの社員がいるように、私が協力しているチームには確かにQAが役割を果たしています。しかし、これらはすべて開発者でもあり、これらの分野に特化しています。秘trickは、サイロに陥らずに単独で作業することです。


1

テスターがいないわけではありません。スクラムチームに専用のテスターがいる場合とそうでない場合があります。

私にとって、このスクラムに関する声明は、配信パイプライン全体を単一のチームとして考える必要があるということです。同じチームの一員であることは、いくつかのことを示唆しています。

  1. ストーリー/バグ/タスクに関する単一の見積もりがあります。devの見積もりとテストの見積もりはありません。
  2. チームは、テスターがいない状態でストーリーを推定してコミットしません。
  3. 何か問題が発生した場合、開発者の責任と同じようにテスターの責任ではありません。 チームのせいですです。
  4. チームがテスターを借りたり、要求したり、依頼したりする必要はありません。
  5. テストは、完了の定義の一部です。テストされていない作業は不完全な作業です。
  6. 開発者は、コードを設計する際にテスト容易性を考慮する必要があります。

単一のチームで一緒に作業している場合、チームは一緒に成功し、一緒に失敗します。私は、いくつかのテスターがいる非常に成功したスクラムチームに参加しました。テスターは、すべてのスタンドアップ、グルーミングセッション、計画などの間に出席していました。ストーリーのテスト方法が明確でなければ、チームはそれにコミットしませんでした。見積りをするときは常にテスターと話しました。

テスターを実際に配達チームの一部として扱わない可能性のある兆候。

  1. テスターに​​は「QAスタンドアップ」があります(うん、見たことがあります)。
  2. テスターに​​は個別の管理構造があります。
  3. QAリードがあります。
  4. エンドツーエンドのテストに大きく依存しています。
  5. テストは次のスプリントで書かれます。
  6. ほとんどのテストは、スプリントの最終日に行われます。

これらは主観的なものであり、必ずしも間違っているわけではありません。私の意見では、これらは危険信号です。

これはすべて、テスターの指定された役割を持つ人がいなくてもスクラムチームを持つことは完全に可能です。それもうまくいく。特にテストを自動化する場合。TDDも役立ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.