We’ve listed the three fundamental layers of automated testing. All are essential when it comes to getting accurate and comprehensive results.
Automated testing uses specialist software to test the performance of other solutions. As such it is a great way to carry out repetitive but necessary tests. It also makes tests that would be hard for a human to carry out much easier to execute. Additionally, good test software will automatically compare the results it records with predicted outcomes. All of this enables you to you to see whether your solution is performing as it should be without too much effort
Automated Testing Layer One: Unit Testing
Unit testing is at once the most basic and most important layer of automated testing. Unit tests look at individual units of source code, sets of one or more computer program modules and associated control data, usage procedures, and operating procedures to see whether they are working correctly in isolation.
Some components may consume a large amount of resources or be subject to change when a test is in progress. For this reason it is common practice to use substitutes – including method stubs, mock objects, fakes, and test harnesses – to keep costs down and ensure reliable results.
Unit testing finds problems early, allows the programmer to refactor code at a later date, and simplifies integration testing. In short, it’s always worth the effort.
Automated Testing Layer Two: IntegrationTesting
Integration testing combines individual software modules and tests them as a group. Such testing ideally takes as its input modules that have already been unit tested. These are combined into larger groups before being tested as per the integration test plan.
Integration testing, then, looks at how the system works as a whole.
Integration testing allows you to test problematic real-life scenarios that have been flagged up by business analysis and user feedback. Singling out bad paths in this way is essential for improving your site’s usability.
Automated Testing Layer Three: Load Testing
Load testing comprises of putting varying levels of demand on a system to see how it responds. Load testing enables you to see how your system will cope with different numbers of users – 10, 100, 1000, etc.
Load testing is essential when assessing how scalable a system is (see here for more information about the importance scalability), and how it will cope with possible future changes. It also uncovers problems to do with information bottlenecks and transaction isolation bugs.
There is little agreement on what the specific goals of load testing are. Still, there is no doubt that such testing is a powerful tool for testing a solution’s performance, reliability, and functionality under varying levels of demand.