Writing Test Cases from SRS Document (Download Live Project Sample Test Cases) – Software Testing QA Training Day 4
Just to rehash what we have been doing so far – we are working our way through the Software Testing Training mini-course on a live project OrangeHRM.
In this free online QA training series so far, we are done with:
Now, we have reached the part that is the real deal, the test cases.
As indicated in the article before this: Test cases are documented by the QA team while the Code phase of the SDLC is going on. In other words, while the Dev team builds the software system, the testing team gets ready with the test cases that would help us test the system once it is ready, i.e. at the end of the code phase.
So, in today’s article, we will work on understanding what test cases are, how to create them and write a few sample test cases for our live project.
Let us get to it right away.
What You Will Learn:
Basics of Writing Test Cases
#1. If test scenarios were all about, “What we are going to test” on the AUT – the test cases are all about “How we are going to test a requirement”.
For example, if the test scenario is “Validate the Admin login functionality” – This would yield in 3 test cases (or conditions) – Login (successful), Login-unsuccessful when incorrect username is entered, Login-unsuccessful when the incorrect password is entered. Each test case would, in turn, have steps to address how we can check a particular test condition is satisfied or not.
#2. The input to create a test case document is FRD, Test scenarios created in the earlier step and any other reference documents if present.
#3. The test cases documentation is an important deliverable by the QA team and is shared to BA, PM and other teams when done for their feedback.
#4. Work is divided among the team members and each member is going to be responsible for creating test cases for a certain module or a part of a certain module.
#5. Just like with the test scenarios, before we begin Test case documentation, a common template has to be agreed upon. Practically anything can be used to create test cases. The 2 most often used choices are MS Excel and MS word.
#6. The MS word template looks something like this:
#7. The Excel template could look like the following:
#8. From the above two templates, it can be observed that the fields (or the components) that make up for a test case are the same, the only difference is the way in which they are organized.
So, as long as there is a field for each of the types of information to be included in a test, the format of the template does not matter. However, my personal favorite happens to be the excel sheet, because it is easy to expand, collapse, sort, etc. But again, choose any format that works best for you.
Fields in Test Cases
Let us take a moment, to observe the fields that are part of a test case.
Test case Id and Test case description – these are the generic ones.
The other fields can be explained as follows:
a) Precondition – state of the AUT (the state in which the AUT needs to be for us to get started)
b) Input – data entry steps. For these steps it is important to note what kind of input info is required – Test data
c) Validation point/trigger/action – what is causing the validation to happen? (Click of a button or toggle or the link access. Make sure there is at least one validation point to a test case- otherwise it is all going to be data entry with nothing to look for. Also to ensure that we have enough modularity, try not to combine too many validation points into one test case. 1 per test case is optimum.)
d) Output – expected result
e) Postcondition – This is additional information that is provided for the benefit of the tester, just to make the test case more insightful and informative. This includes an explanation of what happens or what can be expected of the AUT once all the test case steps are done.
See Also => Sample test case template.
As an alternative to using a Microsoft Word or Excel template, you can use a tool like TestRail to document your test cases. You can even add detailed steps, data files, expected results, and screenshots to your test case definitions. But TestRail isn’t just a documentation tool: It provides comprehensive, web-based test case management to help teams organize testing efforts and get real-time insights into testing activity.
With TestRail, you can track the status of individual tests, and measure progress with informative dashboards and activity reports. Compare test results across multiple test runs, configurations, and milestones. Track team workload to adjust assignments and resources and work more productively with personalized to-do lists, filters, and email notifications.
You can install TestRail on your own server, or choose the cloud-based edition for instant setup. There is also a new Enterprise edition for larger teams, with features such as SAML 2.0 Single Sign-On, audit logs, and priority support.
TestRail integrates with defect tracking and collaboration solutions such as Atlassian Jira, FogBugz, Bugzilla, Gemini, Axosoft, GitHub, and TFS; with test automation tools such as Ranorex Studio, and many more.
Live Project Sample Test Cases (Download)
Now that we have enough background information to get started on the test case creation process, let us get going and create few test cases for our Live Project.
Based on the process mentioned above we have created some sample test cases for the OrangeHRM account module. These should give you exact test case format and idea on how to approach for writing test cases.
Note – there are few images referred in sample test cases XLS document. If you are viewing this on older MS Office version, you may face compatibility issues. So we have listed those images below as per their names in the XLS files:
There, all done and all good.
Test Cases Writing/Optimization Methods
Now, imagine a situation where a certain page has a few 10’s of fields on it or has a complex business logic that is implemented in there. To make sure that we optimize the test case creation process in situations like that, we testers have certain Test case optimization methods.
Below is a list and please check out the links provided for more information on these methods.
- Boundary value analysis
- Equivalence partitioning
- Error guessing – This is a very simple method and relies on a tester’s intuition. An example is: Say there is a date field on a page. The requirements are going to specify that a valid date is to be accepted by this field. Now, a tester can try “Feb 30” as a date- because as far as the numbers are concerned, it is a valid input, but February is a month that never has 30 days in it- so an invalid input.
- State transition diagrams
- Decision tables
Using the above techniques and following the general test case creation process, we create a set of test cases that would effectively test the application on hand.
A few important points to note
- The test cases we create are not only the point of reference for the QA phase but also to the UAT.
- Internally test cases are peer-reviewed within the team.
- When a certain situation is not addressed by a test case – the rule of thumb is, it is not going to get tested. So, this is a good place to check whether the test suite we created achieves the 100% test coverage goal or not. To do so, a traceability matrix can be created. Check out all there is to know about traceability matrix here.
- Tools – Test management tools like QC, qTest help us with the test case creation activity. For an example of how test cases can be dealt with using Quality Center, check out this Quality Center tutorial.
- Automation tools can be used to create test cases- in which case, they are referred to as, Test scripts.
That brings us to the finish of another interesting segment.
The end of test creation process/test design phase (STLC) and the end of the Code phase (SDLC) will generally mark the end of the test preparation phase and the beginning of the Test execution phase.
Next tutorial in this Software Testing Course – In the coming article, we will talk about what test execution is, what it includes and what are the expectations from the QA team during this phase.
=> QA Training Day 5: Test Execution
We hope all of you are working along with this series. For the sake of simplicity, only a few test cases have been created. However, the best results can be seen when you work on testing extensively, which means writing more and more test cases. So, please don’t limit your work and do as much as you can.
Please do let us know your questions and comments below. Happy testing!