Integration of Functional and Timed Testing of Real Time and

Integration of Functional and
Timed Testing of
Real Time and Concurrent
Systems
V. Kuliamin, A. Petrenko, N.!Pakoulin,
I.!Bourdonov, A.!Kossatchev
[email protected]
ISP RAS, Russia
Classic testing scheme
s1
stimulus
Test System
r1
s2
r2
reaction
s3
r3
Test =
Test sequence
s4
r4
s5
r5
Target System
Concurrency and real-time issues
stimulus1
stimulus
reaction1
reaction3
reaction





stimulus2
Target System
Multiple access points
Simultaneous inputs
Multiple reactions
Spontaneous reactions
Temporal constraints
reaction2
reaction
stimulus
reaction
Δt <= T0
Outline
Theoretical background
 Practical considerations
 Case studies

Proposed model
IOSM – Input/Output State Machine
?b
 States
S
!z
 Stimuli
X
?a
 Reactions R
!y
!x
 Transitions T
 φ : T → S×(X ∪ R ∪ {i})× S
Multiple
reactions
Internal
transition
Spontaneous
reaction
Empty stimulus
X = I ∪ {e}
Empty stimulus e models the knowledge of
system that it has no inputs
!x
!y
?a
?e
Asynchronous State Machine –
IOSM with empty stimulus
Behavior function
!x
!y
!x
?a
?e
?a
!y
B : X* → P (R*)
B : X* → P (R*)
ai ↦ { xi }
ai ↦ { yjxk…xlyn : k+…+l = i }
I.Burdonov, A.Kossatchev, V.Kuliamin. Asynchronous State Machines: Classification
and Applications to Testing. Proceedings of ISP RAS, Moscow, 2003. In Russian
Modeling parallel inputs
?a
?b
?{a,a}
?{a,a,b}
?{b,b}
?{a,b}
How to model responses
to all possible multistimuli?
?{a,b,b}
Plain concurrency : multistimulus is
equivalent to some sequence of the stimulus
contained
Outline
Theoretical background
 Practical considerations
 UniTesK
test development method
 Case
studies

 Modifications
for testing concurrent systems
UniTesK test construction
Behavior Model
Testing Model
✕
Target System
✕

Behavior Correctness
Checking
Test Input Construction
UniTesK test architecture
Test sequence construction
Test
Engine
Test
Test
sequence
Action
construction
Iterator
Test
Scenario
Specification

✕
Oracle
Mediator
Target
system
Example of specifications
specification int deposit ( int x )
{
pre
{
return x >= 0;
}
post
{
return balance == @balance + x;
}
}
Example of scenario
scenario class AccountTest
{
AcountSpecification model;
AbstractState getState()
{ return new IntState( model.balance ); }
scenario deposit()
{
iterate(int i = 0; i < 5; i++;) model.deposit(i);
}
scenario withdraw()
{
iterate(int i = 0; i < 5; i++;) model.withdraw(i);
}
}
Test sequence construction
Test
Engine
Test Action
Iterator
Modifications for testing concurrency

Specifications
 Asynchronous
reactions
 Temporal constraints

Testing
 Providing
parallel inputs
 Collecting reactions
 Checking the behavior as a whole
Specifying asynchronous reactions
specification reaction UDPPacket UDPResponse ( )
{
pre { return !ModelUDPPackets.isEmpty ( ); }
post
{
return
@ModelUDPPackets.clone().contains(UDPResponse)
&& !ModelUDPPackets.contains(UDPResponse);
}
}
Specifying temporal constraints
specification reaction UDPPacket UDPResponse ( )
{
pre { return !ModelUDPPackets.isEmpty ( ); }
post
{
return
@ModelUDPPackets.clone().contains(UDPResponse)
&& !ModelUDPPackets.contains(UDPResponse)
&& time –
@ModelUDPPackets.clone().time(UDPResponse)
<= 50*numberOfNodes;
}
}
Providing parallel inputs
s14
s24
s33
s13
s23
s12
s22
s11
s21
s32
Target
System
s31
Multisequence is used instead of sequence
of stimuli
Collecting asynchronous reactions
11
r11
Target
System
r21
21
31
r12
r22
12
r23
22
32
23
r31
r32
r33
33
Time
Reactions form a partially ordered set
Constructing model action series
Stimuli
Reactions
Plain concurrency axiom






✕

Modified test architecture
Test sequence construction
Test
Engine
Test Action
Iterator
✕
Synchronization
Manager
Serializer
Oracle
Mediator
Target
system

Reaction
Collector
Outline
Theoretical background
 Practical considerations
 Case studies

Case studies



Nortel Networks SOS – 1994-1996
 about 30 serious bugs found
MSR IPv6
– 2001-2002
 several serious bugs found
MS Mobile IPv6
– 2002-2003
References






http://www.ispras.ru/groups/rv/rv.html
I. Burdonov, A. Kossatchev, V. Kuliamin. Asynchronous State Machines:
Classification and Applications to Testing. Proceedings of ISP RAS,
Moscow, 2003. In Russian
V. Kuliamin, A. Petrenko, I. Bourdonov, and A. Kossatchev. UniTesK Test
Suite Architecture. Proceedings of FME 2002. LNCS 2391, pp.!77-88,
Springer-Verlag, 2002.
A. Petrenko. Specification-based Testing: Towards Practice. Proceedings of
PSI’01, LNCS, Springer-Verlag. v. 2244, pp. 287-300
V. Kuliamin, A. Petrenko, I. Bourdonov, A. Demakov, A. Jarov, A.
Kossatchev, S.!Zelenov. Java Specification Extension for Automated Test
Development. Proceedings of PSI'01. LNCS, Springer-Verlag. v. 2244, pp.
301-307.
A. Petrenko, I. Bourdonov, A. Kossatchev, and V. Kuliamin. Experiences in
using testing tools and technology in real-life applications. Proceedings of
SETT'01, India, Pune, 2001.
Thank you!