Adaptive Automated Testing is a technique where the test is generated on the fly in reaction to the behavior of the application under test. A software tool implementing Adaptive Automated Testing observes what the state of the application is, decides what stimulus to give it in terms of data or instructions, and then observes and verifies the resulting behavior of the application with user-supplied behavior rules. The stimulus and verification are bound to the application state, not contained in a test defined by the automated tester.
With other approaches to test automation such as scripting and keyword-based testing, a test is made up of 2 basic components: a sequence of instructions that attempts to drive the application under test to a known state, and a hard-coded test to verify the state of the application. As soon as the necessity for sequence information is introduced into the equation the effort required to create the test goes up massively. As the sequence is also extremely prone to failure from changes in behavior of the application under test, the resulting test is essentially very brittle. Verification rules are scattered throughout potentially hundreds and thousands of scripts. These factors make maintenance far more difficult as well. Since Adaptive Automated Testing removes the sequences and the verifications embedded in those sequences there is no need to author and maintain tests.
In Adaptive Automated Testing, navigation through the application under test is provided by the either the tab-sequence in the application or through random focus jumps, or a combination of both. By combining the tab-sequence and random focus jump, this results in constant verification of different application paths from one test run to the next, providing far greater test coverage. With other techniques a defined test validates the same path through the application over and over again. Using these methods the only way to enable high coverage is to create an enormous number of tests. Using Adaptive Automated Testing, the testing tool does it for you.
Finally, since the need to author multiple complex scripts is eliminated, Adaptive Automated Testing enables a tester to create a test that requires no programming skills and is extremely easy to use. The tester can then shift from spending a majority of time forcing the application to get someplace, to writing more robust and detailed behavior verification rules.
By eliminating the requirement for test creation and by providing automatic high test coverage, Adaptive Automated Testing enables a capability for cost-effective and robust automated testing early in the development process. For a more detailed discussion, please download the Aberro White Paper “Adaptive Automated Testing: A Revolution in Software Functional Test”.