Thursday, May 30, 2019
What is Software Testing?
Software Testing is a process that takes place throughout the Software Development Life Cycle (SDLC). In Software Testing we check whether the actual results of a software match the expected results. During software testing we find bugs or discrepancies with customer requirements before the customer receive the application, delivering the best possible quality.
What is Test Automation?
In software testing, test automation is the use of another program or tool (separate from the software being tested) to execute automatically the tests and report the results.
When do we need Test Automation?
Test automation is needed when the application demands many test executions either because the application will have many versions, or because it must be tested in different platforms (or browsers if it is a web UI application), or because there are many combinations of inserted data and rules that must be checked. In few words, test automation is critical for continuous delivery and continuous testing.
Manual or Automated or Both?
Correct answer is Both. Not everything can be automated. Not because we cannot do it, but it doesn’t worth it. There are cases where it is quicker and easier to test them manually. Additionally, each mode of test has its own value. There are things that even a well-structured test automation project couldn’t catch. There we need human eye and human hand.
What are the benefits of Test Automation?
- At least 5 x faster execution than manual tests
- Minimal effort to re-execute during next cycle. The time that is saved, can be used to increase the size of test suite. Therefore, the coverage is expanded.
- With no test automation, there is a possibility the testing period to be longer than the development period. Therefore, that would lead to the decision not to test certain things, putting the project to risk.
Why to invest in Test Automation?
A manual tester runs tests 8 hours per day and goes home where testing stops. With test automation we can run tests 16 more hours a day for the same cost, reducing the average cost of testing hours.
Considering below costs:
Manual Tester: 20€ per hour (160€ per day)
Automated Tester: 30€ per hour (240€ per day)
With a team of 10 Testers, 192 hours per month (24 days) and the fact that Automated Testers can achieve 16 hours a day of testing and run 5x more tests per hour.
It’s safe to say that there is a high ROI (Return of Investment) of test automation and that it is a good investment because it provides value in many ways:
- Improve software quality
- Maintain a good customer image
- Decrease cost of fixing bugs
- Simplifies routine tasks
- Run more tests without increasing costs in the same amount of time
- Increase the scope of coverage
Why should we start testing early in SDLC?
It costs much less to fix bugs that are detected earlier in the development cycle. In the chart below, you can see the cost of correcting a defect detected by the stage in which it has been found.
Data Source: (Planning Report 02-3, “The Economic Impacts of Inadequate Infrastructure for Software Testing,” Prepared by RTI for National Institute of Standards and Technology, May 2002, p 7-12.).
The sooner we find bugs, the cheaper and easier it is to fix them. If we practice test automation, it’s more probable that we will find more bugs before the beta testing and production phases.
Author: Vasilis Petrou