Conference Proceeding

Engineering Abstractions in Model Checking and Testing

Dept. of Comput. Sci., Univ. of Aarhus, Aarhus, Denmark
10/2009; DOI:10.1109/SCAM.2009.25 In proceeding of: Source Code Analysis and Manipulation, 2009. SCAM '09. Ninth IEEE International Working Conference on
Source: IEEE Xplore

ABSTRACT Abstractions are used in model checking to tackle problems like state space explosion or modeling of IO. The application of these abstractions in real software development processes, however, lacks engineering support. This is one reason why model checking is not widely used in practice yet and testing is still state of the art in falsification. We show how user-defined abstractions can be integrated into a Java PathFinder setting with tools like AspectJ or Javassist and discuss implications of remaining weaknesses of these tools. We believe that a principled engineering approach to designing and implementing abstractions will improve the applicability of model checking in practice.

0 0
 · 
0 Bookmarks
 · 
21 Views
  • Source
    Article: Testing object-oriented programs using dynamic aspects and non-determinism
    [show abstract] [hide abstract]
    ABSTRACT: The implementation of unit tests with mock objects and stubs often involves substantial manual work. Stubbed methods return simple default values, therefore variations of these values require separate test cases. The integration of mock objects often requires more infrastructure code and design decisions exposing private data. We present an approach that both improves the expressiveness of test cases using non-deterministic choice and reduces design modifications using dynamic aspect-oriented programming techniques. Non-deterministic choice facilitates local definitions of multiple executions without parameterization or generation of tests. It also eases modelling naturally non-deterministic program features like IO or multi-threading in integration tests. Dynamic AOP facilitates powerful design adaptations without exposing test features, keeping the scope of these adaptations local to each test. We also combine non-determinism and dynamic aspects in a new approach to testing multi-threaded programs using co-routines.

Full-text

View
0 Downloads
Available from

Keywords

abstractions
 
applicability
 
engineering support
 
falsification
 
implications
 
IO
 
model checking
 
principled engineering approach
 
real software development processes
 
state space explosion
 
tools
 
user-defined abstractions