Traditionally during the test design phase of a systems development lifecycle (SDLC), test designers form an understanding of the system using specifications and requirements. In essence, they form a mental model. This mental model is of the system itself, not one of the tests. In a purely manual test design process, this mental model is turned into test cases in the mind of the test designer.
This is an implicit, creative process that is not reproducible and is bound to the ingenuity of individual engineers. But this process can be automated through tools by making this model explicit, in other words, expressing this mental model in a form that is understood by a computer that would then take this explicit model and generate test cases. Now when we have a computer-readable model, we can apply Model-Based Testing (MBT) to the problem of test design automation.
The majority of test design automation tools leverage MBT to allow you to create or import a graphical representation (that is, a model) of the system under test.
The details and complexity of this model vary by tools, but in most cases, it will be a visual flow chart, where each step in the flow chart will be equipped with the necessary apparatus of testing, such as test data, test steps, and so on. Often, the model will also be able to link back to requirements generated either through the product or by a requirements management tool. The product can then generate test cases corresponding to different routes through your model, often in combination with distinct sets of test data. These test cases can then be executed within the product or exported as test scripts to a dedicated test execution framework. If the model is changed, later on, the majority of products have a change or impact analysis feature that will automatically modify or recreate affected test cases. In addition, many of the products in the space can be configured for continuous testing, so that this entire process can be done automatically.
What’s next for Test Automation Design?
The impact of test design automation in powering testing at the speed of agile is increasingly evolving. Companies need to adopt new testing techniques like Test Design Automation, to keep up with customer demand by continuously delivering high-quality apps and experiences and getting ahead of the competition.