Download - Copy of Out-LineofMyPPT
DESIGN AND DEVELOPMENT OF AUTOMATION FRAMEWORK FOR TESTING OF ICMMS
Internship : Verisign Inc., (now Syniverse)
BYVENKATA VINEEL YALAMARTHYBS Computer ScienceBIRLA INSTITUTE OF TECH. AND SCIENCESPILANI
MentorRamesh K VelampalayamSenior ManagerQuality Assurance Syniverse Inc.,Bangalore
ManagerAjith Kumar VivekEngg., ManagerSyniverse Inc.,Bangalore
Agenda● ICMMS introduction●Manual Testing●Approach for Automation●Method and Technology used●Future directions..
ICMMS● Inter Carrier Multi-Media Mobile Messaging Services● MMS– Multi-Media Messaging Service● STORE and FOREWARD messaging service ● Allows mobile subscribers to exchange multi-media
messages● Allows sending messages to multiple recipients● Depends on Mobile Phone.(Compatibility)
Challenges with MMSICMMS provides Value Added Services
●Content Adaptation●Connectivity among Carriers●Prefix-Handling●Billing
Connectivity:●Provides single point of connectivity among carriers●Reduces effort spent in Routing to a great extent
Content Adaptation:●Content created by one mobile may not be
compatible with some other carrier’s mobile phones..
Eg..Image Resizing,Audio Codec Transcoding etc…
Current Approach
● Quality Assurance Team of ICMMS -Testing Manually
● Regression-with minimal changes, the Test-cases are tested periodically
Steps in Manual Testing
● Pick-up a test-case from Test-Link(TM)● Set-up ● Execute...involves invoking SMTP client and
sending an MM4 message ● Roll-back● Examining Log files and Data -Bases for patterns● Comparing against expected values● Report accordingly
Our approach
● Test-Repository-...Like Test-Link(TM) ● Configuration Data to hold meta-Data of file
resources and Net-work and Data Bases ● for Set-up, properties files need to be over-ridden with
the required properties ● SMTP client -To send the Message● ●
Configuration Data
● Java Home,ICMMS Home● Host, Port ● File Resources – {Path,Desc}● Data Bases {Name,Access Details, driver}● Network-Resources {Name ,Host ,Port}● Test-Plan {List of Test Cases to be executed in a particular Run}● List of Test Cases nested inside Components ,nested in List of
Categoriescategory{component…..{Test-case ID’s} }
<Config> <Java Home> </JavaHome> <ICMMS Home> </ICMMS Home> <File-Resources> <File-Resource> <Name> </Name> <id> </id> </File-Resource> <File-Resources> <Network-Resources> <Network-Resource> <Host =" " port= " " Name="SmtpServer"/> </Network-Resource> <Network-Resources> <Data-Base> <Name> </Name> <Id> </id> <UsrName> </Usrname> <Driver> </Driver> <Passwd> </Passwd> </Data-Base></Config>
<Test-Plan> <Category> <Name> </Name> <Components> <Component Name = " "> <include> 1, 4-8 ,10 </include> </Component> <Component Name= " " > <include> 2-8 </include> </Component> </Components> </Category></Test-Plan>
Test-Repository● ID (Unique Identification Number)● Desc ● State-Related Data
{Initial Properties File, Expected Properties Files}● Data Related to Validation from Files
{File name, List of Patterns ,and Tokens required, VARIABLE names to be assigned}
● Data-Related to Data – Base Validation{Data Base Name, List of SQL tasks to be performed, VARIABLE names to be assigned}
● Goals:{Variable Name, Operation, Expected Value}.
Test-Cases<Test-Cases> <Categories> <Category Name= " " > <Components> <Component Name=" " Id=" " > <TestCase>........</TestCase> <TestCase>...... </TestCase> </Component> </Components> </Category> <Categories> </Test-Cases>
Test-case <ID> </ID> <Desc> </Desc> <Data File> MM4 message </Data File> <Override> <Initial Properties> </Initial Properties> <Final Properties> </Final Properties> </Override> <Validation> <Filevalid Name= " " > <pattern> message status </pattern> <before> : </after> <after> " </after> <assign> VARIABLE1 </assign> <Filevalid> <Databasevalid Name= " " > <SQL task> </SQL task> <assign> VARIABLE2 </assign> </Databasevalid> <Goals> </Goals>
</Validation>
Goals<Goal> <lhs> VARIABLE1 </lhs> <Op> "Greater" </Op> <rhs> 789 <rhs> </Goal><Goal> <lhs> VARIABLE2 </lhs> <Op> "=" </Op> <rhs> MESSAGE SENT </rhs></Goal><Goal> <lhs> VARIABLE3 </lhs> <Op> isContains </Op> <rhs> SPRINT, ROGERS </rhs> <Goal>
VARIABLE1 67VARIABLE2 789VARIABLE3 SENTVARIABLE4 FAILEDVARIABLE5 302
After sending the Message Log Files and Data Bases would be updatedNow these Variables are collected and assigned to the Variable names as Mentioned and Kept in a TABLE like Structure
Final Step in Automation:
Pick Up a Goal from the Test-case
Let Operation be a Function f(x)
Now Check
f(Variable) == Expected Value
if true) Test case is Validated
else Test-Case is Failed
Java
●Apache tools map XML-> Java Objects●Hash-map – To Represent Table Java.util.HashMap●provides functions to manipulate Key-Value pairs●Java.Util.ArrayList is used to hold lists of test-
cases, goals etc..
Mapping of XML to Java Objects
XML JAVA OBJECTS
Example:
<student>
<Name> satyam saxena</Name>
<Id> 2006A7PS011 </Id>
<cgpa> 9.5</cgpa>
</student>
Public class Student{
private String name;
private String Id;
private long cgpa;
public getName()
public getId()
public getCgpa()
public void setName(String name)
public void setId(String id)
public void setCgpa(long cgpa)
}
loadConfig();loadTestRepository();while(there are more Categories in Test Plan){ while(there are more components in the Category){ while(there are more TestCases in the Compoenet){ TestCase t = pickUpfromTestRepository();t.setUp();t.execute();t.rollback();t.validation();t.reportTest(); }}}
PSEUDO-CODE
TEST-CASESCONFIG
AUTOMATIONRUNNER
SMTP CLIENT
SMTP SERVER
ICMMS
logfiles
test case objects
config objects
file validation
Message File
Data Base Validation
Current-Status
● Implementation and Testing of all the Individual Compoenents are over
● Task-Left: To connect an SMTP server and route an MM4 message
● Estimated Time :2 working days