The shop I work for has recently switched to Agile/Scrum software development. We've started logging User Stories, and defining their scope with Acceptance Criteria. So, we have
- Features defined by
- One or more User Stories
- User Stories defined by
- One or more Acceptance Criteria
- Acceptance Criteria validated by
- One or more Test Cases
- One or more Unit Tests
We're now starting to look into Test Case Management software for the QA guys. The idea being that it will help manage their growing number of Test Cases. We've been told that with proper TCM software we can associate Test Cases with Requirements (Acceptance Criteria) such that the Test Cases are flagged whenever their associated Requirement changes. The idea being that a QA member would then update the Test Cases as needed.
Now, as a developer, I would like something very similar for my unit tests. Ideally, whenever a Requirement changes, I would like my associated Unit Test to fail. This will let me know that all my unit tests are always up to date.
Does such a system exist? Is there a magical system that will let you manage your Requirements, Test Cases, and allow you to break your unit tests when Requirements change?
Additionally, I would like my build to fail whenever a Feature has been extended (i.e., has had new Requirements added).