Julien and Rachid discuss smart ways of working and collaborating with Model Based Testing & Model Driven Engineering.
Model Based Testing (MBT) and Model Driven Engineering (MDE) are methods for faster, low-cost and more efficient software design. They allow you to create an abstract model based on system requirements. Tools automatically generate the code for the test (MBT) or the system (MDE). “From simple data entry to the thought process; a software engineer is more focused on the system’s functioning than on writing code. The result speaks for itself: more innovative products with a shorter time to market.
In the case of MBT, instead of describing the test, you create a model of what the system or a component is required to do. With a single press on a button the special tools generate the code for the tests and run it. Rachid Kherrazzi: “Because the test scripts are generated automatically, you obtain a much more elaborate test set than if you were to write all the tests manually. What’s more, writing the code manually is prone to errors. A typo is made easily, but can have huge consequences.”
Back to basics
The advantages described by Rachid also apply to MDE. “The difference is that MDE uses the abstract model to generate the code for the system,” Julien Schmaltz, principal consultant at ICT Group, explains. “When building the model you’re focused on the essentials of your product. What should the system be able to do? Which requirements should it meet? Once you’ve mapped this out, all the rest is automatically filled out for you in Java, C#, or in another programming language.” When you use MDE and MBT, developers and testers can focus on the smart and complex aspects of the system. “The work becomes a lot more challenging: you can concentrate on the functionality, which is what it’s all about. Because generic work such as writing and developing scripts is automated, developers and testers have more time to design better solutions and create more innovative products.”
“Everyone looks at the same model; client, domain expert, tester and designer. This really enables you to collaborate during the development process.”
Faster, more frequent and accurate testing
Using models creates clarity and transparency for everyone involved in your project. Julien: “Everyone looks at the same model; client, domain expert, tester and designer. This really enables you to collaborate during the development process. The simulation gives an impression of the end result. Is this what you intend to build? Can you think of any other possibilities or requirements based on your progressive insight? The model allows everyone to come up with relevant questions, as early as during the requirement phase. This way you can obtain feedback from the client even before you start creating the design or entering the coding.” A model also helps you in finding errors at an early stage, Rachid adds. “Moreover, it provides immediate insight into whether particular changes will improve the product. This can easily be tested in the model with simple adjustments. A model allows you to perform the build-measure-learn loop faster and more frequently.
Creating innovative products requires innovative tools, Rachid explains: “After all, you can’t use the same tool for all of your clients. This is why InTraffic works together with companies that develop these kinds of tools. They create the tools, we apply them and if required, we customise them to fit the demands of the client. By collaborating as partners you can improve and develop the tools together, and be the first to have access to improved features.” And this is absolutely necessary in order to retain a leading edge in the market. “In a society in which the complexity of products is increasing, it’s essential that you become smarter when you’re creating code. And attract the people who can go beyond code and dare to be innovative in their work. The tools have improved substantially during the last few years. Now is the time to apply them and benefit from the improvements.