Maximizing your abilities to reach the market as soon as possible with highest possible quality requires you to be certain that everything you do is of good enough quality. This means that you should run continuous integration and continuous delivery all the time. If you rely on manual testing to ensure quality of the work, you will need to wait until all functionality has been tested. The time required to these manual tests grows with the functionality you provide. The bigger the system becomes the more resources and costs related to manual testing you need. With other words, you will not be able to cover all aspects of a system and not deep enough if you rely on manual testing only.
Allowing your tests to be automated enables you to:
- Increase the test coverage of the system
- Do deeper and more complicated tests
- Try different configurations, including different environments
- Write once, run many times
With other words; applying test automation correctly to your software development will both save you money, increase your return of investment, increase predictability and reliability of your development and last, but not least enables you to run faster development cycles. These arguments make test automation a critical requirement for all successful software development projects.
At this point, I think we all agree that test automation is very beneficial. Next questions is: What kind of tests can be automated?
Test automation can be done for the following areas:
- API testing ensuring that connectivity and integrity of systems and integrators
- Regression tests where we compare current results with expected results
- Performance tests where we do both load, stress and stability test.
- Compatibility test to ensure that we are able to run of different combinations of operating systems and software configurations.
- Security tests ensuring no open holes are available at release time
Developing automated tests is not much different from developing the main system itself. We need to think reusability and include Subject Matter Experts.
Behavior driven development, BDD, is one of the best ways to implement automated tests. It introduces a simple language where non-technical staff like business analysts or Subject Matter experts write scripts to describe wanted behavior. Test engineers translate these behaviors into scripts that run and report both success and failures. Cucumber is one of the most used tools that can provide you with a single source of truth that enables the whole team to talk and understand the same language.
Successful teams implement a control dashboard that enables stakeholders with interest in the project to monitor its health at any time. An example of such dashboard is as shown below:
With other words: You can get your products faster to the market by:
- Writing your tests only once and run the tests cross all platforms you are targeting
- Provide minimal human intervention and continuous testing
- Reuse the testing framework
- Allow non-technical users to run the tests
Applying healthy test automation summarizes the whole article.
0 kommentarer