iswim for testing
TRANSCRIPT
![Page 1: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/1.jpg)
1
ISWIM For Testing
–A Model Driven
Approach
Tony Clark
http://itcentre.tvu.ac.uk/~clark
![Page 2: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/2.jpg)
2
Overview
•A Requirement for Constraints:
–Telecomms
–Aerospace
–Business Migration
–Information Systems, SOA
•ISWIM Constraint Representation
•ISWIM for testing
•Conclusion
![Page 3: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/3.jpg)
3
Modelling with Constraints
![Page 4: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/4.jpg)
4
Telecomms
![Page 5: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/5.jpg)
5
Netw
ork
Models
Check configurations based
on properties of devices and
network components.
![Page 6: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/6.jpg)
6
Aerospace
Message Bus
Integrated Modular Avionics (IMA)
![Page 7: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/7.jpg)
7
IMA Models
Check configurations
of IMA components
that must satisfy
requirements of
navigation modes.
![Page 8: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/8.jpg)
8
Payload Configurations
![Page 9: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/9.jpg)
9
Business Processes
![Page 10: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/10.jpg)
©Xactium
Ltd
. 2007
10
Restructuring A Company
Restructure
Company
Produce
Plans
Implement
Plans
Produce
BizRep
Develop
Plans
Produce
Restructuring
Plan
Produce
Operating
Plan
Ditch
Unprofitable
Customers
Reorganize
products
Check sequences of company
snapshots –do they satisfy the
business goals?
![Page 11: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/11.jpg)
©Ltd
. 2007
11
Web Services and SOA
![Page 12: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/12.jpg)
©Xactium
Ltd
. 2007
12
Information Systems
![Page 13: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/13.jpg)
13
ISWIM Constraint Representation
![Page 14: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/14.jpg)
14
Constraints
•W
hat not to
be: O
CL, Java.
•Vis
ual la
nguage (w
hy?), w
ith e
xam
ple
s:
–Sim
ple
sta
te.
–Variable
s.
–And/O
r/N
ot
–Q
uantification
–Pre
dic
ate
s.
![Page 15: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/15.jpg)
15
Snapshots
•O
bje
cts
, slo
ts a
nd lin
ks.
•C
onte
xt m
ust be g
iven:
–Para
mete
rs
–R
oot obje
ct
–Self in s
tate
machin
e.
–O
bserv
ations in g
oals
.
•C
onju
nction o
f conte
nts
.
•N
egation.
![Page 16: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/16.jpg)
16
Snapshots as Constraints
not c.business_report.terminal and
c.restructuring_plan.addresses = c.business_report
![Page 17: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/17.jpg)
17
Sharing via Identifiers
(separation of concerns)
![Page 18: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/18.jpg)
18
Negation
…but not ...
![Page 19: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/19.jpg)
19
Unknowns Tied Together
…same as …
![Page 20: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/20.jpg)
20
Links Over Collections
![Page 21: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/21.jpg)
21
Universal Quantification
![Page 22: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/22.jpg)
22
Existential Quantification
![Page 23: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/23.jpg)
23
Snapshot Checking Machine
![Page 24: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/24.jpg)
24
Syntax Model
![Page 25: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/25.jpg)
©Xactium
Ltd
. 2007
25
An Execution Machine
![Page 26: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/26.jpg)
26
Machine Transitions
![Page 27: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/27.jpg)
27
Auxiliary Machine Defs
![Page 28: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/28.jpg)
28
An Im
ple
menta
tion –
ISW
IM for M
odel D
riven T
esting
![Page 29: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/29.jpg)
29
Testing Architecture
Program
Testing
Engine
Interface
(XML)
Test
Cases
(XML)
Test
Reports
(XM
L)
Program
Display
Test
Reports
(HTML)
Display
Test Cases
(HTML)
Model
(XMF-Mosaic)
Test cas
es includ
e:
•Static Sce
narios
•Dyn
amic Sce
narios
•Inv
ariants
•Pr
e/P
ost Con
ditions
•State
Mac
hines
C
B
A
DE
F
G
H
I
![Page 30: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/30.jpg)
A sales system keeps info on customers, accounts and their orders.
Customer ids (CID) are unique, but custotheir mer information may be distributed.
30
![Page 31: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/31.jpg)
31
Model Browser
A model is constructed that shows the
structure and behaviour of the
application.
The model could be extracted from
an implementation or could be
constructed by hand or could be
constructed from another modelling
tool.
The example shows the classes
extracted from a Java application.
![Page 32: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/32.jpg)
32
Test Specification
Each class may have:
•Static scenarios defining typical
configurations of instances. These may
be positive and negative examples.
•Invariants defining conditions that
must hold true at all times.
Each operation may have specifications
defining:
•Precondition defining an expectation of
the method.
•Postcondition defining a corresponding
guarantee if the precondition is satisfied.
![Page 33: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/33.jpg)
33
Static Scenarios
A static scenario defines a collection of
objects that conforms to the model.
The tool will support the construction of
the scenarios by completing slots and
links where possible.
Types of values can be checked by the
tool.
The scenario represents an
implementation independent definition of
application data.
It might represent a correct, or an illegal,
configuration.
The scenario can be exported in XML and
recreated as implementation data.
SomeContacts
![Page 34: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/34.jpg)
34
Example Invariant
For any sales system,
With a contacts database,
For each known person p,
It is not the case,
That the customer id value is
EMPTY.
NoEmptyCID
![Page 35: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/35.jpg)
35
Another Invariant
For any sales system,
With a contacts
database,
For each known
person p1,
With an id x,
It is not the case that,
There is a known
person p2,
With the id x,
Where p1 and p2 are
different people.
AllCIDsUnique
![Page 36: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/36.jpg)
36
addContact(String id,String info)
Pre-condition
Post-condition
![Page 37: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/37.jpg)
37
placeOrder(String id,int items)
post-condition
![Page 38: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/38.jpg)
©Xactium
Ltd
. 2007
38
Export as XML
![Page 39: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/39.jpg)
publicclassSalesSystem {
ContactsDB contactsDB= newContactsDB();
OrderSystem orderSystem= newOrderSystem();
publicvoidaddContact(String CID,String info) {
JTest test = JTest.startCall("test/SalesSystem","addContact",this,CID,info);
if(legal(CID)) contactsDB.addContact(CID,info);
test.endCall(null);
} publicvoidplaceOrder(String CID,intamount) {
JTest test = JTest.startCall("test/SalesSystem","placeOrder",this,CID,amount);
orderSystem.placeOrder(CID,amount);
test.endCall(null);
}}
39
Modify Source (or use class loader)
![Page 40: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/40.jpg)
40
A Test Harness
public
staticvoidmain(String[] args) {
SalesSystem sales =
(SalesSystem)JTest.build("test/SalesSystem", "SomeContacts");
JTest.startRecording("C:/testResults.xml");
JTest.checkInv("test/SalesSystem", sales);
sales.addContact("PERSON1","Fred is a sales manager.");
System.out.println();
sales.placeOrder("PERSON1",10);
JTest.stopRecording();
}
![Page 41: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/41.jpg)
©Xactium
Ltd
. 2007
41
Test Results
![Page 42: Iswim for testing](https://reader033.vdocuments.net/reader033/viewer/2022060115/557cca13d8b42a09218b50f6/html5/thumbnails/42.jpg)
42
Conclusion
•Constraints occur everywhere in modelling
•Constraints can be expressed as snapshots
(ISWIM).
•Constraints can be executed in various
ways to suit the solution.
•ISWIM-constraints can be implemented as
a tool for model driven testing.