Context: The architectural drift problem defines the discrepancy between the architecture description and the code. Deviations of the code from the architecture can occur if architectural constraints as defined in the architectural models are not implemented in the code. For large-scale systems, manually checking the consistency of the architecture with the code is not trivial and cumbersome. Objective: The overall objective of this paper is to propose and analyze the effectiveness and practicality of an architecture conformance analysis approach using model-based testing (ACAMBT) approach for checking the consistency between architectural models and the code. Hereby, we consider the case whereby the architecture is assumed correct, and the code needs to align with the architecture. Method: We propose a model-based testing that uses architectural views to automatically derive test cases for checking the architectural constraints in the code. We have evaluated the approach and the corresponding toolset for a real industrial case study using a systematic case study protocol. Further, we have adopted exhaustive fault-injection techniques to detect the constraint violations. Results: The evaluation of the approach on real code showed that deviations with the architectural constraints could be easily detected in the code. Conclusion: We can conclude that ACAMBT is effective for identifying inconsistencies between the architecture views and the code for the defined view constraints. Our survey study with practitioners showed that adopting the ACAMBT approach is practical and easy to use. The approach as such can be considered as a complimentary tool to the existing testing and reflexion modeling approaches.
- architecture conformance analysis
- case study
- model-based testing
- software architecture