Improving Software Testing Coverage with Test Automation
Testing is a crucial part of software development. The cost of correcting a flaw in the functionality or fixing a bug becomes more expensive the later it is found in the development cycle. This issue can be avoided with comprehensive testing, which is not always a simple task. With such a wide range of OS versions and different devices and browsers in use, the different combinations are countless. Automated testing can help speed up the process, although as many experts have reminded us, we should not completely forget the function of us humans in testing.
Many companies have turned to outsourced software testing to improve both the speed and coverage of their software application testing. At Shinetech we offer professional services, starting from an assessment to help our clients optimize their testing methods to project-based testing and fully outsourced test center. In this blog post, we will share our experience and some recommendations and solutions based on recent projects we have delivered.
In this example case, a CRM project for a US based company, our development and QA team completed the software development project for the client and established the testing framework. Teams worked in collaboration with the client’s in-house team, however Shinetech delivered all the testing work. To start off a project such as this, our lead QA reviews the project scope to determine the best testing approach and how to improve the quality. This is a key point to note; the role of testing and QA is to improve the project quality, not simply just to catch bugs. The steps included in the test planning phase are defining the test objectives, scope, and strategy and the acceptance criteria. Typically, there are three levels of testing: unit testing, integration testing, and system testing. Unit testing is already carried out by the developer while a dedicated test team performs the remainder.
We consider which features and functionality are to be tested and the best methods. Usually, we recommend a combination of manual and automated testing, depending on the type of software product. Some of the features should be tested in a real-life simulation that can replicate the actions of a real user and a realistic use case. The benefit of automated testing is that it can improve the efficiency therefore saving time- and consequently costs- especially when changes have been made to original functions. A good example of this is a complex feature in the software that references several parts of the application code. When one part of the code changes, the complete feature needs to be tested again.
In our featured project, our Shinetech QA lead created automated test cases for the complex, most frequently changing features. This method significantly improved the whole testing process, and when we released two major feature updates at the beginning of this year, our client reported a much higher acceptance rate than in the previous releases.
Another example of using automated testing is to carry out Agile testing for the frequent deliverables in an Agile project. This does not mean we only do automated testing; however, it is an important part. In a recent project, our development team was designing and creating a new UI for the product. Some elements and pages were updated daily, enabling our testing and QA team to run regular tests very quickly by creating automated test cases for the features.
A good selection of testing tools are available that can help create the automation testing framework and also cover part of the functional and compatibility testing across browsers and screen sizes. Some offer a cloud-based option that gives you access to a large set of different devices that are of particular importance for mobile application testing. We have frequently used Appium which can be used with web, native and hybrid apps. The core of Appium is written in Node.js, and the test cases can be created using any development tools, that all our QA leads have a great deal of experience with. Another good option is Ghost Inspector, very handy for Website testing, and of course not forgetting tools like Bamboo and Jenkins for continuous integration, testing, deployment, and delivery.
To learn more about Shinetech's software testing and development services, please visit our website: www.shinetechchina.com