6 years ago, while working with a medium sized MNC, when I suggested to document test scenarios rather than wasting time on preparing full proof document called test cases, all the heads turned to me in annoyance. The look on the faces was clearly conveying that I made a big mistake by suggesting it. Although no one denied the idea but no one even accepted. Everyone felt that following the tradition, i.e. writing test case document, would be safer. I could not argue.
After 4 years, the company received a testing project, where the only constraint was time and only expectation was full proof testing. We were in meet again and were discussing about ideas to meet the critical deadline. The application was mainly about search and generating different reports via different menu items. Documenting test cases was supposed to snatch most of the time and we were not sure, how much the document was going to useful to the client. I suggested documenting test scenarios and somehow with some hesitation, everyone agreed. No need to mention that we could save precious time of documentation and could utilize it for testing.
Are Test Cases being replaced fast with test scenarios?
With time, as everything is changing, software industry and processes also have changed a lot.
Traditional waterfall and v-models are being replaced by agile and iterative models. Documentation is necessary but to meet deadlines and making process easy and transparent, way of documentation can be changed.
Documentation of test cases is important when:
- Client has asked for the same as part of project
- There is no time constraint (I don’t think it’s possible)
- Testers are fresher or unknown to product
- Company policy (I strongly believe that it can be changed)
Let me share with you one experience:
I and my team were involved in testing a project from fortune 500 company with flexible timelines. We documented test cases with best available template and got it approved from client. Once the build started releasing to QA team, for most of the day, our duty was, mechanically follow 100 test cases per day, update document with pass/fail result and send it to client at the end of the day. Most of the team members started complaining about monotonous work but company was generating revenue.
Then there was a break for one day in between with no new build to test. We sat together at the beginning of the day and were discussing what we were going to do for the day. When I proposed to generate more ideas to improve the test case document, all the team members denied putting in efforts. As per them, there was nothing more to think about as we had covered all the scenarios. And convincing them to think out of box and generate more ideas was really tough.
Most of the time, when we document test cases and that too once approved by client, that human mentality thinks that we have done our job and our mind automatically stops considering any effort to think about other ways to test the product.
And believe me, when test cases document is prepared, we just want to follow it mechanically. Tell me for how many times in your career, you have experienced that you or the team mate offered additional test cases to the approved test cases document?
One more experience:
During weekly team challenge activity, we announced the application and asked the team members to pour in test scenarios. All the team members, including those late responders or non responders put in ideas. Why? There was no formal documentation where they had to fill expected result for every sequence of functionality and pre-condition for each test case. We collected 40 test scenarios in a day and that was a great experience.
To favour my experience, I would like to present an example.
Take a sample application, say login page with username, password, login, and cancel buttons. If asked to write test cases for the same, we will end up writing more than 50 test cases by combining different options and details.
But if test scenarios to be written, it will be a matter of 10 lines as below:
High Level Scenario: Login Functionality
Low Level Scenarios:
1. To check Application is Launching
2. To check text contents on login page
3. To check Username field
4. To check Password field
5. To check Login Button and cancel button functionality
As we all are at short of time, test scenarios work as pain killer spray rather than that old time IODEX. And still the effect is same.
Finally, I would like to summarize the difference as below:
|Test Cases||Test Scenarios|
|What it is =>||A concept which provides detailed information what to test, steps to be taken and expected result of the same||A concept which provides one-line information about what to test.|
|It’s about =>||It’s more about documenting details.||It’s more about thinking and discussing details.|
|Importance =>||It’s important when testing is off shored and development is onsite. Writing test cases with details will help both dev and QA team in sync.||It’s important when time is less and most of the team members can agree / understand the details from one-liner scenario.|
|Advantage =>||One time documentation of all the test cases is beneficial to track 1000s rounds of regression testing in future.|
Most of the time, its helpful while bug reporting. Tester just need to give reference of test case ID and does not require mentioning each and every minute detail.
|A time saver and idea generation activity, preferred by new generation software testing community.
Modification and addition is simple and not specific to a person.
For a huge project, where group of people know specific modules only, this activity gives a chance to everyone to look into other modules and brain storm and discuss
|Beneficial to =>||A full-proof test case document is a life line for new tester.||Good test coverage can be achieved by dividing application in test scenarios and it reduces repeatability and complexity of product|
|Disadvantage =>||Time and money consuming as it requires more resources to detail out everything about what to test and how to test||If created by specific person, the reviewer or the other user might not sync the exact idea behind it. Need more discussions and team efforts.|
Finally this post should be concluded as:
Test cases are most important part of Software Development Life Cycle and without the one, it’s tough to track, understand, follow and reason out something. But in the era of Agile, test cases are being replaced fast with test scenarios.
A common test checklist for each type of testing (database testing, GUI testing, functionality testing etc) coupled with test scenarios are the modern artillery for Software testers. Discussions, trainings, questions and practice can definitely change the final graph of your productivity as well as Bug report matrix.
About the Author: This awesome post is written by STH author Bhumika Mehta. She is a project lead carrying more than 7 years of software testing experience. She loves to test everything exists, appreciates good ideas, and innovations but hates monotonic work.
As usual, we welcome your thoughts and queries. Please tune in.