Testing Code Generators against Definitional Interpreters
Date: Wed, December 05, 2018
Room: Prisma (Bouwcampus)
Note: This is a MSc thesis defense
Large companies suffer from the increasing complexity that exists in their software systems. Evolving their software
becomes even harder if we consider that a change in one system can affect several other parts of their software architecture. In particular, banks, that always need to comply with regulations, have to constantly make changes in their software to reflect these changes. ING is a primary example that currently tries to find a solution to these problems through the use of model driven development and more specifically code generation. In particular, they have created a Domain Specific Language called Maverick to specify the requirements / business logic and through the usage of code generators to automatically generate their entire codebase from these Maverick specifications. Code generators as any other software artifact is not bug free, meaning that testing code generators is of paramount importance. However, testing code generators is not straightforward as their output is another program that besides syntactic structure also has behavior. Many formal approaches have been developed that try to formally prove the correctness of code generators. Nevertheless, the complexity and scalability issues that these approaches face make them infeasible in practice. This thesis presents a testing approach that leverages a definitional interpreter to test code generators. We evaluate and show the practicability of our approach using Maverick specifications developed by ING and we conclude that our proposed method can address many of the issues that formal approaches face.
Sebastian Erdweg | Using Z3 with 900 first-year students
Next: Mohammad Reza Mousavi | Conformance Testing as a Tool for Designing Connected Vehicle Functions