Introduction to Model-Driven Test Design

Tharmakulasingham Inthirakumaaran
3 min readJun 30, 2021

--

In this article, we simply introduce the concepts in Model-Driven Test Design and the different phases in it.

Testing is an important phase of software development to ensure the quality & functionality of the system. Especially in the iterative development environment, we need to make sure that we run the test so that we don’t break the features we have delivered in the earlier cycles. Although testing is a tedious process & overloads the development work it is indispensable to have a stable product. Testing could not cover all the aspects of the product or give full assurance about the product — “Testing can only show the presence of failures, not their absence” but it can be used to check whether the software behavior is acceptable along with non-functional requirements such as performance, security, reliability, etc. In order to handle the complexity of the software, we can use a certain level of acceptance.

What is Model-Driven Test Design?

MDTD is built on the idea that designers will become more effective and efficient if they can raise the level of abstraction. This approach breaks down the testing into a series of small tasks that simplify test generation. Then test designers isolate their tasks and work at a higher level of abstraction by using mathematical engineering structures to design test values independently of the details of the software or design artifacts, test automation, and Test Execution.

Different phases in MDTD

MDTD can be done in 4 different phases. Each type of activity requires different skills, background knowledge, education, and training.It is better to use different sets of people depend on the situation.

  1. Test Design — This can be done in either Criteria-Based where Design test values satisfy coverage criteria or other engineering goals or in Human-Based where Design test values based on domain knowledge of the program and human knowledge of testing which is comparatively harder. This the most technical part of the MDTD process better to use experienced developers in this phase.
  2. Test Automation — This involves embedding test values to scripts. Test cases are defined based on the test requirements. Test values are chosen such that we can cover a larger part of the application with fewer test cases. We don’t need that much domain knowledge in this phase, however, we need to use technically skilled people.
  3. Test Execution — The test engineer will run tests and records the results in this activity. Unlike the previous activities, test execution not required a high skill set such as technical knowledge, logical thinking, or domain knowledge. Since we consider this phase comparatively low risk, we can assign junior intern engineers to execute the process. But we should focus on monitoring, log collecting activities based on automation tools.
  4. Test Evaluation — The process of evaluating the results and reporting to developers. This phase is comparatively harder and we expected to have knowledge in the domain, testing, and User interfaces, and psychology

The below diagrams shows the steps & activities involved in the MDTD

Steps in MDTD; Source: Introduction to Software Testing(2nd edition) Chapter 2Model-Driven Test DesignPaul Ammann& Jeff Offutt
Acitivites in MDTD; Source: Introduction to Software Testing(2nd edition) Chapter 2Model-Driven Test DesignPaul Ammann& Jeff Offutt

Test automation process, make it easy to do regression testing in less time compared to manual testing, and also it avoids the chance of missing the previous passed test cases to be tested in the current testing process. MDTD defines a simple framework to automate the testing process in a structured manner. This is a simple introduction to MDTD to get a rough idea about it. I hope it is useful to you, cheers!!!

--

--

Tharmakulasingham Inthirakumaaran
Tharmakulasingham Inthirakumaaran

Written by Tharmakulasingham Inthirakumaaran

Associate Tech Lead, MSc graduate and occasional writer.

No responses yet