Test Cases Vs Test Scenarios – Which is Better? (My Experience)

6 years ago, while working with a medium sized MNC, when I suggested to document test scenarios rather than wasting time on preparing the 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 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 the meet again and were discussing 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 use 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:

  1. Client has asked for the same as part of project
  2. There is no time constraint (I don’t think it’s possible)
  3. Testers are fresher or unknown to product
  4. 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 a best available template and got it approved from the 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 the client at the end of the day. Most of the team members started complaining about monotonous work but the 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 a box and generate more ideas was really tough.

Most of the time, when we document test cases and that too once approved by the client, that human mind 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 teammate 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

See Also => 180+ Sample Test scenarios for testing web and desktop applications.

As we all are at short of time, test scenarios work as painkiller spray rather than that old time IODEX. And still the effect is same.

Finally, I would like to summarize the difference as below:

 Test CasesTest Scenarios
What it is =>A concept which provides detailed information what to test, steps to be taken and expected result of the sameA 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 testIf 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 is the modern artillery for Software Testers.  Discussions, training, 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.