Chapter 3. Automated Functional Testing

Bring aboard your autopilot!

Automated testing is the practice of using tools instead of humans to perform user-like actions on an application and verify its expected behavior. The practice has been around since the 1970s, and the techniques and tools in this space have continuously evolved alongside software. To cite a few examples, in the 1970s software applications were predominantly written with FORTRAN and the RXVP tool was used to do automated testing. In the 1980s, when PCs evolved, AutoTester was introduced for automated testing. In the 1990s, when the World Wide Web boomed, test automation tools like Mercury Interactive and QuickTest became popular, and the automated load testing tool Apache JMeter was invented. With the continuous advancement of the web, the 2000s saw the birth of Selenium, and the number of automated testing tools has been growing ever since. Today, we even have AI/ML-powered automated testing tools that enrich the overall test automation experience.

This innovation has been driven by a few key observations: automated testing significantly reduces the cost of testing and enables software teams to get faster feedback on application quality than they would with manual testing. To show why this is the case, let’s consider a scenario where you only perform manual testing throughout your application development cycle, and see how automated testing compares in the same situation. Let’s say, on average, each feature ...

Get Full Stack Testing now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.