Eric,
I would take a simpler approach. There is no need for "acceptance
criteria" and feature files because your scenarios ARE your acceptance
criteria. If you do both, now your team has to maintain two sets of
criterion, each of which could change independently.
At my company we have a fairly large agile teams and the process we follow
is this:
1. BA/QA/Sometimes Devs pair up to write feature files. This is best
done, as Dan mentioned, around a projector/whiteboard.
2. Once scenarios are written, QA works on automating them, devs work on
implementing the features. Both QA and Devs should work together to ensure
that devs are adding unique IDs to their code so you can use them in your
automation (Selenium WebDriver, please don't use QTP. See why
here<http://paulhammant.com/blog/die-qtp-die.html/>).
The key here is that the automation tests are being written at the same
time (or before) the implementation is being done. Also, I would not
create "copies" of any files. Use the same file (version controlled). If
QA has their own copy, dev has their own copy, you will get yourself into a
real mess.
3. QA should *absolutely* use the feature files. EVERYONE should use the
feature files. The scenarios in the feature files are what have been
approved by the BAs. Again, I *highly* recommend you have one set up
acceptance criteria. If you are using BDD and feature files, there is no
need to maintain a separate set of acceptance criteria. We did this in my
company and we failed miserably. The BAs would change the "acceptance
criteria" but either forget or neglect to communicate the change in
acceptance criteria and the feature files were never updated with the new
criterion. So either the implementation was wrong, or the automation tests
were wrong, or both. If the "acceptance criteria" reside in one place
(remember, the scenarios in the feature files ARE your acceptance
criteria), then this problem doesn't exist. When acceptance criteria
changes (and it always does), the BA updates the feature file, and when
QA/Devs get the latest version from version control, they automatically
have the updated version. They can then proceed to implement the changes.
4. Once automation is complete, devs can run the automation tests until
they are green. Once green, that user story is complete.
Hope that helps.
Post by Eric BatesI think you have provided some Very good information.
I think we have a difference in terms on Unit and UAT automation.
For me UAT "User level" has traditionally been done with tools like
Selenium on a complete build in the Pre-Production environment.
Unit tests are focused on testing classes and individual components in VS.
Integration tests would be focused on more system end to end tests, prior
to handing a build over to QA for User level testing.
Most all my QA experience is on UI level testing. Both manual and
Automated (Selenium / QTP).
Let me go over how I did things before trying to implement BDD processes.
A PM would write requirements. (the team does a Req Review). Reqs are
imported into a tool like Quality Center. We (QA) would then write manual
and automated user level test cases to test and verify the Reqs.
In this new Agile / BDD process, The Req/User stories are created. From
these User Stores, we develop the acceptance criteria to verify the user
story is developed correctly. The team will then takes the Acceptance
Criteria list and turns these into "Gherkin" language feature files. Does
this sound accurate?
So, at this point if I am understand this all correctly, we will branch
off. Development team takes the "Gherkin" language feature files, Imports
into SpecFlow and starts developing the tests created from the feature
files. Then finally starts write application code.
QA would then take a copy of the "Gherkin" language feature files and link
these to Manual and Automated user level tests?? Do this sound like the
right/best process?
OR would QA not bother with the "Gherkin" language feature files, and
simply create the Manual and Automated user level tests which would link
directly to the Acceptance Criteria for the User Story.
Sorry for all the Q&A but I have been reading and researching BDD for the
past two weeks and I am a little surprised at all the information out there
but at the same time none of the info is written from a newbe perspective,
so it has been a little difficult getting my brain wrapped around this
whole new process. :-)
I hope I everything I wrote here makes sense.
I have a lot of experience in Waterfall and basic Agile SDLC, but trying
to understand the right/best way to implement BDD with Visual Studio and
SpecFlow, is a new learning experience.
--
You received this message because you are subscribed to the Google Groups "SpecFlow" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "SpecFlow" group.
To unsubscribe from this group and stop receiving emails from it, send an email to specflow+***@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.