Title: Le
1Participants
Fast Spec-to-Test Project
University of Ottawa Mitel Corporation
- Leïla Charfi, Luigi Logrippo group
- (with RL Probert group)
- School of Information Technology and Engineering
- University of Ottawa
2Objectives
- The Problem
- Obtaining tests that cover the requirements
- Automatic functional test generation
- by developing automatic test purpose generation
from requirements - Use Case Maps (UCM) ? LOTOS
- Proposition of a design methodology with
automatic test suite generation - UCM at requirements stage
- LOTOS at design prototyping stage
- Automatic LOTOS test purpose generation from UCM
- Automatic test suite generation from LOTOS
3Design Methodology for Telecommunication Systems
Use Case Maps
Requirements stage
(1)
Mapping UCM to LOTOS statements
(2)
lotos2msc
LOTOS specification
LOTOS scenarios
Design stage
MSCs
msc2lotos
(3)
Input for possible SDL specification, ...
verification, validation and test suite generation
(4)
Test suites
Implementation stage
Test suite execution on Implementation
4Use Case Maps (UCM)
- Semi-formal notation, used at requirement stage
- Visual representation of systems behavior
- Derived from informal requirements or use cases
checkIfIdle
Idle
end point
busy
component
responsibility
or_fork
start point
stub
phoneA
phoneB
switch
checkCalleesStatus
offHook
dial
offHook
onHook
disconnection
Example of map simple call establishment
5LOTOS
Language Of Temporal Ordering Specification
- Formal Description Technique
- Design of telecommunication systems
- Validation tools interactive simulation
(step-by-step execution), validation using test
conformance on the specification - LOLA
- XELUDO
- CEASAR
- Test generation tools
- UCM2LotosTests LOTOS scenario generation from
UCM - TGV test suite generation from LOTOS scenarios
- TorX test generation and execution of test suites
6UCM to LOTOS mapping (1)
UCM elements LOTOS elements
map, component process stub start-point responsi
bility action end-point or-fork choice
operator and-fork parallel composition
7UCM2LOTOSTests (1) (2)
phoneB
phoneA
switch
offHook
checkCalleesStatus
checkIfIdle
dial
Idle
onHook
offHook
busy
disconnection
checkCalleesStatus
Test generation algorithm generates 2 scenarios
phoneA
switch
phoneA
phoneB
switch
offHook
offHook
checkIfIdle
dial
dial
checkIfIdle
Idle
busy
disconnection
onHook
offHook
UCM to LOTOS scenario transformation
Process Calle_Idle user_to_phone,
phone_to_user exit
Process Calle_Busy user_to_phone,
phone_to_user exit
user_to_phone !A !phoneA !offHook phone_to_user
!phoneA !A !dialTone user_to_phone !A !phoneA
!dial !B phone_to_user !phoneB !B !
ringTone user_to_phone !B !phoneB ! offHook (
user_to_phone !A !phoneA !onHook
phone_to_user !phoneB !B !disconnectTone
user_to_phone !B !phoneB !onHook
user_to_phone !A !phoneA !onHook
phone_to_user !phoneB !B !disconnectTone
user_to_phone !B !phoneB !onHook)
user_to_phone !A !phoneA !offHook phone_to_user
!phoneA !A !dialTone user_to_phone !A !phoneA
!dial !B phone_to_user !phoneA !A!
busyTone user_to_phone !A !phoneA !onHook
endProc
Aim covering the UCM with test cases
endProc
8Test Purpose (MSC format)
Message Sequence Chart
userA
debA
debB
userB
offHook
dialTone
Test purpose - Abstract description of a subset
of the specification - Tests the functional
behavior of the specification against its
expected behavior
dialB
ring
ringTone
offHook
answer
onHook
disconnection
onHook
9Test suite generation with TGV (3) (4)
Test suite generated from LOTOS using TGV
Test purpose
0
0
user_to_phone !A !offHook INPUT
user_to_phone !B !offHook (INCONCLUSIVE)
user_to_phone !A !offHook
2
1
1
phone_to_user !A !dialTone OUTPUT
phone_to_user !A !dialTone
user_to_phone !B !offHook (INCONCLUSIVE)
3
4
2
user_to_phone !A !dial !B INPUT
user_to_phone !A !dial !B
user_to_phone !B !offHook (INCONCLUSIVE)
5
6
3
phone_to_user !B !ringingOn OUTPUT
phone_to_user !B !ringingOn
7
4
phone_to_user !B !ringBackTone OUTPUT
phone_to_user !B !ringBackTone
8
5
user_to_phone !B !offHook INPUT
user_to_phone !B !offHook
9
6
phone_to_user !A !ringBackToneOff OUTPUT
phone_to_user !A !ringBackToneOff
user_to_phone !A !offHook (INCONCLUSIVE)
user_to_phone !B !onHook (INCONCLUSIVE)
10
11
7
12
user_to_phone !B !onHook INPUT
user_to_phone !B !onHook
user_to_phone !A !onHook INPUT
user_to_phone !A !onHook
8
13
11
14
phone_to_user !A !disconnectTone OUTPUT
phone_to_user !A !disconnectTone
phone_to_user !B !disconnectTone OUTPUT
phone_to_user !B !disconnectTone
9
15
12
16
user_to_phone !A !onHook
user_to_phone !A !onHook INPUT(PASS)
user_to_phone !B !onHook
user_to_phone !B !onHook INPUT(PASS)
18
10
17
10Conformance relation used by TGV
I implementation, S specification I ioconf
S ? ???traces(S), O(I after ?) ? O(S after ?)
S
I1
I2
switch? checkForward
switch? checkIfIdle
phone2! idle
phone2! busy
I1 ioconf S
I2 not ioconf S
The Implementation can have more inputs The
Specification can have more outputs
11Success to date and Lessons Learned
- Use of UCM to formalize requirements
- ? Automatic test generation with full coverage
of the UCM - (implying full coverage of the
requirements) - ? Easy derivation of a prototype using the UCM
to - LOTOS mapping
12Key Issues
- How to design UCMs so as to facilitate
requirement documentation and obtention of
meaningful test case - Automating as much as possible UCM to LOTOS
translation - More experience is needed...