🔖

「開発タスク」「テストケース」で、粒度に迷ったらINVEST原則で考える

2022/04/29に公開

テストケースを作成したり、タスクを作成するときに、その粒度に迷うことがある(細かすぎないか?大きすぎないか?)
その時は、つねに下記を自問自答することを心がける。


1. Independent(独立している)

他の項目と依存関係がないように、自己完結型である必要がある

  • 自問
    • 実行担当者1人で完結する単位か?
  • 自問(テストケース限定)
    • 実行に前後関係が発生していないか?(発生するのであれば、それは一つのケースにまとめた方がいい)
    • 冪等性は担保されているか?(作成されたテストデータの削除まで含めているか?

2. Negotiable(交渉可能である)

明示的な契約ではなく、議論の余地を残す必要があります。

  • 自問
    • ケースやタスクの終了条件を、絶対的なものとせず、想定外の事象が起きた場合、変更できるか?見積もり時間も(理由を説明できれば)修正できることを伝えているか?

3. Valuable(価値がある)

利害関係者に価値を提供する必要があります。

  • 自問
    • これは、プロジェクトの契約を、前進させるものか?

4. Estimatable(見積もり可能である)

常に見積もることができなければならない。

  • 自問
    • 担当者が、見積もる(作業時間の想定ができる)ことができそうか?

5. Small(小さい)

正確さのレベル内で計画/タスク/優先順位付けを行うことが不可能になるほど大きくすべきではありません。

  • 自問
    • プロジェクトにもよるが、想定見積もり時間が大体8時間。最大でも40時間以内で収まっているか?(タスク粒度は、小さすぎると、管理コストが上がるため、適切な大きさにするべき)

6. Testable(テスト可能である)

項目、またはその関連する説明は、テスト開発を可能にするため必要な情報を提供する必要がある。

  • 自問
    • 開発タスクにおいて、その内容は、テスト工程で検証することが可能か?
GitHubで編集を提案

Discussion