Editor’s Note: We are going to open up a new discussion topic in software engineering in addition to our main themes of data and analytics. The following article is to provide you some background information in this area. The subsequent posts in this area will be written by our guest writer, who is an export in software QA and testing.
Software always has defects, and every software development company needs to hire test engineers striving to catch the defects before the product is released. Increasingly, companies are finding that traditional development methods hinder the projects and they are looking for automated software testing solutions to more effectively achieve the desired software quality.
What is automated software testing?
“Automated software testing is a process in which software tools execute pre-scripted tests on a software application before it is released into production.”(Search Software Quality)
Testing is the cornerstone of quality assurance in software development, but it is not without effort. It is estimated that in a traditional model of software development, quality assurance is at least 30% of the work required for a project. In this model, the tests are done manually, which complicates the process. Over a project, it becomes difficult or impossible to know exactly the status of tasks and the quality of the deliverable. Under these conditions, the quality largely depends on the goodwill of programmers and quality assurance specialists.
Why is automated software testing?
“The objective of automated testing is to simplify as much of the testing effort as possible with a minimum set of scripts. If unit testing consumes a large percentage of a quality assurance (QA) team’s resources, for example, then this process might be a good candidate for automation. “(Search Software Quality)
In this regard, automated software testing brings distinct advantages. Automated software testing prevents QA specialists doing repetitive tasks manually that can be very tedious.
As part of a project, for example, it is not rare that we have to deal with some 2,000 cases of test, after which we find 1,000 anomalies. Patches are made and then it runs again the 2,000 cases that reveal this time hundreds of bugs and this process keeps repeating again and again. Depending on the size of the application and skills of developers, it may be necessary to perform many times of testing.
We should not ask these professionals, who have extensive knowledge of the business, to perform such respective and tedious tasks, and that is why we need to automated the testing process. In addition, the QA specialists undergo more and more pressure by management and the project team to complete the work as quickly as possible to meet the established budget. In this context, the longer the manual process, the greater the probability that defects are not corrected.
How automated software testing improves workflow and collaboration?
In large software companies, there are several teams such as development, testing and IT departments involved in the developing process, and there is a need of close collaboration among different teams. To insure efficiency, the collaboration is realized by standardizing processes and products. However, because of the diversity of the processes and products used, this becomes an objective that is difficult to attain.
Automated software testing can avoid these difficulties. Of course, writing a script for automation requires more time from the developer; however, it saves a lot of valuable time for the project team. Automation can effectively orchestrate the work associated with various quality tests, and it is possible to rigorously check all functions and sub-functions inside and outside the system that is developed.
Automated software testing is a delicate task as a process can span multiple environments (mainframe, Web service, voice recognition system, etc.), which must be included in the tests. The development team can greatly facilitate the task by using a solution that is specifically designed to orchestrate the use of many tools used to test each of the relevant environments.
There are many advantages of using automated software testing. It can save time and money, increase the test coverage, improve accuracy, and also do the tasks that manual testing cannot do (e.g. to simulate large number of virtual users interacting with a network, software and web applications.)
By using automated software testing, we can get an accurate picture of the evolution of work. The development team is then able to easily check the increase in the number of successful tests and anomalies that remain to be addressed. This certainty can greatly shorten the pre-production cycle or acceptance testing by users.
With automated software testing, the time spent on quality assurance could be as little as 15% to 20% of the total duration of the project – instead of an average of 30% when testing is done manually. In short, automated software testing can complete the project in a shorter time and at lower cost, while providing superior software quality.