Chair of Business Information Systems II







Unit Testing von textuellen domänenspezifischen Sprachen am Beispiel der Frameworks Xtext und Xtext Utils

Domänenspezifischen Sprachen (Domain-specific Languages; DSLs) bezeichnen Programmiersprachen, welche für einen bestimmten Einsatzzweck und ggf. für einen bestimmten Anwendertyp entwickelt werden. Durch diese Spezialisierung sind DSLs meist intuitiv zu benutzen und gewinnen daher immer mehr an Bedeutung.

DSLs sind jedoch nicht nur aus Endanwendersicht, sondern auch aus Entwicklersicht interessant. Im Bereich der modellgetriebenen Softwareentwicklung (Model-driven Development; MDD) stellt die Entwicklung von textuellen DSLs einen eleganten Weg dar, um die zur Serialisierung und Deserialisierung von Modellinstanzen benötigten Serialisierer, Parser und formalen Modelle zu erhalten. Die Definition einer DSL – bestehend aus der Beschreibung der abstrakten Syntax („Metamodell“), der konkreten Syntax sowie der Semantik – beinhaltet die vollständige Beschreibung eines für das MDD benötigten formalen Modells (bestehend aus der abstrakten Syntax sowie der statischen Semantik („Constraints“)).

Moderne DSL-Modellierungsframeworks wie Xtext machen die Erstellung von formalen Modellen über die – im Vergleich umfangreichere – Definition einer DSL attraktiv, da sie ausgehend von der Definition einer Grammatik (textuelle konkrete Syntax) das dazu passende Metamodell (abstrakte Syntax, jedoch ohne statische Semantik), den dazu passenden Serialisierer sowie Parser automatisch generieren.

Damit der Vorteil des MDD flexibel auf neue Änderungen reagieren zu können durch die Verwendung von DSLs nicht verloren geht, muss sichergestellt werden, dass die zur Erzeugung von formalen Modellen definierten Grammatiken ebenfalls flexibel angepasst werden können. Dazu ist es notwendig, spezifizierte Grammatiken automatisiert zu testen. Ziel dieser Seminararbeit ist es daher:

  • zu untersuchen, welche Ansätze derzeit existieren, um Grammatik-Definitionen zu testen,
  • die zu testenden Module einer in Xtext erstellten textuellen konkreten Syntax zu identifizieren,
  • zu untersuchen, ob Unit Testing Frameworks für das Testen von in Xtext erstellten Grammatiken existieren und ob diese ggf. den benötigten Funktionsumfang abdecken sowie
  • das Aufstellen eines Best-Practices-Katalog für das Unit Testing von in Xtext erstellten Grammatiken.

Quellen:

  • Stahl, T., Völter, M., Efftinge, S., & Haase, A. (2007). Modellgetriebene Softwareentwicklung. Techniken, Engineering, Management (2nd ed.). Heidelberg: Dpunkt Verlag.
  • Westphal, F. (2005). Testgetriebene Entwicklung mit JUnit & FIT. dpunkt.verlag.
  • Fowler, M. (2010). Domain-Specific Languages. Addison-Wesley Professional.
  • Gronback, R. C. (2009). Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. Addison Wesley Longman.
  • Thoms, K. (2011). Language Workbench Competition 2011: Xtext Submission. (Version 1.2 Final).
  • Voelter, M. (2012). Testing DSLs: How to test DSLs, their IDEs and Programs. http://www.voelter.de/data/presentations/oop2012-dslTesting-slides.pdf

Es ist selbstständig nach weiteren relevanten Quellen zu recherchieren!


02.04.2012