Acceptance Testing is:
“In engineering and its various subdisciplines, acceptance testing is a test conducted to determine if the requirements of a specification or contract are met.” – Wikipedia
This is needed always to verify is a feature or requirement met. Usually the customer or Project Lead, or Product Owner (PO) should verify if everything in the Story has met the Acceptance Criteria. There are many ways to do that. I will describe how we are doing this in our project. I’m working in a C# project and we are building an Analytic Device using the PCR so we really need to verify if everything is how it should be. When I started in this project, we “just” had unit test, integration test on virtual environment and instrument. But, with these tests, we could not test everything. There were several reasons. I do not want to explain it in more detail. You can ask me ;). So we decided to introduce the Acceptance Criteria of each story to test with TESTs, but not tests which are written by the Developer.
We searched how we can achieve our requirement and found Cucumber. Cucumber is a Behavior Driven Development Framework. But we needed it for C#, so we took Specflow. This is the equivalent of Cucumber, but for .Net languages. With this tool we are now able to write the Acceptance Tests first, before a developer starts implementing the story. The PO or our Requirements Engineer writes in step one the business readable tests and a testing team implements these tests always one sprint before the story is implemented. So, when the story comes into sprint, all acceptance tests are written, so each developer can do TDD as usual and also try if the Acceptance Criteria are fulfilled. This saves us a lot time, because we don’t need always to setup our virtual environment and we do not have to go for each feature to the instrument. We now have manual tester which are testing everyday in the Virtual Lab and on the instrument. That was really an improvement for each developer.
So we do our ATDD with a BDD tool called Specflow. How are you doing your ATDD?