Top Banner
Testing Extensible Language Debuggers 1st International Workshop on Executable Modeling Domenik Pavletic , Syed Aoun Raza, Kolja Dummann and Kim Haßlbauer © Pavletic et. al. 2015
24

Testing Extensible Language Debuggers - · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Mar 21, 2018

Download

Documents

tranhuong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Testing Extensible Language Debuggers 1st International Workshop on Executable Modeling

Domenik Pavletic, Syed Aoun Raza, Kolja Dummann and Kim Haßlbauer

© Pavletic et. al. 2015

Page 2: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Agenda

Extensible Languages and Debuggers

Requirements on the Testing DSL

Testing Debugger Extensions

Page 3: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Extensible Languages the context

Page 4: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

General Purpose Language

(incrementally reduced)

E0

E1

E2

E3E4

E5

E6

En

Base Language

Extensible Languages enable integration of new language extensions

other Artifacts

Page 5: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Example Language Extension we extend mbeddr with unit testing

Page 6: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Code Generator generating an example program

Extension-Level

Base-Level

Page 7: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Extensible Language Debuggers

how we build them for mbeddr

Page 8: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Debugger Extensions in mbeddr debug information is lifted/mapped

• Languages contribute Debugger Extensions• mbeddr Debugger Framework

• meta-model, DSL and debugger runtime• Base-Level Debugger (GDB) used

Page 9: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

mbeddr Debugger debugging on extension-level

Page 10: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Building Debuggers in mbeddr lifting the call stack

lift stack frame name

Page 11: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Building Debuggers in mbeddr mapping stepping behavior

step-intostep-into

Page 12: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Debugger Extensions are written manually and therefore error-prone

testing is required …

Page 13: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Using a DSL to test Debugger Extension

the important requirements ..

Page 14: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

1. Test debugging behavior Program state, call stack, breakpoints & stepping

2. Reuse informationTest data, validation rules & structure of tests

3. Execute tests automaticallyIDE & build server

Requirements the important ones …

Page 15: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Using the Testing DSL we test step-into for Testcases …

Page 16: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Testing Debugger Extensions 1. annotate the program under test

Page 17: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Testing Debugger Extensions 2. specify an expected CallStack: after step-into

Page 18: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Testing Debugger Extensions 3. write the DebuggerTestcase

Page 19: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Testing Debugger Extensions 4. execute the test

Page 20: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Language Evolution your debugger extension will break …

Page 21: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Evolving the Testcase Generator prefix of generated C Function is changed

Extension-Level

Base-Level

Page 22: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Evolving the Testcase Generator debugger test fails

➜ Tests are fine, call stack construction is invalid!

Page 23: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

Evolving the Testcase Generator call stack construction fails

Debugger Extension must use different name:

Page 24: Testing Extensible Language Debuggers -  · PDF fileTesting Extensible Language Debuggers ... validation rules & structure of tests 3. ... Evolving the Testcase Generator

return „any Questions?“;