Transcript Document
API Testing:
Category Partition Method
February 21-22, 2005
© 2005 SIPTECH
www.siptech.com
The Context
SIPTECH specializes in testing and optimization of
technology platforms and software products
based on Java.
API conformance testing for several components
of a mobile handset platform.
© 2005 SIPTECH
www.siptech.com
2
API Testing
Application Programming Interface (API) is a
collection of software procedures and functions
Two main requirements in testing an API are:
To test all functionalities
To obtain near 100% code coverage
© 2005 SIPTECH
www.siptech.com
3
Test Statistics
Total tests developed / modified
across Iterative cycles
Number of Iterative cycles
Defects unearthed so far
© 2005 SIPTECH
www.siptech.com
4888
18
557
4
Problem Statement
70% Code Coverage due to Heuristic approach
Time constraint due to Iterative cycle
Multiple specifications to comply with
Inconsistencies in the work products due to
subjectivity in test creation
© 2005 SIPTECH
www.siptech.com
5
Category Partition Method
Category Partition Method (CPM) is a systematic,
specification based method that uses partitioning to
generate functional tests for complex software systems
Assumption that defects are related to value
combination of various parameters and instance
variables
© 2005 SIPTECH
www.siptech.com
6
CPM Implementation
Method Interface arguments and abstract class
state that determine function’s response are
identified
Identify categories (equivalence classes) for each
of the parameter identified
© 2005 SIPTECH
www.siptech.com
7
CPM Implementation
Identify a specific test value (choice) for each
category – min boundary conditions
Identify constraints between choices
Enumerate all choice combinations
Fill out expected results for all combinations
© 2005 SIPTECH
www.siptech.com
8
Illustration
Class
:
FileFolder
Method
:
getEntries
Return
:
Entry [ ]
Parameters:
int startPosition must be >= 1
int length must be >= 0
Global
Exception :
© 2005 SIPTECH
:
Size of Folder must be >= 0
FolderException
www.siptech.com
9
Illustration
Parameter
Category
Choice
startPosition
n<1
0
1<=n<Size
1, n<Size, n=Size-1
n>=Size
n=Size, n>Size
n<=0
n<0, 0
0<n<=Size
1, n<Size, n=Size
n>Size
n=Size+1
n<0
-1
n=0
0
n>0
n
Length
Size
© 2005 SIPTECH
www.siptech.com
10
Empirical Analysis
TCDT = Effort for TCD / No of TCD
TCDT Vs Iteration
CPM Pilot
TCDT
0.6
0.4
0.2
0
1
2
3
4
5
Component 1
0.49
0.49
0.46
0.55
0.33
Component 2
0.32
0.38
0.41
0.32
0.23
Iteration
TCD – Test Case Definition; TCDT – Test Case Definition Time
© 2005 SIPTECH
www.siptech.com
11
Empirical Analysis
TCDRT = Effort for TCD Review / No of TCD
TCDRT Vs Iteration
TCDRT
0.3
CPM Pilot
0.2
0.1
0
1
2
3
4
5
Com ponent 1
0.22
0.2
0.21
0.21
0.096
Com ponent 2
0.14
0.15
0.18
0.13
0.08
Iteration
TCD – Test Case Definition; TCDRT – Test Case Definition Review Time
© 2005 SIPTECH
www.siptech.com
12
Empirical Analysis
Code Coverage
Code Coverage Vs Iteration
Code Coverage
CPM Pilot
100
80
60
40
20
0
1
2
3
4
5
Component 1
72
74
69
72
75
Component 2
81
83
80
82
84
Iteration
© 2005 SIPTECH
www.siptech.com
13
Empirical Analysis
Cost of Testing = Efforts / No of Defects
Testing Cost
Testing Cost Vs Iteration
80
60
40
20
0
CPM Pilot
1
2
3
4
5
Component 1
24
36.8
62.3
23.4
19.5
Component 2
31.8
27
73.5
33.5
21
Iteration
© 2005 SIPTECH
www.siptech.com
14
Limitations
Does not find performance, stress related defects
Size of the test suite
Subjectivity is reduced but still persists in
identifying categories or choices
© 2005 SIPTECH
www.siptech.com
15
Future Steps
Complementary technique to limit size
Create a repository of parameters mapped to
categories and choices
Provide user interface for repository
Automate choice combination for test suite
generation
© 2005 SIPTECH
www.siptech.com
16
THANK YOU…
M. Chandramouleswaran ([email protected])
R. Dhanasekaran ([email protected])
SIP Technologies and Exports Limited
G4, Elnet Software City, Taramani, Chennai 600 113, India.
Ph : 91-44-22541473/74; Fax: 91-44-22541475
Visit us at : www.siptech.com
© 2005 SIPTECH
www.siptech.com
17