Developing Software Quality in KBE Implementations
MetadataShow full item record
The report is written to show as to what extent test-driven development (TDD) and continuous integration (CI) can be used on KBE models and how a unit testing framework for KBE models can be developed.Test-driven development (TDD) and continuous integration (CI) has changed the way software is tested. Software testing was often a separate process at the end of a project. It is now being worked on during the entire development period. TDD and CI relies on unit tests. Unit tests are done by dividing the code into the smallest possible units and testing each of them independently. This master s thesis asks how these practices can be used for testing knowledge based engineering (KBE) models.A unit testing framework for the Adaptive Modeling Language (AML), AUnit, has been developed. It is explained in detail and an introductory guide to using AUnit for testing KBE models in AML is included. AUnit was used to perform TDD and CI on different KBE models, both creating new models and testing existing ones. Testing KBE models differ to a large degree from testing regular object-oriented software. Different approaches for unit testing and TDD has been performed on several KBE models. It was concluded that the basic attributes in KBE models cannot be unit tested in a sensible way. This includes adding any superclasses and simple parameters like height and width. Without including these attributes, unit testing cannot fully be performed on KBE models using AUnit. However, the models can highly benefit from having unit tests for the logic in the model, which is where the most severe bugs will be. When the attributes are implemented in the model, test-driven development (TDD) can be performed on the models.Automatic continuous integration (CI) has been performed on a KBE model andthe basic principles of CI have been accounted for. CI for KBE models does notdiffer much from other software projects, so its focus is reduced.