ABSTRACT
Domain specific languages promise to improve productivity and quality of software by providing problem-adequate abstractions to developers. Projectional language workbenches like JetBrains MPS allow the definition of modular and extensible domain specific languages, generators and development environments. While recent advances in language engineering have enabled the definition of DSLs and tooling in a modular and cost-effective manner, the quality assurance of their implementation is still challenging. In this paper we present our work on testing the implementation of domain specific languages and associated tools, and discuss different approaches to increase the automation of language testing. We illustrate this based on MPS and our experience with testing mbeddr, a set of domain specific languages and tools on top of C tailored to embedded software development.
- JetBrains MPS Documentation. https://www.jetbrains.com/mps/documentation/.Google Scholar
- M. Amrani, B. Combemale, L. Lucio, G. M. K. Selim, J. Dingel, Y. L. Traon, H. Vangheluwe, and J. R. Cordy. Formal verification techniques for model transformations: A tridimensional classification. Journal of Object Technology, 14(3):1:1--43, 2015.Google ScholarCross Ref
- F. Campagne. The MPS Language Workbench. CreateSpace Publishing, 2014. Google ScholarDigital Library
- E. M. Clarke, D. Kroening, and F. Lerda. A tool for checking ANSI-C programs. In Tools and Algorithms for the Construction and Analysis of Systems, - 10th International Conference, 2004.Google Scholar
- S. Erdweg, T. Storm, M. Völter, et al. The State of the Art in Language Workbenches. In Software Language Engineering, LNCS. Springer, 2013.Google ScholarCross Ref
- M. Eysholdt. Executable specifications for xtext. Website, 2014. http://www.xpect-tests.org/.Google Scholar
- L. C. Kats, R. Vermaas, and E. Visser. Integrated language definition testing: enabling test-driven language development. In ACM SIGPLAN Notices, volume 46, pages 139--154. ACM, 2011. Google ScholarDigital Library
- R. Lämmel. Grammar testing. In Proceedings of the 4th International Conference on Fundamental Approaches to Software Engineering, 2001. Google ScholarDigital Library
- Z. Molotnikov, M. Völter, and D. Ratiu. Automated domain-specific C verification with mbeddr. In Proc. of the 29th ACM/IEEE Intl. Conference on Automated Software Engineering, 2014. Google ScholarDigital Library
- D. Pavletic, S. A. Raza, K. Dummann, and K. Hasslbauer. Testing extensible language debuggers. In Proceedings of 1st International Workshop on Executable Modeling, 2015.Google Scholar
- D. Ratiu, M. Voelter, B. Kolb, and B. Schätz. Using language engineering to lift languages and analyses at the domain level. In NASA Formal Methods, 5th International Symposium, 2013.Google Scholar
- M. Voelter, S. Benz, C. Dietrich, B. Engelmann, M. Helander, L. Kats, E. Visser, and G. Wachsmuth. DSL Engineering. dslbook.org, 2013.Google Scholar
- M. Voelter, D. Ratiu, B. Schätz, and B. Kolb. mbeddr: an extensible C-based programming language and IDE for embedded systems. In SPLASH '12, 2012. Google ScholarDigital Library
- H. Wu, R. Monahan, and J. F. Power. Metamodel instance generation: A systematic literature review. Computing Research Repository (CoRR), 2012.Google Scholar
- X. Yang, Y. Chen, E. Eide, and J. Regehr. Finding and understanding bugs in c compilers. SIGPLAN Not., 46(6):283--294, June 2011. Google ScholarDigital Library
Index Terms
- Automated testing of DSL implementations: experiences from building mbeddr
Recommendations
Legend: an agile DSL toolset for web acceptance testing
ISSTA 2014: Proceedings of the 2014 International Symposium on Software Testing and AnalysisAgile development emphasizes collaborations among customers, business analysts, domain experts, developers, and testers. However, the large scale and rapid pace of many agile projects presents challenges during testing activities. Large sets of test ...
Automated testing of DSL implementations--experiences from building mbeddr
Domain-specific languages promise to improve productivity and quality of software development by providing problem-adequate abstractions to developers. Projectional language workbenches, in turn, allow the definition of modular and extensible domain ...
DSL implementation using staging and monads
DSL '99: Proceedings of the 2nd conference on Domain-specific languagesThe impact of Domain Specific Languages (DSLs) on software design is considerable. They allow programs to be more concise than equivalent programs written in a high-level programming languages. They relieve programmers from making decisions about data-...
Comments