Updated: Jun 9
Software testing - Automation and Manual testing
Today we are interacting with software apps more often than ever. We have dependencies on the apps for every possible need. With this drastic consumer behavior shift, software apps are becoming the first interaction point and the face of businesses. It is becoming increasingly important for businesses to deliver quality software experience to their consumers to gain a competitive advantage. Hence software apps are becoming the most critical aspect of businesses and delivering a quality software experience is becoming the top priority.
One of the ways to achieve a good software experience is through software testing. A well-tested software ensures a quality experience for the end-user. However, it could be a complex and expensive job if not planned properly. Furthermore, these software apps as interacting with each other at various touchpoints increasing the complexity of the software architecture. Hence it is important for software teams to approach testing in a process-oriented and planned approach. Here I would like to put across a step-by-step guide on software testing best practices that would ensure a good customer experience.
Before we proceed on that, let’s briefly understand ways to do software testing. Software testing can be accomplished in two ways -
Manual testing — As the name suggests, manual testing is the process of testing the software manually by following a set of steps called the test cases. These test cases cover every possible consumer flow on the application and any exception scenarios that can occur in the live environment. This process is carried out to find defects without using any tools or automation scripting.
Automation testing — This is the method of running software tests automatically by using automation tools to improve software quality. Test automation primarily automates user flows and requirements to ensure they are delivered defect-free to the end-users. The tools used for automation testing of software control the execution of tests and compare the actual results against the expected result.
Let’s understand how to improve customer experience by following best practices in manual and automation testing -
Manual Testing best practices
I generally break down and arrange manual testing tasks in form of a workflow as mentioned in the following screenshot. Adherence to these steps ensures that I am staying true to the process and would not miss any important steps that would lead to the degradation of software quality. Let’s understand the importance of each step.
1. Create a Software Test Plan - A test plan document is prepared which acts as a guide in the testing process to have the complete test coverage. Learn How to write a Test Plan?
2. Requirement Clarification - Testers review the requirements and raise queries with business analysts for requirement clarification.
3. Write Test Scenarios - Post getting all queries resolved and understanding the requirements, the tester creates the high-level test scenarios ensuring all requirements are covered and maintains a requirement traceability matrix.
4. Write Test Cases - Then detailed test cases are written, self-descriptive steps that testers will execute while testing. Please follow an engineered approach to writing test cases using Test Case Design Techniques. Test steps are written keeping in mind that they should be understandable to anyone who even doesn't have any prior knowledge of software functionality.
5. Test Case Review - Test cases are reviewed by peers, dev, and BA ensuring no testing scenario is missed in the test cases.
6. Execute Tests -The tester then plays the role of an end-user whereby they test the application's features to ensure correct behaviour. The tester follows a written test plan that leads them through numerous test cases.
7. Defect Management - In the test execution phase, testers will find defects that need to be reported to the developers and other stakeholders. ensuring proper recording and classification of defects is a prime responsibility of the tester. Tester needs to ensure defects have everything for any stakeholder to understand and reproduce the defect. Each defect has to be linked to the test case execution along with the defect details. Some of the important parameters of defects tester need to capture and articulate are -
Test Steps/Steps to reproduce
Defect assigned to
Test cases blocked due to these defects
Screenshots of failures
Automation Testing Best Practices
Just like breaking the manual testing in a workflow of sub-processes, I arrange the automation testing in the following order. Again the objective is not to dilute or miss any important step. Let’s look and the workflow to follow in automation testing —
1. Create a Software Automation Test Plan - Like manual testing, it is important to have an automation test plan. The plan should articulate how to approach automation testing and set expectations from automation testing.
2. Identify Automation Candidates/Automation Scope - While writing manual test cases, identify test cases to automate. These are priority 1 and priority 2 test cases and will require testing multiple times throughout the life cycle of the product.
3. Bifurcate Test Cases Based on Tech stack - Bifurcate which tech layer these test cases belong to - DB, API, or UI? This will help to identify which automate tool needs to be selected.
4. Calculate ROI - Decide if automation will give a return over manual testing in a longer duration.
5. Select Tool - Identify the correct tool for automation based on factors such as the tech layer of test cases, skill set in the team, budget, etc.
6. Automate the Test Cases - Develop scripts with proper test validation points.
7. Validate the Automation Coverage - Validate if automation scrips are covering all intended functionalities to be tested and good to replace manual testing.
8. Automation Test Reporting - Automation reports should give a clear picture of the automation run.
9. Automation Maintenance - Maintain and enhance the automation script as per change in functionality.
Note from the author - "If you like the knowledge shared on this page or want to share your views or correct anything, please let us know in the comment section below. If you want us to share details about any other topics, please share that too in the comment section. Share with others if you found it useful. Thanks."