How do you manage large sets of Acceptance Criteria?
Where I work we've recently made the switch to SCRUM. We've gone through the usual problem involved in such a transition from Waterfall but, overall, we now have a functional Agile/SCRUM approach.
We've gotten in the habit of writing User Stories and testing these using Acceptance Criteria in Gherkin.
Typically, a User Story will have a few Gherkin Features, each with a handful of Scenarios.
So far, this is working very well.
My question is this: Because we are now an Agile team we follow an iterative approach to Software Development. This means that Features can evolve over time. And, if a Feature changes it would only seem logical that the Acceptance Criteria for that Feature be kept up to date.
How do Agile teams manage Software projects with dozens of Features and hundreds or even thousands of Acceptance Criteria (in our case, Gherkin Scenarios)?
We currently store our AC in Feature Files but it's become increasingly difficult to find which Scenarios need to change when a Feature changes. This is mainly due to the fact the these Feature changes are logged as new User Stories in our Issue Tracking system. What is the recommended approach here? Are there tools to link Scenarios and Features to Use Stories defined in Issue Tracking software?
What you need here is to maintain linkage between your AC, your user stories, and the features - there are a number of test management tools to do this, which you can integrate with your issue tracking system (or not - provided you make sure your internal process includes flagging each item in the test management system with the relevant item in your issue tracking system).
TestLink is a good free (as in beer, and as in open source) tool that will allow you to treat your acceptance criteria as child requirements of your user stories and maintain a history of acceptance criteria linked to your test cases (which in turn are tied to features in your software).
Some of the commercial tools (including Microsoft Team Foundation Server, HP Quality Center, SmartBear QA Complete - and this is not a complete list by any means) include integrated tracking of everything so that there's built in linkage from user story through acceptance criteria to tests and test cases.
Even if you don't go this route, you will save yourself a great deal of pain by procedurally linking everything together - so your initial user story in the issue tracking system includes its acceptance criteria. The new issue for modification of that feature is created as a child of that issue, with a link back to the parent (a child copy, with modifications as needed is a good choice because then the original acceptance criteria copy over). This method will hold things together until you can get a real test management system in place, but I wouldn't recommend it as anything more than a stop-gap.