If you’re just starting your career in the field of Quality Assurance, some terminology might feel unclear or confusing. Today we’ll talk about how QA work is typically structured, which is through test cases and test suites.
Let’s start with a high-level overview. A test case is an action, or more commonly, a set of actions with the goal of testing a certain functionality of the application. A test suite is a set of test cases.
A test case is a key component in software testing, which determines if an application meets the requirements and runs as expected. It helps QA professionals to break down testing coverage into small chunks and verify functionality piece by piece. Test cases can cover many different aspects and be functional, GUI, performance, integration, etc. Executing test cases helps to identify software defects (also called issues or bugs) and improve software quality.
There are multiple pieces that a test case might contain. These include pre-conditions (ex: user must be logged into the app before proceeding), test steps, and expected result/verification (ex: verify an item was added to cart and “Added to cart” popup appeared on the screen).
- Manual testing: A QA Analyst personally conducts the test by manually going through each test step within the test case without the use of automated tools. Manual testing is still a preferred method for certain testing activities, but it’s highly inefficient for any repetitive work (ex: when you have to go through the exact same functional test cases every single time before the release).
- Automated testing: Tests are executed with the use of automated tools without human intervention during this process. In order to do this, test scripts need to be created in an automation framework. The primary goal of automated testing tools is to perform tests in less time. If you’re familiar with testRigor, you might already know that it’s one of the very powerful yet easy to master automation tools – since initial setup takes only a few minutes and tests can be written 15x faster.
Manual Testing Case
Manual testing utilizes detailed sequences that a tester must follow in order to identify all the bugs and glitches so that these issues get fixed before release to the market. Manual testing effectively minimizes errors and checks the conformity of an application to given requirements.
Although the automated software testing tools save both money and time, human touch is very efficient in different areas, such as usability tests that target the real end-users. Besides, 100% automation coverage has never been possible, and thus manual testing plays a crucial role in quality assurance.
More About Manual Testing
- Optimization for various browsers and devices: The goal of this process is to ensure that the developed web application is compatible with several browsers used in devices such as smartphones, tablets, and laptops. A web application should display properly on each device and function well in different browsers.
- Seamless checkout process: The design and ease of an e-commerce checkout impact customer experience and determine the possibility of repeat purchase. Manual testing should aim to eliminate factors that cause customers to abandon checkout such as complex checkout procedures, lack of convenient payment methods, limited shipping options, and consistent application performance problems.
- Fast-loading images: Pictures are important components of any product displayed on a website, as they convince buyers to continue with the buying process. Therefore they shouldn’t fail to load, be cut off, or pixelated.
Below is an example of a manual test case:
Here you can see the execution steps on the left side and verifications on the right.
More About Automated Testing
Automation shines in any repetitive testing activities, as well as in non-functional testing such as load or performance. Unlike manual testing, which is prone to human mistakes, automation is much more reliable – if the test scripts are written the right way. Another great benefit of automated testing is time savings, as hundreds of test cases executed manually can take hours if not days, vs minutes, once automated.
Automated tests typically require programming knowledge, and a simple test case can look like this:
But the good news is that although software applications around us become increasingly more complex, automation tools become more powerful as well. Here’s how the same automated test case will look like in testRigor:
login check if page contains “Welcome Peter”
Quite impressive, right? All tests in testRigor are written just like that, in plain English, no matter how long or complex they are.
As we’ve discussed earlier, a test suite is nothing more than a set of test cases grouped together for a specific purpose. The set of tests contained inside test suites enables the execution and reporting of the status of findings.
Tests may be grouped into various suites and different criteria based on detailed instructions and objectives that each group of test cases should achieve. Prerequisite states, system configurations, and relevant descriptions may also be defined for various test suites.
A test run is when a test suite or even any individual test cases, are executed on a piece of software to identify any potential issues. Test run helps to finalize all testing needs before the application is rolled out to the end users. Test Run, therefore, satisfies customers’ needs by ensuring that quality of the product is of a highest standard. Test run can either be done manually or, in case of automated testing in place, can be triggered automatically at any pre-defined condition (ex: when a new software build comes out).
Hopefully, after reading this article, you have a much better idea of what the differences between test suites, test cases, and test runs are.