I had some discussion in previous blog Specification by Example – The way to enhance testing & Requirement for this.
Let’s continue.
Background
Now let’s take a look at in normal product development, what’s work flow for the requirement towards customer document and system document.
Requirement is put into focalpoint (or others) and bring to R&D, scrum is mostly used, product backlog and Sprint backlog will be generated in excel or agile tools (including redmine, teamforge, jira, whiteboard), it covers from high level requirement to user story level.
Testers start to analysis the requirement and generate test specification level document in word, it will be reviewed by senior group and put stamp – go!. test case description is more detail on use case testing level, mostly they will be converted into real test case script for automation inside CI.
When the project goes to end, test report is requested to be finalized and stored somewhere.
CPI technical writer will collect all the information and write in tagtool for CPI (product customer document)
System managers will collect information to update system document like System Architecture Description.
Observation
Every document exists for some reason, while from agile/lean point of view.
Do you see any waste here ? waste on the documentation and waste on time to write the document ?
Do you still understand the purpose of those documentation ?
And please don’t think from your roles (testers, managers, technical writters), stand from of your product.
From my point of view, the designer area (coding) is much improved compare to before, most of APIs are genrated into documentation automatically, quality is promised via tools like CI, sonar.
Specification by example
I don’t want to repeat the famous free delivery for bookstore example from “Specification by example” on how it could work with less waste, please read it sample chapter 2 from manning directly.
Possible solution for us
I don’t state it can 100% work for us, just give idea how it can work
We can combine all the test documents to cucumber (one nice tool) feature files like below
below the Feature title, we can add detail background for the requirement, it can surve as test spec.
All the scenarios are exactly the same as test case description on detail enough for testing.
This specification (test case) could be directly executed by cucumber driver.
When the test case is executed, it could be automatically generated into html file, it could be test report
And if we had some scripts to convert .feature to latex/docbook, it can be automatically generated high-quality documents like pdf, since we can predefine some structure, which can be mapped to end result.
See good example from Pro Git book.
From left to right: markdown plaintext, simple html, ebook pdf format. (it is coverted by pandoc to latex and texlive to pdf)
Furthermore, .epub (iPad), .mobi (Kindle) are supported as well, and everything is automatically.
And this could happen for us as well.
Summary & Go ahead
Probably you want to challenge again that it doesn’t work for you because blah, blah, then I recommend to buy the book “Specification by example” from Gojko Adzic
I will continue to look into this area and I will try my best to remove useless project document using “Specification by example” and Cucumber.