100 likes | 189 Views
Behavioral Composition in Symbolic Domains. Wolfgang Grieskamp Nicolas Kicillof Colin Campbell Foundations of Software Engineering Microsoft Research, Redmond 10/2/2005 @ AOM 2005. Model-based testing at Microsoft. Success story approx. 1k users and growing Smart testers like modeling
E N D
Behavioral Composition in Symbolic Domains Wolfgang Grieskamp Nicolas Kicillof Colin Campbell Foundations of Software Engineering Microsoft Research, Redmond 10/2/2005 @ AOM 2005 W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains
Model-based testing at Microsoft • Success story • approx. 1k users and growing • Smart testers like modeling • Backdoor entry • Models given as • Plain state machines • Model programs (abstract state machines) W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains
Model-based testing with Spec Explorer Spec Explorer [ISSTA02, FATES03, QSIC03, ISSTA04, FATES05, FSE05,…] supports analysis and conformance testing of concurrent systems with model programs Modeling (in Spec# or AsmL) Model Program Exploration & Scenario control State Graph Test Generation Test cases Test Execution Coding Implementation Pass/Fail W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains
Users want more! • Notational diversity • Models in state-based and interaction-based paradigms • Models as diagrams and in textual notations • Compositionality • Combining feature models • Merging aspect models (like test purpose) • Analyzability • Property checking • Refinement checking • Doing this independently or in composition W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains
Addressing the requirements: Action Machines • Language-agnostic representation of behavior • Represent various modeling styles (state-based, scenario-based) as well as programs uniformly • Allow for many composition types • Product, alternating simulation, substitution, etc. • Incorporate symbolic state and computation • Allow for partial, aspect-oriented models • Allow to close environment symbolically (e.g. parameters to method calls) W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains
Example of basic action machines: Abstract State Machines • Methods describe state transitions (Spec Explorer methodology) • State can be symbolic • Parameters of method invocations can be symbolic int count; [Action]bool Add(int x){ requires x >= 0; if (x < 10){ count += x;return true; } elsereturn false;} count := v S0 0 >= u & u < 10:Add(u)/true 0 >= u & !(u < 10): Add(u)/false S1 S2 count:=v+u count:=v W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains
Example of basic action machines:Scenario machines • Control-flow oriented description of behavior • Invocations to designated actions “abstracted” • Can use symbolic parameters, choices [Action] Client.Enter();[Action] Client.Send(object msg);[Action] Client.Recv(object msg); [Scenario] void S(){ Client c = Any<Client>; c.Enter(); while (Any<bool>) c.Send(Any<object>); while (Any<bool>) Any<Client>.Recv(Any<object>);} S0 v.Enter() S1 v.Send(_) _.Recv(_) S2 _.Recv(_) W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains
Compound Action Machines:Product • Contains steps both machines can do • Unification of symbolic state part • Can be used for • Scenario control (restrict behavior) • Property checking (one machine is the “anti-machine” and the product is empty if the property holds) B() C() A(v) A(u) A(1) X = v > 0 u <= 1 u = vv > 0u <= 1 W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains
More composition operators • Process algebra • Product, interleaving, renaming (translation) • Temporal logics and regular expressions • Sequencing, repetition, joker, … • Refinement • Alternating simulation (conformance notion of Spec Explorer) • AOM • Substitution W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains
Conclusion • Notation independence achieved • We plan to combine action machines with VS DSL tools/software factories • Model-checking and model-based testing possible • benefiting from strict semantics • No difference between a “main” model and an “aspect” model • the later is just more partial • Symbolic state exploration is key technology • helps us to naturally describe and analyze partial models and model compositions W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains