Testing Tools Software Quality: Technical: Meeting Customer Requirements Meeting Customer Expectations (User friendly, Performance, Privacy)
Non-Technical: Cost of Product Time to Maret
Software Quality Assurance: To monitor and measure t!e strengt! of development process, "rganisation follo#s $%& concepts'
Software Project: $oft#are related prolems solved y soft#are engineers t!roug! a soft#are engineering process'
Life Cycle Developent !LCD": nformation *at!ering
&nalysis
+esign
Coding
Testing
Maintenance
Testing: erification - alidation alidation of o f soft#are is called testing' testing '
&ish 'o(el of Software Developent: LCD
Analysis
)nforation *athering !#+S"
Design
$./ R$ (0R$ 1 $R$)
22+3s
Co(ing
'aintenance
Syste Testing Programs #lac$ #o% Testin
LCT +eviews
+eviews ,hite #o%
Test Te st S, S , Change Prototype Testing
.erification
.ali(ation
#usiness +e/uireent Specification !#+S-)nforation *athering": 4R$ defines requirements of t!e customer to e developed as a soft#are' T!is type of documents developed y usiness analyst category people'
Software +e/uireent +e/uireent Specification !S, +S": T!is document defines #'r't 4R$' T!is document consists of functional Requirements to develop (0R$) - $ystem Requirements to use ($R$)' T!is document also developed y usiness analyst people only'
+eviews: t is a static testing tec!nique to estimate completeness and correctness of a document'
Design 0igh Level Design Docuent !0LD": T!is document is also no#n as external design' T!is document defines !ierarc!y of all possile functionality3s as modules'
Low Level Design Docuents !LLD1s": T!is document is also no#n as internal design' T!is document defines structural logic of every su module'
Example5 +0+6+ata 0lo# +iagram, E6R +iagram, Class +iagram, "7ect +iagram'
Prototype: $ample model of an application #it! out functionality is called Prototype' Ex5 Po#er point slide s!o#'
Co(ing: ,hite #o% Testing: t is a coding level testing tec!nique' +uring t!is test, test engineers verifies completeness and correctness of every program' T!is testing is also no#n as *lass 4ox Testing or Clear 4ox Testing'
Syste Testing: #loc$ #o% Testing: t is a uild level testing tec!nique' +uring t!is tests, testing team validates internal functionality depends on external inter p!ase'
. 2 'o(el of S, Developent: 8 $tands for erification - alidation' T!is model defines mapping et#een development stages - Testing $tages' Developent Testing +evelopment Plan .f gat!ering - &nalysis
+esign Coding
66&ssessment of +evelopment plan
66 Prepare Test Test Plane 66 Requirements p!ase testing 66 +esign P!ase Testing Testing 66 Program P!ase P!ase Testing Testing (/4)
66 0unctional - $ystem Testing(44) nstall 4U2+
66 User &cceptance Testing Testing 66 Test +ocumentation 66 Port Testing Testing
Maintenance
66 Test Test $./ C!anges 66 Test Test Efficiency +RE 9 & . (&14)
Defect +eoval 3fficiency !D+3": t also no#n as +efect +eficiency'
D+3 4 A !A5#" /!ere & 9 :o of defects found y testing teem during testing process' 4 9 :o of defects found y customer during Maintenance'
+efineent &or of . 2 'o(el: 0or medium scale and small6scale organisations 8 Model is expensive to follo#' 0or t!is type of organisations, some refinements required in 8 Model to develop quality $oft#are' 4R$ . UR$ . CR$
User &cceptance Testing Testing
Revie#s 0unction - $ystem Testing Testing (44 Testing Testing))
$./ R$
<2+
Revie#s
ntegration Testing Testing
/!ite 4ox Testing
22+3s
Unit Testing
Coding 0rom t!e aove refinement form of 6Model, $mall - Medium scale organisations are maintaining separate testing team for functional - $ystem testing stage to decrease cost of testing'
)" +eviews During Analysis: n general, soft#are development process starts #it! information gat!ering and analysis' n t!is stage usiness analyst category people are developing 4R$ and $./ R$ lie documents' 4R$ defines requirements of t!e customer - $./ R$ defines functional requirements to e developed and system requirements to e used' &fter &fter complet completion ion of t!is t!is type type of documen documents ts preparat preparation, ion, t!ey are conducting conducting revie#s revie#s on t!e documents for Completeness - Correctness' n t!is revie# analysts are using elo# factors5 &re t!ey complete; &re t!ey met requirements; (#'r'tt Tec!nology) &re t!ey ac!ievale; (#'r' &re t!ey reasonale; (#'r't time - cost) &re t!ey testale;
))" +eviews During Design: &fter completion completion of analysis analysis and t!eir revie#s, our pro7ect level design #ill start logical design of application in terms of external - internal design (<2+, 22+3s)' n t!is stage t!ey are conducting revie#s for completeness and correctness of design documents' n t!is revie# t!ey are using elo# factors' &re t!ey understandale; &re t!ey met rig!t requirements; &re t!ey complete; &re t!ey follo#ale; +oes t!ey !andle Errors;
)))" 6N)T T3ST)N*: &fter completion of design - t!eir revie#s, programmers #ill start coding to p!ysically convert soft#are' +uring t!is coding stage programmers are conducting unit testing t!roug! a set of /!ite 4ox Testing Tec!niques' T!is unit testing is also no#n as Module Testing or Component testing or Program Testing or Micro Testing' Testing' T!ere are t!ree possile /!ite 4ox Tec!niques' 78 3%ec 3%ecut utio ion n Te Testin sting: g: 4asis pat!s coverage (Execution of all possile locs in a program)' 2oops Coverage (Termination of loops statements)' Program tec!nique coverage (2ess no of memory cycles - CPU cycles)'
98 p per erat atio ions ns Te Testin sting: g: Run on customer expected platforms ("$, 4ro#ser, Compiler etc')'
;8 'uta 'utati tion on Testin sting: g:
t means t!at a c!ange in program' /!ite 4ox Testers are performing t!is c!ange in program to estimate test coverage cov erage on t!e program' Tests
Retests
C!ange
Pass 0ail (Complete
Tests
Retests
C!ange
Pass Pass Testing)
(ncomplete Testing)
)." )ntegration Testing: &fter completion of dependent modules development and testing, programmers are comined t!em to form a system' n t!is ntegration, t!ey are conducting ntegration testing on t!e coupled modules #'r't' <2+'
T!ere are t!ree approac!es to conduct integration testing' 78
Top Top 2 Down Approach:
Conduct testing testing on main module #it! out coming to some of t!e su modules is called Top6+o#n Top6+o#n &pproac!' Main $tu
$u =
$u >
0rom t!e aove model, stu is a temporary program instead of under construction su module' t is also no#n as called program' 98
#otto 2 6p Approach:
Conduct testing on su modules #it! out coming from main module is called 4ottom 8 Up &pproac!' &pproac!' 0rom t!e aove model, +river is a temporary program instead of main module' T!is program is also no#n as calling program' Main +river $u =
;8
$u >
San(wich Approach:
T!e comination of Top 8 +o#n and 4ottom6UP approac!es is called $and#ic! &pproac!' Main +river $u = $tu $u >
$u ?
#6)LD:
& finally intigrated all modules set 'E@E form is called 4uild'
." &unctional < Syste Testing:
&fter compleation of final integration of modules as a system, test engineers are planning to conduct 0unctional 0unction al - $ystem Testing t!roug! 4lac 4ox Testing Tec!nique' Tec!nique' T!ease tec!niques classified in to four Catageries' =' >' ?' A'
Usail Usa ilit ity y Te Testin sting g 0unct 0unction ional ality ity Testing sting Perfo Perform rmanc ancee Testing sting $ecu $ecuri rity ty Testin sting g
Core 2evel
&dvanced 2evel
+uring Usaility Testing, testing team validates 6ser &rien(liness of screens' +uring 0unctionality Testing, testing team validates Correctness of Custoer +e/uireents ' +uring Performance Testing, testing team estimates Spee( of Processing ' +uring $ecurity Testing, testing team validates Privacy to 6ser perations '
78 6sa=il 6sa=ility ity Testing: sting: n general testing team starts test execution #it! Usaility testing' +uring t!is test, testing team validates 6ser &rien(liness of screens of uild' +uring Usaility Testing, testing teams are applying t#o types of su tests' a" 6ser 6ser )nter )nterfac facee Te Test !6)": !6)": Ease of use ( Understandale $creens) 2oo - 0eel ( &ttractive or pleasantness) $peed nterface ( 2ess no of events to complete a tas)
=" 'anua 'anuals ls Suppo Support rt ttes estin ting: g: Context sensitiveness of user manuals'
Receive 4uild from developers
U Testing Usaility Testing Rema Remain inin ing g $yst $ystem em Tests sts
Manuals
$upport Te Test
9" &unctional &unctional Testing: sting: & ma7or part of 44 testing is 0unctional Testing' +uring t!is test testing team concentrate on 'eet Custoer +e/uireents ' T!is functional testing classified into elo# tests' a" &unctiona &unctionality lity or +e/uir +e/uireen eents ts Te Testing: sting:
+uring t!is test, test engineer validates Corrections of every functionality in terms of elo# coverage3s' 4e!avioral coverage ( C!anges in o7ect properties )
nput(i.p) +omine coverage ( $iBe and type of every input o7ect) Error6
=" )nput )nput Doin Doinee Te Testing: sting:
t is a part of 0unctionality Testing' Test engineers are maintaining special structures to define siBe and type of every input o7ect' #oun(ary .alue Analysis #.A! +ange Si>e ":
Min Min 8 = Min 1 = Max Max 6 = Max 1 =
66 Pass 66 0ail 66 Pass 66 Pass 66 Pass 66 0ail
3/uivalence Class Partitions 3CP !Type":
.ali(
)nvali(
Pass
0ail
3%aple7: & login process allo#s user + and Pass#ord to validate users' User + allo#s &lp!a :umerics in lo#er case from A to =F c!aracters long' Pass#ord allo#s alp!a its in lo#er case A to G c!aracters long' Prepare 4& 4& and ECP for user + and pass#ord' pass#o rd' 6ser )D #.A A 8 pass ? 8 fail H 8 pass =F 8 pass =H 8 pass =I 6 0ail Passwor( #.A A 8 pass ? 8 fail H 8 pass G 8 pass I 8 pass D 6 0ail
3CP .ali( a to B to D
3CP .ali( a to B
)nvali(
& to $pecial c!aracters 4lan
)nvali(
& to to D $pecial c!aracters 4lan
3%aple 9: Prepare 4& - ECP for t!e follo#ing follo#in g text ox' & text ox allo#s => digit numers along #it! J as mandatory and sometimes it allo#s 8 also'
#.A Min 9 Max 9 => 8 pass == 8 fail =? 6 0ail
3CP .ali( to D #it! J to D #it! J, 6
)nvali(
& to a to B to D $pecial c!aracters ot!er t!an J, 6 4lan
c" +eco +ecove very ry Te Testin sting: g:
t is also no#n as reliail reliaility ity testing testing'' +uring +uring t!is test, test engineer engineerss validat validates es #!et!er #!et!er t!e application c!ange from anormal state to normal state' :ormal &normal
:ormal
Using 4acup - Recovery
(" Copat Copati=i i=ilit lity y Testi Testing: ng:
t is also no#n as portail portaility ity Testin Testing' g' +uring +uring t!is test, testing testing team validat validates es #!et!er #!et!er our application uild run on customer expected platform ("$, Compiler, 4ro#ser and ot!er system soft#are) are not;
4uild
"$
0or#ard Capaility
4uild
"$
4ac#ard Capaility
:ote5 +uring testing, test engineers eng ineers are finding 4ac#ard 4ac#ar d capaility defects as a s maximum' e" Config Configura uratio tion n Te Testing: sting:
t is also no#n as !ard#are compatiility testing' testing' +uring t!is test, testing team validates validates #!et!er #!et!er our application uild supports different tec!nology !ard#are devices are not; E@5 +ifferent types of 2&:s, different topologies, different tec!nology printer3s etc' f" )nte )nterr Syst Syste e Te Testin sting: g:
t is also no#n as end to end testing' +uring t!is test, testing team validates #!et!er our application uild co6existence #it! ot!er existing soft#are3s are not;
To s!are resources
E4+ /4&
$erver 2ocal +4
T4& T& :e# $erver
:e# &pplication &pplication
g" )nstal )nstallat lation ion Testing: sting:
+uring t!is test, testing team validates installation of our application uild along #it! supported soft#are3s into customer site lie configured systems' +uring t!is test, testing team oserve elo# factors5 $etup program execution to start installation' Easy interface during installation' "ccupy dis space after installation'
h" Parall Parallel el Testing: sting:
t is also no#n as comparative testing and applicale to soft#are products only' +uring t!is test, testing team compare our application uild #it! competitors products in t!e maret' i" Sani Sanita tati tion on Testin sting: g:
t is also no#n as garage testing' +uring t!is test, testing team try to find extra features in our application uild #'r't customer requirements' Defect:
+uring testing, testing team reports defects to developers in terms of ello# categories' Mismatc! et#een expected and actual' Missing functionality'
functio nality #'r't #'r't CR$' Extra functionality /!en defects are accepted y development team to solve, t!ey called defects as 4U*3s' $ome times defects are no#n as issues' +efects raise in application due to errors in coding
;" Perforan Perforance ce Testing: sting: t is an advanced testing tec!nique and expensive to apply ecause testing team !ave to create !uge environment to conduct t!is testing' +uring t!is test, testing team validates Spee( of Processing8 +uring t!is performance testing, testing team conduct elo# su tests' a" Loa( Loa( Testin sting: g:
T!e execution of our application under customer expected configuration and customer expected load to estimate performance is called 2oad Testing'
=" Str Stres esss Testing: sting:
Executi Execution on of our applicat application ion under under custome customerr expecte expected d configu configurati ration on and uninterv uninterval al load3s load3s to estimate performance is called stress testing' c" Stor Storag agee T Teestin sting: g:
T!e execution of application under !uge amounts of resources to estimate storage limitations is called $torage Testing' Testing' #rea$ 3vent Analysis
e c n
T!res!old Point
a m r o f r e P
Resources E@5 M$6&ccess > *4 dataase as maximum' (" Data .olue Testing: sting:
T!e execution of our application application under customer expected configuration to estimate pea limits of data is called data volume testing'
?" Sec Securi urity ty Testi Testing: ng: t is also an advanced testing tec!nique and complex to conduct' +uring t!is security testing, testing team validates Privacy to 6ser perations ' +uring t!is test, testing team applies elo# su tests' a) &ut!ori &ut!oriBati Bation on (/!et!e (/!et!err user is &ut!o &ut!orise rised d are not ) ) &ccess Control (/!et!er valid user !ave permission to specific s pecific service or not) c) Encryption.+ec Encryption.+ecryption ryption (+ata (+ata conversion conversion in et#een et#een Clint Clint process process and $erver $erver process) process)
Clint
+ecryption
Encryption
$erver
+ecryption Encryption
:ote5 n small and medium scale organisations, test engineers are covering &ut!oriBation and &ccess &ccess Contro Controll during during functio functional nal testin testing' g' Encryp Encryption tion and and decrypt decryption ion proces processs covered covered y development people'
.)" 6ser Acceptance Testing !6AT": &fter completion of 0unctional - $ystem testing, organiBation invites customer site people to collect feedac' T!ere are t#o met!ods to conduct U&T suc! as α test and β test' T3ST $oft#are applications 4y real customers n development site
T3ST $oft#are products 4y customer site lie people n customer site lie environments Collect 0eed 4ac
.))" Testing During 'aintenance: &fter completion of User &cceptance Test and t!eir modifications, management concentrates on release team formation' T!is team consists of fe# developers, fe# testing - !ard#are engineers' T!is team conducts Port Testing )n Custoer Site ' +uring t!is test, release team validates elo# factors' Compact nstallation "verall functionality .P +evices !andling ".P +evices !andling "$ error !andling $econdary storage !andling Coexistence #it! ot!er soft#are
&fter completion of port testing, release team provides training sessions to customer site people and comes ac' +uring +uring soft#a soft#are re mainten maintenance ance custome customerr site site people people are sending sending C!ange C!ange request request (CR) to t!e organiBation' Change +e/uest +e/uest !C+"
CC# !Change Control #oar("
En!ancement
Missed +efect
mpact &nalysis
mpact &nalysis
Perform C!ange
Perform C!ange
Test $oft#are C!ange
C!ange Test Process
Testing Te sting Terinology: 78 'on$ey 'on$ey Te Testing Chipan>e Chipan>eee Te Testing: sting:
& tester conducts any test on asic functionality3s of application' 98 3%plor 3%plorato atory ry Testing: sting:
2evel y level of functionality3s coverage is called exploratory testing' ;8 Sanity Sanity Te Testing: sting:
t is also no#n as Tester &cceptance Testing (T&T) or 4uild erification Test (4T)' &fter receiving uild from development team, testing team estimates staility of t!at uild efore starts testing' ?8 So$e So$e Testing: sting:
t is an extra s!aeup in sanity process' n t!is test, tester try to troule s!oots #!en t!at uild is not #oring efore start testing' @8 #ig #ang Te Testing:!)n sting:!)nfora forall Testing Testing - Single Single Stage" Stage"
& testing team conducts single stage testing, after completion of entire system development instead of multiple stages' 8 )ncre )ncreen ental tal Testing: sting:
& multiple multiple stages of testing process from unit level to system level is called incremental incremental testing' t is also no#n as formal testing' B8 'anu 'anual al .s .s Aut Auto oat atio ion: n:
& tester tester conducts any test on application uild #it!out using any Testing Testing tool . $oft#are $oft#are is called manual testing' & tester conducts a test on application uild #it! t!e !elp of Testing tool . $oft#are is called &utomation testing' n comm common on testi testing ng proce process, ss, test test engin engineer eerss are are using using test test &utom utomat ation ion #'r't test test m mpac pactt and Critic Criticalit ality y' mpact mpact means means t!at test repetit repetition ion - Critic Criticalit ality y means means t!at complex complex to apply apply test test manually' +ue to t!ese t#o reasons, testing people are using test &utomation'
8 +e-T +e-Teestin sting g:
T!e re6execution of a test #it! multiple test data to validate a function is called Re6Testing' Ex5 To validate multiplication, test engineers use different comination of inputs in terms of Minimum, Maximum, nteger, 0loat, 1ve and 8ve ect'
8 +egress +egression ion Testing: sting:
T!e re6execution re6execution of tests on modified uild to ensure ug fix #or and occurrences of side effects called Regression Testing (Previously failed test and previously related passed tests)' :ote5 =) Re6Testi Re6Testing ng on same same uild - regression regression testing testing on modified modified uild uild ut ot! are indicati indicating ng re6 execution' >) 0rom t!e definitions definitions of Re6Testi Re6Testing ng and Regression Regression Testing, Testing, test repetition repetition is mandatory mandatory in test engineer 7o' +ue to t!is reason test engineers are concentrating on test &utomation' 7E8 3rrorF 3rrorF Defect Defect an( #ug:
& mistae in code is called Error' +ue to errors in coding, test engineers are getting mismatc!es in application called defects' f defected accepted y development to solve called 4ug'
,)N+6NN3+ 2 B8E +eveloped y Mercury nteractive
Testing To Tool ol 0unctionality Testing 11 $upports Client . $erver, /e applications ( '4, C , Kava, Po#er 4uilder, +>L, +elp!i,
T3ST P+C3SS: 2earning
Record $cript Edit $cript Run $cript
78 Learning:
&nalyBe $cript
Recognition of o7ets /inRunner is called learning' /inRunner I' supports auto leaning'
and
#indo#s
in
application
y
98 +eco +ecor( r( Scri Script pt::
Test engineer creates automated test script to record our usiness operations' /inRunner record manual test operations in T$2 (Test $cript 2anguage) lie as CN' ;8 3( 3(it it Scrip ript:
Test engineers are inserting required c!ec points into t!e record script' ?8 +un Sc Script:
+uring test execution, test engineers run t!e script instead of manual testing' @8 Anal Analy> y>ee +esu +esult lts: s:
+uring automation script execution on application uild, /inRunner returns results in terms of passed - failed' +epends on t!at t! at results, test engineers are concentrating on o n defect tracing'
:ote5 /inRunner /inRunner only run on #indo#s family operating systems' f #e #ant to conduct functionality testing on application uild in Unix, 2inex platform, #e can use @runner CAS3 ST6DG: Login U+
Expected5 "L
P /+
utton enaled after filling U+ - P/+' "L
'anual
Process:
0ocus to login "L +isaled Enter U+ "L +isaled Enter P/+ "L Enaled Autoation Process:
setO#indo#(loginN, H) uttonOc!ecOinfo("LN, uttonOc!ecOinfo ("LN, enaledN, ) editOset(U+N, xxxxN) uttonOc!ecOinfo("LN, uttonOc!ecOinfo ("LN, enaledN, ) pass#ordOeditOset(P/+N, pass#ordOeditOset( P/+N, encrypted P/+N) uttonOc!ecOinfo("LN, uttonOc!ecOinfo ("LN, enaledN, =) uttonOpress("LN)
Test Script : &n automated manual test program is called test script' T!is program consists of t#o types of statements suc! as :avigational statements to operate pro7ect and C!ec points to conduct testing'
A((-)n 'anager !,in(ow": t lists out all possile supported tec!nologies y /inRunner to conduct testing'
,in+unner )cons: 78
$tart Recording Run from top
98
Run from point'
;8 ?8
Pause
+ecor(ing 'o(es: /inRunner /inRunner records manual operations in t#o types of modes suc! as Context $ensitive $ensitive Mode and &nalog Mode' a" Conte Conte%t %t Sensi Sensitiv tivee 'o(e 'o(e::
n t!is mode /inRunner records mouse and eyoard operations #'r't o7ects and #indo#s in application uild' t is a default mode in /inRunner' 0ocus to #indo#
→
setO#indo#(#indo# nameN, time to focus)
Clic pus! utton
→
uttonOpress(utton uttonOpress( utton nameN)
0ill edit ox
→
editOset(text oxN, typed textN)
0ill pass#ord
→
pass#ordOeditOset(pass#ordN, pass#ordOeditOset( pass#ordN, encrypted pass#ordN)
$elect item in list
→
listOselectOitem(list ox nameN, itemN)
$election option in menu
→
menuOselectOitem(menu name option nameN)
Radio utton
→
uttonOset(radio uttonOset(radi o utton nameN, ":."00)
C!ec ox
→
uttonOset(c!ec uttonOset(c!ec ox nameN, ":."00)
:ote5 T$2 is a case sensitive language and it allo#s entire scripting in lo#er case ut maintains 0lags in upper case'
=" Anal Analog og 'o(e 'o(e::
To record record mo mouse use pointe pointerr mo movem vement entss #'r't r't desto destop p coord coordina inate tes' s' /e can can use t!is t!is mo mode de in /inRunner' E@5 +igital $ignature, *rap!s dra#ing and image movements' To select &nalog mode recording in /inRunner ello# possiilities can e used' Clic $tart Recording Record ing T#ice
↓ Create menu → Record &nalog :ote 5
=' n analog mode mode /inRunn inRunner er records mouse mouse pointer pointer mov moveme ements nts on t!e destop destop #'r' #'r'tt destop destop coordinates' +ue to t!is reason test engineer maintains corresponding #indo# in default position during recording re cording and running' running ' >' Test Test engineer engineer also maintains maintains monitor monitor resolution resolution as constant during during recording recording and testing' testing' ?' /inRunner /inRunner maintains maintains 0> as a s!ortey to c!ange from one mode to ot!er' ot!er'
Analog +ecor(ing: n &nalog mode /inRunner maintains ello# T$2N statements' 78 oveHl oveHloc ocato atorH rHtra trac$! c$! "I :
/inRunner use t!is function to record mouse pointer movements on t!e destop in one unit (one sec) of time' $yntax5 moveOlocatorOtrac(Trac :o) 4y default trac no starts #it! =' 98 ty type! "I :
/inRunner use t!is function to record mouse operation on t!e destop' $yntax5 mtype(QT trac noQleft.rig!t1.6) Ttrac no 1.6
→ →
#!ere mouse operation on destop Release.
;8 type! "I :
/inRunner use t!is function to record eyoard operations in &nalog mode' $yntax5 type(Typed textN . &$C notationN)
C03CJ P)NTS: &fter completion of required navigation recording, test engineers are insisting c!ec points into t!e script to cover elo# su tests' =' >' ?' A' H' F'
4e!a 4e!avi vior oral al Cov Cover erag agee .P .P +om +omine ine cove covera rage ge Error Error !andl !andling ing cover coverage age Calc Calcul ulat atio ion n cover coverag agee 4ac 4acen end d cove covera rage ge $ervi $ervice ce levels levels cover coverage age
To automate aove su tests, #e can use four types of c!ecpoints in /inRunner' =' *U c!ec c!ec poi point nt >' 4igm 4igmap ap C!ec C!ec poi point nt
?' +ata +ataa ase se c!e c!ec c poi point nt'' A' Text C!ec C!ec poi point nt''
a" *6) *6) Chec Chec$ $ Poin Point: t: To test properties of o7ects, #e can use t!is c!ecpoint in /inRunner' T!is c!ecpoint consists of ? su options a) 0or 0or $in $ingl glee pro prope pert rty y ) 0or "7ect . /indo# c) 0or 0or Mult Multip iple le "7 "7ec ects ts a" &or &or Sing Single le Prop Proper erty ty::
To verify one property of one o7ect, #e can use t!is option' 3%aple:
"7ect5 Update 0ocus to #indo# "pen a record Perform a C!ange
→ → →
+isaled +isaled Enaled
:avigation5 $elect $elect position position in script → Create menu→ *U *U c!ec c!ec point point → 0or single propert property y → $elect testale o7ect → select required property #it! expected → Clic Paste' Test $cript
set_window("Flight set_window("Flight Reservation", 4); button_check_info("Update button_check_info("Update rder","enabled",!); rder","enabled",!); enu_select_ite enu_select_ite ("File;pen rder###"); set_window ("pen rder", $); button_set ("rder %o#", %); edit_set ("&dit", "$"); button_press ("'"); set_window ("Flight Reservation", ); button_check_info("Update button_check_info("Update rder","enabled",!); rder","enabled",!); button_set ("usiness", %); button_check_info("Update button_check_info("Update rder","enabled",$); rder","enabled",$); button_press ("Update rder");
3%aple :
Saple
nput "L
3%pecting: 0ocus to #indo# → input is focused → "L disaled 0ill input → "L enaled Create script'
$cript setO#indo# ( sample N , A) editOc!ecOinfo (inputN , focusedN,=) uttonOc!ecOinfo ( "L N , enaled N,) editOset ( input N, @@@@ N) uttonOc!ecOinfo ( "L N , enaled N,=) uttonOpress ( "L N) 3%aple ;: 3%pecte(: 0ocus to #indo# → Roll :o focused → "L disaled $elect Roll :o → :ame focused → "L disaled Enter :ame → "L enaled
Stu(ent
Roll :o :ame "L
$cript setO#indo# ( $tudent N , H ) editOc!ecOinfo ( Roll :" N , focused N , =) uttonOc!ecOinfo ( "L N , enaled N , ) listOselectOitem ( Roll :o N , @@@@ N) editOc!ecOinfo ( :ame N , focused N, =) uttonOc!ecOinfo ( "L N , enaled N, ) editOset ( :ame N , @@@@ N) uttonOc!ecOinfo ( "L N , enaled N , =) uttonOpress ( "L N ) Case Stu(y: =ject Type
Testa=le Properties
Pus! 4utton
Enaled, 0ocused
Radio 4utton
Enaled $tatus
C!ec 4ox
Enaled $tatus
2ist . Como 4ox
Enaled, 0ocused, Count, alue'
Menu
Enale, Count
Tale *rid
Ro#s Count, Column Count, Tale Content Enaled, 0ocused, alue, Range, Regular
Edit 4ox . Text 4ox
Expression, +ate 0ormat, Time format'
3%aple ?: Kourney ▼
3%pecte(: 0ly of 0rom :o items in 0ly To equal to ▼ :o of items in 0ly 0rom6=, #!en you select = item in 0ly 0rom' setO#indo#(KourneyN, H) 0ly T"
listOselectOitem(0ly 0romN, xxxxN) listOgetOinfo(0ly 0romN, countN, n) listOc!ecOinfo(0ly ToN, countN, n6=)
3%aple @: Saple 7
Saple 9 +isplay
2ist
S
Text 4ox
"L
3%pecte( : $elected item in list ox is equal to text ox value #!en you clic display'
setO#indo#($ample =N, H) listOselectOitem(temN, xxxxN) listOgetOinfo(temN, valueN, x) uttonOpress("LN) setO#indo#($ample >N, H) uttonOpress(+isplayN) uttonOpress(+isp layN) editOc!ecOinfo(TextN, valueN, x) 3%aple :
Roll :o
S "L
Percentage *rade
Stu(ent
3%pecte( :
f is G, T!an grade & f is Q G - I T!an grade 4 f is Q I - F T!an grade C "t!er #ise *rade is +' setO#indo#($tudentN, H) listOselectOitem(Roll :oN, xxxN) uttonOpress("LN) editOgetOinfo(PercentageN, valueN, P) if (P 9 G) editOc!ecOinfo(gradeN, valueN, &N) else if (P Q G -- P 9 I) editOc!ecOinfo(gradeN, valueN, 4N) else if (P Q I -- P 9 F) editOc!ecOinfo(gradeN, valueN, CN) else editOc!ecOinfo(gradeN, valueN, +N)
3%aple B: )nsurance
Type
Expected 5 f type is &N → &ge is focused f type is 4N → *ender is focused &ny ot!er type → %ualification is focused
S
&ge *ender
S
%ualification
S
setO#indo#(nsuranceN, H) listOselectOitem(TypeN, @N) listOgetOinfo(TypeN, alueN, alueN, x) if (x 9 9 &) editOc!ecOinfo(&geN, focused N, =) else if (x 9 9 4) listOc!ecOinfo(*enderN, focused N, =) else listOc!ecOinfo(%ualificationN, focused N, =) a" &or &or =j =jec ectt ,in ,in(o (ow: w:
To test more t!an one properties of single o7ect, #e can use t!is option' 3%aple : =ject : 6p(ate r(er
0ocus to #indo# "pen record Perform C!ange
→ disaled → disaled → enaled, focused
:avigation5 $elect Position $cript → Create Menu → *U c!ec point → 0or "7ect or /indo# → $elect testale o7ect(+oule Clic) → $elect required property #it! expected → clic "L' $yntax5 o7Oc!ecOgui(o7ect nameN, c!eclist file'clN, expected values fileN, Time to create) n t!e aove syntax c!eclist file specifies list of properties to e tested' Expected values file specifies expected values for t!ose properties' T!is t#o files created y /inRunner during c!ecpoint creation'
set_window ("Flight Reservation", *); ob+_check_gui("Update ob+_check_gui("Update rder", "list#ckl", "gui", $);
enu_select_ite enu_select_ite ("File;pen rder###"); set_window ("pen rder", $); button_set ("rder %o#", %); edit_set ("&dit", "$"); button_press ("'"); set_window ("Flight Reservation", *); ob+_check_gui("Update ob+_check_gui("Update rder", "list4#ckl", "gui4", $); button_set ("First", %); ob+_check_gui("Update ob+_check_gui("Update rder", "list-#ckl", "gui-", $); button_press ("Update rder");
&or 'ultiple =jects:
To verify more t!an one properties of more t!an one o7ects, #e are using t!is c!ecpoint in /inRunner' 3%aple : =jects 0ocus to #indo# "pen a record Perform c!ange
)nsert r(er +isaled +isaled +isaled
6p(ate r(er +isaled +isaled Enaled, 0ocused
Delete r(er +isaled Enaled Enaled
Navigation:
$elect position in script → create menu → *U c!ec point → for multiple o7ects → clic add → select testale o7ects → rig!t clic to quit → selected require properties #it! expected for every o7ect → clic "L' $yntax5 #inOc!ecOgui(#indo#N, c!eclist file'clN, expected values fileN, Time to create)
set_window ("Flight Reservation", ); win_check_gui("Flight win_check_gui("Flight Reservation", "list4#ckl", "gui4", $); enu_select_ite enu_select_ite ("File;pen rder###"); set_window ("pen rder", $); button_set ("rder %o#", %); edit_set ("&dit", "$"); button_press ("'"); set_window ("Flight Reservation", ); win_check_gui("Flight win_check_gui("Flight Reservation", "list#ckl", "gui", $); button_set ("usiness", %);
win_check_gui("Flight win_check_gui("Flight Reservation", "list*#ckl", "gui*", $); button_press ("Update rder"); 3%aple 7E:
$ample 3%pecte(: Range =F to G years
&ge
Create menu → gui c!ec point → for o7ect or #indo# → select age o7ect → select range property → enter from - to values → clic "L' setO#indo#(sampleN, H) o7Oc!ecOgui(&geN, list='clN, gui=N, =) 3%aple 77: $ample :ame
3%pecte( : &lp!aets in lo#er case
:avigation5 Create menu → gui c!ec point → for o7.#in → select name o7 → select regular expression → enter expected expression ( a6BVJ) → clic "L' setO#indo#(sampleN, =) o7Oc!ecOgui(nameN, list='clN, gui=N, =) list='cl gui=
→ regular expression → q6BVJ
3%aple 79:
:ame o7ect is taing alp!aets Regular expression → a6B&6VJ 3%aple 7;:
:ame o7ect is taing alp!anumerics, alp!anu merics, ut first c!aracter is alp!aet a6B&6V a6B&66DVJ 3%aple 7?:
:ame o7ect is taing alp!aets only ut it allo#s ON as middle' a6B&6V a6B&6OVJ a6B&6V
3%aple 7@:
Regular expression for ya!oo user +'
3%aple 7:
:ame o7ect allo#s alp!aets in lo#er case and t!at value starts #it! R and end #it! "' RVa6BVJ"V 3%aple 7B:
Prepare Regular expression for t!e follo#ing text ox' & text ox allo#s => digit numers along #it! J as mandatory and sometimes it allo#s 8 also'
6DVJVVJ 3(iting Chec$ Points: +uring test execution test engineers are getting test results in terms of passed - failed' T!ese results analyBed y test engineers efore concentrating on defect tracing along #it! developers' n t!is revie# test engineers are performing c!anges in c!ecpoints due to t!eir mistaes or c!anges in pro7ect requirements' a" Change Changess in e%p e%pect ecte( e( valu values: es:
+ue to test engineer mistae or requirement c!ange, test engineers perform c!anges in expected values t!roug! elo# navigation' :avigation5 Run script → "pen result → C!ange expected value → Re6execute test to get correct results' =" A(( e%tra e%tra proper properties ties::
$ome times test engineers are adding extra properties to existing c!ecpoints due to tester mistae or requirement en!ancements' :avigation5 Create menu → Edit *U c!ec list → select c!eclist file name → clic "L → select ne# properties to test → clic "L → Clic "L to over#rite → clic "L after reading suggestion → C!ange run mode to update → clic run → run in verify mode to get results → open t!e result → analyBe t!e result and perform c!anges required'
98 #it #itap ap Chec Chec$ $ Poin Point: t:
To validate static images in our application uild, test engineers are using t!is c!ecpoint' Ex5 2ogo3s testing, *rap!s comparison, $ignature comparison etc'' T!is C!ec point consists of t#o su options5 a) 0or 0or "7e "7ect ct or or /i /indo# ndo# ) 0or $creen &rea' a" &or =j =jec ectt or or ,in( ,in(ow: ow:
To compare our expected image #it! actual image in our application uild, #e can use t!is option' 3%aple7: ((
New
8
8
W
W
Expected
&ctual
9 9 Pass X 9 fail 3%aple9:
= = H H :o of items 9 =
:o of items 9 =H
Expected
&ctual
9 9 0ail X 9 pass :avigation5 Create menu → 4itmap c!ecpoint → for o7ect or #indo# → selected expected image (doule Clic)' $yntax5 o7Oc!ecOitmap(mage o7ect nameN, mage file name'mpN, Time to create)
=" &or &or Scre Screen en Are Area: a: To compare our expected image area #it! actual, #e can use t!is option'
:avigation5 Create menu → itmap c!ecpoint → for screen area → select required image region → rig!t clic to release' $yntax5 o7Oc!ecOitmap(mage o7ect nameN, mage file name'mpN, Time to create, x, y, #idt!, !eig!t) :ote5 =) T$2 functions functions supports variale variale siBe siBe of parameters parameters to to call lie lie as cN language'( language'(:o :o functional overloading) &RTY 8 no of arguments in a function' >) n functionality functionality test test automation automation *U c!ecpoint c!ecpoint is mandatory mandatory ut itmap itmap c!ec c!ec point is optional ecause all applications doesn3t allo#s images as contents'
;" Data=a Data=ase se Chec$ Chec$ Poin Point: t: 4ac end testing is a part of functionality testing' t is also no#n as +ataase Testing' +uring testing test engineers are validating impact of front6end operations on ac end tales content in terms of data validation and data integrity' +ata validation means t!at #eat!er t!e front6 end side values are correctly storing into ac end tales are not' +ata ntegrity means t!at #eat!er t!e impact of front end operations #oring on ac end tale contents (Updating . +eletion )' To automate aove acend testing using /inRunner, test engineers are follo#ing dataase c!ecpoint concept in create menu' n t!is acend test automation, test engineers are collecting t!is information from development team'
→ +$:(+ata $ource :ame) → Tales Tales definitions → 0orms s Tales
+ + + (+ataase +esign +ocument)
+epending on aove information, test engineers are using dataase c!ecpoint in /inRunner to automate ac end testing' &ront 3n(
+$:
= +ataase C!ec Point /iBard
Excel $!eet > $elect ?
$tep =5 $tep >5 $tep ?5
x
x
x
Connect to +ataase Execute $elect $tatement Provide results in into Ex Excel $! $!eet to to analyBe'
+ataase c!ecpoint consists of t!ree su options suc! as
a" Defa Defaul ultt Che Chec$ c$ =" Cust Custo o Chec Chec$ $ c" +un +un T Ti iee +ec +ecor or( ( Chec Chec$ $ a" Defa Defaul ultt Che Chec$ c$::
Test Engineers are conducting ac end testing depending upon dataase tale3s contents using t!is c!ecpoint'
→ Create dataase c!ecpoint (Current Content of tales as expected) Perform nsert. +elete . Update t!roug! front end' 9 9 0ail → Pe → Executive dataase c!ec point (Current content of tales selected as actual) X 9 Pass (May e) :avigation5 Create menu → dataase c!ec point → default c!ec → $pecify connection to dataase using "+4C (2ocal +ataase) . +ata Kunction( 0or remote dataase or distriuted dataase) → $elect specify $%2 statement ( C5Z Program files Z Mercury interactive Z /inRunner Z Temp Z test name Z msqr='sql) → clic next → clic create to select +$: ( E@' Mac!ine data source → 0lig!t ?>) → /rite select statement ( E@' $elect J from orders) → clic finis!' $yntax5 dOc!ec(C!ec list file name'cdlN, %uery result file name'xlsN) n t!e aove syntax c!eclist specifies content is t!e property' %uery result file specifies results of t!e query in terms of content' =" Custo Custo Chec Chec$: $:
Test engineers are conducting acend testing depending on ro#s contents, column contents and content of dataase tales' 4ut test engineers are not using t!is option ecause default c!ec content also s!o#ing no of ro#s and column names' c" +un +un Ti Tiee +eco +ecor( r( Che Chec$ c$::
To find mapping et#een front6end o7ects and acend columns test engineers are using t!is option' t is optional c!ecpoint in tester 7o, ecause test engineers are using t!is c!ecpoint #!en t!ey got mismatc! et#een front6end o7ects and acend columns' 0rom
a
@ +$: Y
= > ? A
>
Expected 5 @ → a Y →
H
To automate aove lie mapping testing, test engineers are using Run Time Record C!ecpoint in /inRunner' :avigation5
Create menu → dataase c!ecpoint → runtime record c!ec → clic next → clic create to select +$: → #rite select statement #it! doutful columns (ex5 select orders'orderOnumer, orders'customerOname from orders) → clic next → select doutful front end o7ects for t!at columns → clic next → select any one of t!ree options ( exactly one matc!ing record, one or more matc!ing records and no matc!ing records) → clic finis!' $yntax 5 dOrecordOc!ec(c!ec list file name'crrN, +RO":EOM&TC< . +RO":EO"ROM"REOM&TC< . +RO:"OM&TC<, ariale)
→ n t!e aove syntax c!eclist file specifies expected mapping et#een ac end columns and front end o7ects' → 0lags specifies type of matc!ing → ariale specifies t!at numer of records matc!ed
for(i.$; i/.-; i00) 1 set_window ("Flight Reservation", *); enu_select_ite enu_select_ite ("File;pen rder###"); set_window ("pen rder", $); button_set ("rder %o#", %); edit_set ("&dit", "$"); button_press ("'"); db_record_check("list$#cvr" db_record_check("list$#cvr", , 23R_%&_R_R&_5678, 23R_%&_R_R&_5678, record_nu); 9 :ote5 Runtime Record C!ecpoint does d oes not allo# N at t!e end of t!e select statement' t is a ne# concept in /inRunner I''
?8 Te%t Chec$ Chec$ Point: Point: To conduct calculations and ot!er text ased tests, #e can use getOtext option in /inRunner' T!is option consists of t#o su options' a) 0rom 0rom o7ec o7ectt or or /indo# indo# ) 0rom $creen &rea a" &ro &ro o=jec o=jectt or or ,in(o ,in(ow: w:
To capture o7ect values in to variale #e are using t!is option' :avigation5 Create menu → *et text → 0rom "7ect . #indo# → $elect o7ect (+ Clic)' $yntax5
o7OgetOtext(name of t!e o7ectN, ariale) :ote5 &ove function is same as editOgetOinfo(edit ox nameN, alueN, variale) Example 5 $ample Expected 5 "ut put 9 n Put J =
nput
"ut put setO#indo#(sampleN, H) o7OgetOtext(inputN,x) o7OgetOtext(outputN,y) if(y 9 9 x J =) printf(test is passN) passN) else printf(test is failN) =" &ro &ro Scr Scree een n Area Area::
To capture static text from screen area #e can use t!is option' :avigation5 Create menu → get text → from screen area → select required region → rig!t clic to release' $yntax5 o7OgetOtext(o7ect nameN, variale, x=, y=, x>, y> ) 3%aple 7:
*etting text from o7ect . #indo# y using su strings to cut some area of string' setO#indo#(flig!t reservationN, H) o7OgetOtext(ticetsN, t) o7OgetOtext(priceN, p) p 9 sustr( p , >, lengt!(p) 6 =) =) o7OgetOtext(totalN, tot) tot 9 sustr(tot , >, lengt!(tot) 6 =)
if (tot 9 9 t J p) printf(test is pass)
else printf(test is fail) 3%aple 9: $!opping
Expected5 To Total tal 9 price J qty
%TY
xx Rs5xxx.6
Price Total
Rs5xxx.6
setO#indo#(s!oppingN) o7OgetOtext(%TYN, q) o7OgetOtext(priceN, p) p9sustr(p,A,lengt!(p)6H) p9sustr(p,A,lengt!(p) 6H) o7OgetOtext(TotalN, tot) tot9sustr(tot,A,lengt!(tot)6H) if (tot 9 9 q J p) printf(test is passN) passN) else printf(test is failN)
tlHstep! ": To create our o#n pass . fail result in result #indo#, #e can use t!is statement' $yntax5 tlOstep(step nameN, . =, descriptionN) in t!e aove syntax tl stands for test log(test results)' . = 5 → pass, =(non Bero) → fail
Data Driven Test !DDT": ++T is not!ing ut a retest' To executive one test more t!an one time on same application uild #it! multiple test data' T!ere are four types of ++T tests to validate functionality testing' a) ) c) d)
+ynamic +ynamic Test est +ata +ata $umissi $umission' on' T!roug! 0lat 0iles ('Txt) 0rom 0ront 0ront End *rits *rits ( 2ist, Menu, Menu, Tale Tale,, &ctive@ &ctive@ &nd +ata +ata /indo#) /indo#) T!ro T! roug ug! ! Exce Excell $!ee $!eett
a" Dynaic Dynaic Test Data Su=issio Su=ission: n:
$ome times test engineers are conducting re6testing depends on multiple test data t!roug! manual sumission'
Ley 4oard
Test +ata
4U2+
0rom t!e aove model test engineers are sumitting test data t!roug! eyoard' To record value from eyoard during test execution, #e can use elo# T$2 statement' $yntax5 createOinputOdialog(messageN) Example =5
for(i.$; i/.-; i00) 1 : . creat_input_dialog( creat_input_dialog( &nter order %o<); set_window ("Flight Reservation", *); enu_select_ite enu_select_ite ("File;pen rder###"); set_window ("pen rder", $); button_set ("rder %o#", %); edit_set ("&dit_$", :); button_press ("'"); 9 Example >5
Multiply Expected5 Result 9 input = J input > Test data in paper5 = pairs of inputs
nput = nput > "L
Result
for(i.$; i/.$!; i00) 1 : . creat_input_dialog( creat_input_dialog( &nter =nput $<); > . creat_input_dialog( creat_input_dialog( &nter =nput <); set_window ("ultipl>", *);
edit_set ("=nput $", :); edit_set ("=nput ", >); button_press ("'"); ob+_get_te:t(result<, ob+_get_te:t(result<, tep); if(tep . . ? @ A) tl_step(step<,!, tl_step(step<,!, Bass<); else tl_step(step<,$,fail<); 9
Example ?5 $!opping tem :o
Expected5
%TY
Total To tal 9 Price J %TY "L
Price W
Total
W
Test data in paper 5 = pairs of item no and %TY
for ( i 9 = Q9= i11 ) [ x 9 createOinputOdialog(Enter tem :oN) y 9 createOinputOdialog(Enter %TYN) setO#indo#($!oppingN, H) editOset(tem :oN, x) editOset(%TYN, y) uttonOpress("LN) o7OgetOtext(PriceN, p) p 9 sustr(p,>,lengt!(p)6=) sustr(p,>,lengt!(p)6 =) o7OgetOtext(TotalN, tot) tot 9 sustr(tot,>,lengt!(tot)6=) if (tot 9 p J y) tlOstep(step=N, ,Test is passN) else tlOstep(step=N, =, Test is failN) \
Example A5 2ogin Expected5 → f next enaled user is aut!orised → f next is disaled user is unaut!orised
User + P#d "L
:ext
Test data in paper 5 = pairs of user +3s - Pass#ords'
for(i9= iQ9= i11) [ x 9 createOinputOdialog(Enter User +N) y 9 createOinputOdialog(Enter P#dN) setO#indo#(2oginN,H) editOset(User +N, x) pass#ordOeditOset(P#dN, pass#ordOeditOset( P#dN, pass#oreOencrypt(y)) uttonOpress("LN) uttonOgetOinfo(nextN, uttonOgetOinfo( nextN, enaledN, n) if ( n 9 9 =) tlOstep(step=N, , User is &ut!orisedN) else tlOstep(step=N, =, User is Unaut!orisedN) \ =" Th Thro roug ugh h &lat &lat &iles &iles::
$ome times test engineers are conducting re6testing depends on multiple test data from flat file'
Test +ata
4U2+
' txt Test $creen To prepare aove model automated test scripts, test engineers are using fe# file functions in /inRunner' 78 file fileH Hopen open!! ": ":
#e can use t!is function to open file into R&M #it! required permissions'
$yntax5 fileOopen(0ile Pat!N, 0"OM"+EORE&+ . 0"OM"+EO/RTE . 0"OM"+EO&PPE:+) 98 fileH fileHget getlin line! e! ":
/e can use t!is function to read a line from opened file in RE&+ M"+E' $yntax 5 fileOgetline(pat! of fileN, ariale) :ote5 in T$2 file pointer incremented automatically up to end en d of file' ;8 file fileH Hclose lose!! ":
#e can use t!is function to s#eep out a opened file from Ram ' $yntax5 fileOclose(pat! of fileN) Example=5
f."cCDD> 2ocuents data#t:t"; file_open(f,F_2&_R&52); while(file_getline(f,s) while(file_getline(f,s) E.&_F=&_&F) 1 set_window ("Flight Reservation", -); enu_select_ite enu_select_ite ("File;pen rder###"); set_window ("pen rder", ); button_set ("rder %o#", %); edit_set ("&dit",s); button_press ("'"); 9 file_close(f)C Example >5 Multiply Expected5 Result 9 input = J input > Test data in file5 cCDD> 2ocuents data#t:t
nput = nput > "L
Result
xx xxx xxx xxxx xxx xxx '
f."cCDD> 2ocuents data#t:t"; file_open(f,F_2&_R&52); while(file_getline(f,s) while(file_getline(f,s) E.&_F=&_&F)
1 split(s,: ); set_window ("ultipl>", *); edit_set ("=nput $", :G$H); edit_set ("=nput ", :GH); button_press ("'"); ob+_get_te:t(result<, ob+_get_te:t(result<, tep); if(tep . . :G$H @ :GH) tl_step(step<,!,Bass<); else tl_step(step<,$, tl_step(step<,$, fail<); 9 file_close(f); Example ?5 $!opping Expected5 Total To tal 9 Price J %TY
tem :o %TY
Test Test data in file5 cCDD> 2ocuents data#t:t "L
Price W
Ram purc!ase == items as = pieces
Total
W
f."cCDD> 2ocuents data#t:t"; file_open(f,F_2&_R&52); while(file_getline(f,s) while(file_getline(f,s) E.&_F=&_&F) 1 split(s,: ); setO#indo#($!oppingN, H) editOset(tem :oN, x?V) editOset(%TYN, xFV) uttonOpress("LN) o7OgetOtext(PriceN, p) p 9 sustr(p,>,lengt!(p)6=) sustr(p,>,lengt!(p)6 =) o7OgetOtext(TotalN, tot) tot 9 sustr(tot,>,lengt!(tot)6=) if (tot 9 p J xFV) tlOstep(step=N, ,Test is passN) else tlOstep(step=N, =, Test is failN) \ fileOclose(f)
Example A5 2ogin Expected5 → f next enaled user is aut!orised → f next is disaled user is unaut!orised Test Test data in file5 cCDD> 2ocuents data#t:t
User + P#d "L
:ext
xxxx]xxx xx xxxx]xxx xx
f."cCDD> 2ocuents data#t:t"; file_open(f,F_2&_R&52); while(file_getline(f,s) while(file_getline(f,s) E.&_F=&_&F) 1 split(s,: I); split(:GH,>, split(:GH,>, ); setO#indo#(2oginN,H) editOset(User +N, x=V) pass#ordOeditOset(P#dN, pass#ordOeditOset( P#dN, pass#oreOencrypt(y>V)) pass#oreOencrypt(y>V) ) uttonOpress("LN) uttonOgetOinfo(nextN, uttonOgetOinfo( nextN, enaledN, n) if ( n 9 9 =) tlOstep(step=N, , User is &ut!orisedN) else tlOstep(step=N, =, User is Unaut!orisedN) \ fileOclose( )
?8 file fileHp Hpri rint ntf! f! ":
/e can use t!is function to print specified text into a file' f file is opened in /RTE . &PPE:+ M"+E' $yntax 5 fileOprintf(Pat! of fileN, formatN, values . variales) E@5 a
xx
xx
a 9 xx and 99 xx
fileOprintf(xxxxN, a 9 d and 9 dN, a, )
@8 file fileHc Hco opa parre! ":
/e can use t!is function to compare t#o files content' $yntax5 fileOcompare(pat! of file=N, pat! of file>N, pat! of file?N) n t!e aove syntax t!ird argument is optional' t specifies concatenated content of ot! compared files' c" &ro &ro &ro &ront nt-e -en( n( *ri( *ri(s: s:
$ome times test engineers are conducting re6testing depends on multiple data o7ects suc! as list, menu, &ctive@, tale, data #indo#'
Test +ata
4U2+
Test $creen Example =5 Kourney 3%pecte(: 0ly 0romitem does not availale▼in $elected fly to'
▼
0ly T"
setO#indo#(KourneyN, H) listOgetOinfo(0ly 0romN, countN, n) for(i9 iQn i11)
[ listOgetOitem(0ly 0romN, i, x) listOselectOitem(0ly 0romN, x) if (listOselectOitem(0ly ToN, x) X9EO"L) tlOstep(stepN, , +oes no appearsN) else tlOstep(stepN, = , &ppears and Test is fail N)
\ n /inRunner every T$2 returns EO"L #!en t!e statement successfully executed on our uild' 3%aple 9:
Saple 7
Saple 9 +isplay
:ame
S
Text
"L
3%pecte( : $elected item in list ox appears in text ox as elo# model My :ame is @@@@@'
setO#indo#($ample =N, H) listOgetOinfo(:ameN, countN, n) for(i9 iQn i11) [ setO#indo#($ample =N, H) listOgetOitem(:ameN, i , x) listOselectOitem(:ameN, x) uttonOpress("LN) setO#indo#($ample >N, H) uttonOpress(+isplayN) uttonOpress(+isp layN) o7OgetOtext(TextN, temp) if ( temp 9 9 My :ame isN - x) tlOstep(stepN, , Test is PassN) else tlOstep(stepN, = , Test is failN)
\ :ote5 n T$2 - 9 Concatenated (&dding t#o #ords etc') Example ?5 Employee S
EMP :o "L
s sal
gsal
3%pecte(: → f sal 9 =H t!an gsal 9 sal 1 = of sal → f sal Q =H and 9 G t!an gsal 9 sal 1 H of sal → f sal Q G t!an gsal 9 sal 1 >
setO#indo#(EmployeeN,H) listOgetOinfo(EMP :oN, countN, n) for (i 9 i Q n i11) [ listOgetOitem(EMP :oN, i,x) listOselectOitem(EMP :oN, x) uttonOpress("LN) o7OgetOtext(salN, ) o7OgetOtext(gsalN, g)
if ( 9 =H -- g 991J=.=) tlOstep(step=N, , Calculation is PassN) else if ( Q =H -- 9 G -- g 99 1JH.=) tlOstep(step=N, , Calculation is PassN) else if ( Q G -- g 99 1>) tlOstep(step=N, , Calculation is PassN) else tlOstep(step=N, = , Calculation is failN) \ 3%aple ?: )nsurance
Type
Expected 5 f type is &N → &ge is focused f type is 4N → *ender is focused &ny ot!er type → %ualification is focused
S
&ge *ender %ualification
S S
setO#indo#(nsuranceN, H) listOgetOinfo(TypeN, countN, n)
for (i 9 i Q n i11) [ listOgetOitem(TypeN, listOgetOitem(TypeN, i,x) listOselectOitem(TypeN, listOselectOitem(TypeN, x) if (x 99 &) editOc!ecOinfo(&geN, focused N, =) else if (x 99 4) listOc!ecOinfo(*enderN, focused N, =) else listOc!ecOinfo(%ualificationN, focused N, =)
\
Example H5 &U+T Expected5
0ileOstore $':o0ile Pat!Type$iBe=@@=>@@>?@@?A@ @AHxxH
Total To tal 9 $um of siBe column
Total
xxx
$um 9 setO#indo#(&U+TN, H) tlOgetOro#sOcount(fileOstoreN, n) for ( i9= iQn i11) [ tlOgetOcellOdata(fileOstoreN, ^N-, ^?N, s) s9sustr(s,=,lengt!(s)6>) sum 9 sum 1 s \ o7OgetOtext(TotalN, o7OgetOtext(TotalN, tot) tot9sustr(tot,=,lengt!(tot)6>) if (tot 99 sum) tlOstep(step=N, , calculation is passN) else tlOstep(step=N, = , calculation is failN) 8 list listHg Hget etHi Hite te! ! ":
/e can use t!is function to capture specified list item t!roug! tem numer'
/e can use t!is function to find no of ro#s in tale grid' $yntax5 tlOgetOro#sOcount(Tale tlOgetOro#sOcount(Ta le grid nameN, n ameN, variale )5 8 t=lH t=lHge getH tHce cell llH( H(at ata! a! ":
/e can use t!is function to capture specified cell value into a variale t!roug! ro# no column no' $yntax5
tlOgetOcellOdata(Tale tlOgetOcellOdata(Tale *rid nameN, ^ ro# noN, ^ column noN, variale) (" Thr Throu ough gh 3%c 3%cel el Shee Sheet: t:
n general testing engineers are conducting data driven test using Excel $!eet data' T!is met!od is default met!od in data driven testing' To create t!is type of automated script /inRunner provides special navigation' :avigation5 Create test for one script → tools menu → dada driven #iBard → clic next → ro#se t!e pat! of excel s!eet (c5ZP0ZMZ/RZTempZtestnameZdefault'xls) (c5ZP0ZMZ/RZTempZtestnameZdefault'xls) → specify variale name to assignee pat! (y default tale) → select import data from dataase → clic next → select type of data ase connection ("+4C or +ata Kunction) → select specify $%2 statement (c5ZP0ZMZ/RZTempZtestnameZmsqrl'sql) → clic next → clic create to select data source name → #rite $%2 statement (select orderOnumer from order) → clic next → select excel s!eet column names in required place of test script → select s!o# data tale no# → clic finis! → clic run → analyse results manually Example=5 table . "default#:ls"; rc . ddt_open(table, ddt_open(table, 226_2&_R&52JR=6&); if (rcE. &_' KK rc E. &_F=&_B&%) pause("7annot pause("7annot open table#"); ddt_update_fro_db(table, ddt_update_fro_db(table, "sLr$#sLl", count); ddt_save(table); ddt_get_row_count(table,n); for(i . $; i / . n; i00) 1 ddt_set_row(table,i); set_window ("Flight Reservation", M); enu_select_ite enu_select_ite ("File;pen rder###"); set_window ("pen rder", $); button_set ("rder %o#", %); edit_set ("&dit", ddt_val(table,"order_nuber ddt_val(table,"order_nuber")); ")); button_press ("'"); 9 ddt_close(table);
78 (( ((tH tHop open en!! ": ":
/e can use t!is function to open a test data excel s!eet into R&M #it! specified permissions' $yntax5
ddtOopen(pat! of excel fileN, ++TOM"+EORE&+ . RE&+/RTE) 98 ((t ((tHup Hup(at (ateHf eHfro roH H(=! (=! ":
/e can use t!is function to extend excel s!eet data #'r't #'r't c!anges in dataase' $yntax5 ddtOupdateOfromOd(pat! of excel fileN, pat! of query fileN, variale) ;8 (( ((tH tHsa sav ve! ":
/e can use t!is function to save excel s!eet modifications permanently' $yntax5 ddtOsave(Pat! of excel s!eetN) ?8 ((t ((tHge HgetHr tHrow owHco Hcount unt!! ":
/e can use t!is function to find total no of ro#s in excel s!eet' $yntax5 ddtOgetOro#Ocount(pat! of excel s!eetN, variale) @8 (( ((tH tHse setH tHro row! w! ": ":
/e can use t!is function to point a ro# in excel s!eet' $yntax5 ddtOsetOro#(pat! of excel s!eetN, ro# no) 8 (( ((tH tHva vall! ":
/e can use t!is function to capture specified column value from a pointed ro#' $yntax5 ddtOval(pat! of excel s!eetN, column nameN) B8 (( ((tH tHse setH tHva val! l! ": ":
/e can use t!is function to #rite a value into excel s!eet column' $yntax5 ddtOsetOval(pat! of excel s!eetN, column nameN, value . variale) 8 (( ((tH tHcl clos ose! e! ":
/e can use t!is function to s#apout a open excel s!eet from R&M' $yntax5 ddtOclose(pat! of excel s!eetN)
3%aple 9:
Prepare data driven test script for elo# scenario' default'xls )nput7 )nput9 +esult xx xx xx xx xx xx xx xx Expected5 Result s!ould e #ritten in excel s!eet ( nput= 1 nput>) table . "default#:ls"; rc . ddt_open(table, ddt_open(table, 226_2&_R&52JR=6&); if (rcE. &_' KK rc E. &_F=&_B&%) pause("7annot pause("7annot open table#"); ddt_get_row_count(table,n); for(i . $; i /. n; i 00) 1 ddt_set_row(table,i); a.ddt_val(table,"=nput$"); b.ddt_val(table,"=nput"); c.a0b ddt_set_val(table,"result",c); ddt_save(table); 9 ddt_close(table);
3%aple ;:
Prepare test script for elo# scenario' default'xls )nput +esult Expected5 %% 0actorial of input in t!e result %% %% %% table . "default#:ls"; rc . ddt_open(table, ddt_open(table, 226_2&_R&52JR=6&); if (rcE. &_' KK rc E. &_F=&_B&%) pause("7annot pause("7annot open table#"); ddt_get_row_count(table,n); for(i . $; i /. n; i00) 1 ddt_set_row(table,i); :.ddt_val(table,"input");
fact.$; for(+ . :; + N. $;+OO) fact.fact@+ ddt_set_val(table,"result",fact); ddt_save(table); 9 ddt_close(table); 3%aple?:
Prepare test script to print a list ox values into a flat file one y one'
f."cCD> 2ocuentsDs#t:t"; 2ocuentsDs#t:t"; file_open(f,F_2&_JR=6&); set_window ("Flight Reservation",$!); Reservation",$!); list_get_info("Fl> list_get_info("Fl> FroC", "count",n); for(i.!; i/n; i00) 1 list_get_ite("Fl> list_get_ite("Fl> FroC",i,:); file_printf(f,"PsDrDn",:); 9 file_close(f); 3%aple?:
Prepare test script to print a list ox values into a excel s!eet one y one'
f."cCD> 2ocuentsDs#:ls"; 2ocuentsDs#:ls"; file_open(f,F_2&_JR=6&); set_window ("Flight Reservation", $!); set_window ("Flight Reservation", $*); list_get_info("Fl> list_get_info("Fl> FroC", "count", n); for(i.!; i/n; i00) 1 list_get_ite ("Fl> FroC",i,:); file_printf(f,"PsDn",:); 9 file_close(f); Synchroni>ation Point:
To maintain time mapping et#een testing tool and application uild during test execution, #e can use t!is concepts' 78 wait ! ":
T!is function defines fixed #aiting time during test execution'
$yntax5 #ait( time in seconds) 98 &or =j =jec ectt ,in( ,in(ow ow Pro Proper perty ty :
/inRunner #aits until specified o7ect property is equal to our expected value' :avigation5 $elect position in script → create menu → sync!roniBation point → for o7ect . #indo# property
→ select indicator o7ect (Ex5 $tatus or progress ar) → select required property #it! expected (= → enaled, Q= → disaled) → specify maximum time to #ait → clic paste' $yntax5 o7O#aitOinfo(o7ect :ameN, propertyN, Expected value, maximum time to #ait) ;8 &or =je =ject ct ,in(ow ,in(ow #itap: #itap:
$ome times test engineers are defining time mapping et#een tool and application depends on mages also' :avigation5 $elect position in script → create menu → sync!roniBation point → for o7ect.#indo# 4itmap → select indicator image (+ clic)' $yntax5 o7O#aitOitmap(mage o7ect nameN, mage file name'mpN, maximum time to #ait) ?8 &or Scre Screen en Area Area #ita #itap: p:
$ome times test engineers are defining time mapping et#een testing tool and application depends on part of images also' :avigation5 $elect position in script → create menu → sync!roniBation point → for screen area 4itmap → select required image region → rig!t clic to release' $yntax5 o7O#aitOitmap(mage o7ect nameN, mage file name'mpN, maximum time to #ait, x, y, #idt!, !eig!t) @8 Change Change +unti +untiee Set Settin tings: gs:
+uring test script execution, recording time values are not useful' +uring running, /inRunner depends on t#o runtime parameters' Test engineers are performing c!anges in t!e parameters if required'
→ +elay for #indo# sync!roniBation 8 = msec(+efault) → Timeout Timeout to execute context sensitive and c!ecpoints 6 =m,sed (+efault) :avigation5 $ettings menu → general options → c!ange delay and time out depends on requirements → clic apply → clic o' #ATC0 #ATC0 T3ST)N* T3ST)N *
T!e sequential execution of more t!an one test to validate functionality is called atc! testing' To increase intention of ugs finding during test execution, atc! testing is suitale criteria' T!e test atc! is also no#n as test suit s uit or test set' Every test atc! consists of a set of multiple dependent tests' n every test atc! end stage of one test is ase state of next test' To create t!is type of atc!es in /inRunner, #e can use elo# statements' a) call call test testna name me(( ) ) ) call pat! of testN( ) /e can use first syntax #!en corresponding calling - called tests ot! in same folder' /e can use second syntax #!en calling - called tests ot! are in different folders' Example =5 Test Test case= → $uccessful order open Test Test case> → $uccessful up6dation' Example >5 Test Test case= → $uccessful ne# user registration' Test Test case> → $uccessful login Test Test case? → $uccessful mail open' Test Test caseA → $uccessful mail reply Example ?5 Test Test case= → $uccessful order open Test Test case> → $uccessful calculation'
call sutest( )
$u test . Called test Main test . Calling test Paraeter Passing:
To transmit values et#een one test to ot!er test, #e can use parameter passing concepts in atc! testing' @ xx
call sutest(xx ) editOset(editN, x)
$u test . Called test Main test . Calling test 0rom t!e aove model su test maintains parameters to receive values from main test' To create t!is type of parameters #e can follo# ello# navigation' :avigation5 "pen su test _ file menu _ test properties _ clic parameter ta _ clic add to create ne# properties _ enter parameter para meter name #it! description _ clic o _ clic add to create more parameters _ clic o _ use t!at parameter in required place p lace of test script' DATA D+).3N #ATC0:
@ xx input
+efault'xls
call sutest(xx ) editOset(editN, x)
$u test . Called test Main test . Calling test 'ain Test:
table . "default#:ls"; rc . ddt_open(table, ddt_open(table, 226_2&_R&52); if (rcE. &_' KK rc E. &_F=&_B&%); pause("7annot pause("7annot open table#"); ddt_get_row_count(table,n); for(i . $; i /. n; i 00) 1 ddt_set_row(table,i); tep.ddt_val(table,"input"); call subsri(tep); set_window("Flight set_window("Flight Reservation",$); Reservation",$); ob+_get_te:t("6icketsC",t); ob+_get_te:t("BriceC",p); p.substr(p,,length(p)O$); ob+_get_te:t("6otalC",tot); tot.substr(tot,,length(tot)O$); if(tot..p@t) tl_step("s$",!,"test tl_step("s$",!,"test is pass"); else tl_step("s$",$,"test tl_step("s$",$,"test is fail"); 9 ddt_close(table); Su= Test:
set_window ("Flight Reservation", ); enu_select_ite enu_select_ite ("File;pen rder###"); set_window ("pen rder", $); button_set ("rder %o#", %); edit_set ("&dit", :); button_press ("'"); set_window("Flight set_window("Flight Reservation",$); Reservation",$); ob+_get_te:t("%aeC",t); if(t. ." ") pause("cannot open record"); treturn! "I :
/e can use t!is function to return a value from su test to main test' $yntax5 treturn( alue . ariale) :ote5 t allo#s only one value valu e to return'
@ xx input%
+efault'xls
t9call sutest(xx ) if(t9 9=) [ \ else continue
if (condition) treturns(=) else treturns()
$u test . Called test
Main test . Calling test Silent 'o(e:
/inRunner allo#s you to continue test execution #!en a C!ecpoint is fail also' To define t!is type of situation #e can follo# elo# navigation' :avigation5 $elect Menu _ general options _ run ta _ select run in atc! mode _ clic apply _ clic o' :ote5 /!en /inRunner /inRunner in silent mode, tester te ster interactive statements state ments are not #oring' E@5 createOinputOdialog(xxxxxN) Pu=lic .aria=les :
To access a single variale in more t!an one tests in a atc!' $yntax5 pulic variale
Note: 4y default variales are local l ocal in T$2 scripts' &6NCT)N *3N3+AT+: *3N3+AT+: t is a list of T$2 functions lirary' n t!is lirary T$2 functions classified into category #ise' To searc! required T$2 function elo# navigation Create menu _ insert function _ 0rom function generator _ select required category _ select required function ased on description _ fill arguments _ clic past' 3%aple 7: Clip=oar( Testing
& tester conducts test on selected part of an o7ect'
setO#indo#(loginN, H) editOgetOselection(&gent :ameN,v) Printf(v) $yntax5 editOgetOselection(:ame of edit oxN, variale) 3%aple 9: ,in(ow 3%istence Test:
/!et!er specified #indo# is availale on des top or not' $yntax5 #inOexists(#indo# nameN, time) n aove syntax time specifies delay efore, test existence of #indo#' T!is function returns EO"L if #indo# exists else EO:"TO0"U:+' Case $tudy5 0ail
pass test =
sampleN #indo#
test > ` test ? ` test A call test =( ) if(#inOexists(sampleN, ) 9 9 EO"L) call test >( ) call test ?( ) call test A( ) else call test ?( ) call test A( ) 3%aple ;: pen Project:
/inRunner allo#s you to open a pro7ect during test execution'($ystem Category)' $yntax5 invoeOapplication(Pat! invoeOapplication (Pat! of 'exeN, CommandN, /oring /oring +irectoryN, $/O$<"/ . $/O$<"/M:M$E . $/O$<"/M&@M$E) 3%aple ?:
$earc! T$2 function to print $ystem +ate;
3%aple @:
$earc! T$2 function to print time out' $yntax5 getvar(timeoutOmsec) @ 9 getvar(timeoutOmsecN) printf(@) 3%aple :
$earc! T$2 function to c!ange time out #it! out using settings menu' $yntax5 setvar(time outN, time in sec)
3%aple B:
$earc! T$2 function to print parent pat! of /inRunner' 3%aple :
$earc! T$2 function to print pat! of current test'
3%aple : 3%ecute Prepare( Query:
/inRunner allo#s you to execute prepared queries' & prepared query consists of variale in structure of t!at query, t!is query also no#n as dynamic query'
0ront End
+$:
4ac End
T$2 $cript
dOconnect( ) dOexecuteOquery( ) dO#riteOrecords( )
Prepared selectN $tatement Excel . 0lat file
(=Hconnect! (=Hconnect! ":
/e can use t!is function to connect dataase using existing +$:' $yntax5 dOconnect(session :ameN, +$:9JJJJN) n aove syntax session name indicates allocated resources to user #!en !e connected to dataase' (=He%ecuteH/uery! ":
/e can use t!is function to execute specified select statement on t!at connected dataase' $yntax5 dOexecuteOquery(session nameN, select statementN, variale) n aove syntax variale specifies no of ro#s selected after execution of t!at statement' (=HwriteHrecor(s! ":
/e can use t!is function to copy query result into specified file' dO#riteOrecords(session nameN, destination file pat!N, TRUE . 0&2$E, :"O2MT) n aove syntax TRUE indicates query result #it! !eader and 0&2$E indicates query result #it! out !eader' :"O2MT specifies t!at no restrictions on o n query result siBe' :ote 5 T!ese t!ree functions availale availa le in dataase category' categor y' Example5
:.create_input_dialog("ente :.create_input_dialog("enter r liit"); db_connect("Luer>$","2Q%.Flight*"); db_e:ecute_Luer>("Luer>$"," db_e:ecute_Luer>("Luer>$","select select @ fro orders where order_nuber/."K:,nu); db_write_records("Luer>$"," db_write_records("Luer>$","default#:ls",F default#:ls",F5Q&,%_==6) 5Q&,%_==6); ; 6ser Define( &unctions:
2ie as programming language, T$2 allo#s you to create user6defined functions' Every user6defined function indicates a repeatale navigation in your uild #'r't testing' U+0 2ogin "nly :avigation
Mail "pen
Mail Compose
Mail Reply
Mail for#ard
Test Test $cripts(C!ec Points) $yntax5 pulic . static function function name( in . out ou t . inout argument name) [ ^ repeatale test script return ( ) \ n t!e aove syntax, pulic function invoed in any test' $tatic function maintains constant locations to variales during execution' =
=
i9=
$tatic 0unction
i9=
:ote5 /e can time execution'
use static function to maintain mainta in output of onetime execution e xecution as input to next ne xt
_ inN Parameter #oring as general argument' _ outN Parameters #oring as return values' _ inoutN parameters are #oring as in and out' User defined functions allo#s return statements to return one value' Example5 pulic function add(in add (in x, in y, out B) [ B 9 x 1 y
\ calling test5 a9 = 9 > add(a, , c) printf( c ) 3%aple9:
pulic function add(in add (in x, in y) [ auto B B 9 x 1 y return(B)
\ calling test5 a9 = 9 > c 9 add(a, ) printf( c )
3%aple ;:
pulic function add(in add (in x, inout y) [ y 9 x 1 y
\ calling test5 a9 = 9 > add(a, ) printf( ) 3%aple ?:
pulic function open(in op en(in x) [ set_window ("Flight Reservation", ); enu_select_ite enu_select_ite ("File;pen rder###"); set_window ("pen rder", $); button_set ("rder %o#", %); edit_set ("&dit", :); button_press ("'"); 9 To call user defined functions in required test scripts, #e can try to mae user defined function as 'E@E copies' To do t!is tas, test engineers are follo#ing elo# navigation' "pen /inRunner _ clic ne# _ record repeatale navigation3s as U+03s _ save t!e module in dat folder _ file menu _ test properties _ general ta _ c!ange test type Compiled module _
clic apply _ clic "L _ execute once(permanent 'E@E created for t!at user defined functions in !ard dis) _ #rite load statement _ in startup script of /inRunner (c5ZProgram 0iles Z Mercury nteractive Z /inRunner Z dat Z myinit)' loa(! ":
/e can use t!is statement to load user defined 'E@E from !ard dis to R&M' $yntax5 load(compiled module nameN, . =, . =) n aove syntax _ first . = defines user defined . system defined' _ second . = defines pat! appears in /inRunner #indo# menu menu . pat! doesn3t appears :ote5 /e can use t!is load statement state ment in $tartup $cript of /inRunner' unloa(! ":
/e can use t!is function to unload un#anted functions from R&M' /e can use t!is statement in our test scripts if required' $yntax5 unload(pat! of compiled moduleN, un#anted function nameN)
reloa(! ":
/e can use t!is function to reload unloaded functions once again' $yntax5 reload(pat! of compiled moduleN, unloaded function nameN) "R reload(pat! of compiled moduleN, .=, .=) _ loads all functions L3A+N)N*
n general test automation process starts #it! learning to recogniBe o7ects and #indo#s in your application uild' /inRunner I' supports auto learning and pre learning' 78 Auto Auto Le Lear arni ning ng::
+uring recogniBation time, /inRunner recogniBe all o7ects and #indo#s #!at you operated' *U M&P =
uttonOpress("LN)
?
A
"L
>
2ogical :ame 5 "L [ class 5 pus! utton lael 5 "LN \
H
$tep =5 $tep>5 $tep?5
$tart recording RecogniBe o7ect $cript generation
$tepA5 $tepH5
Catc! entry Catc! o7ect
+uring Recording
+uring running
To recogniBe entries /inRunner maintained in *U M&P' To edit t!is entries, #e can follo# navigation' Tools menu _ gui map editor' To maintain t!ese entries, test engineers follo#s t#o types of modes' a) *lo *loal al *U *U Map Map 0ile 0ile'' ) Per Test Test Mode' a" *lo= *lo=al al *6) *6) 'ap 'ap &il &ile: e:
n t!is mode /inRunner maintains common entries for o7ects and /indo#s in a single file Test =
Test>
*U Map $ave "pen 'gui Explicitly
f test engineers forgot entries saving, /inRunner maintains t!at unsaved entries in default uffer (=)' To open uffer, test engineers follo#s ello# navigation' Tools _ *U Map editor _ vie# menu _ *U 0iles(2" Q temporary )' To save . open *U Map entries, test engineers use file menu options in *U Map editor' =" Per Test 'o(e: 'o(e:
n t!is mode /inRunner maintains entries for o7ects - #indo#s per every test' Test =
Test>
*U Map $ave "pen 'gui mplicitly
n general /inRunner maintains *loal *U 0ile' f #e !ave to c!ange to Per Test Mode, #e can use ello# navigation' $ettings menu _ general options _ environment ta _ select *U Map 0ile Per Test _ clic apply _ clic o' :ote5 n general test engineers engin eers are using gloal *U Map file mode' 98 Pre Pre Le Learnin rning g:
n general test engineers 7a starts #it! learning in lo#er versions of /inRunner (ex F', F'H)' 4ecause auto learning is ne# concept in /inRunner I'' To conduct t!is Pre 2earning efore starts recording, #e can use rapid test script #iBard (RT$/)' "pen 4uild - /inRunner _ create menu _ Raped Test script #iBard _ clic next _ s!o# application main #indo# _ clic next _ select no test _ clic next _ enter su menu symol(, ,_) _ clic next _ select pre learning mode(express, compre!ensive) _ learn _say yes . no to open pro7ect automatically during /inRunner launc!ing _ clic next _ rememer pat!s of startup scripts and *U Map 0ile _ clic next _ clic o'
$ome times test engineers perform c!anges in entries #'r't test requirements' $ituation =5 (/ild Card C!aracters) $ome times our application o7ects . #indo#s laels are variating depends on multiple input values' To create data driven test on t!is type of o7ect . #indo#, #e can perform c!anges in corresponding o7ect . #indo# entry #it! /ild Card C!aracters'
riginal 3ntry
2ogical name 5 fax order no= [ class 5 #indo# lael 5 fax order no' =N \ 'o(ifie( 3ntry
2ogical name 5 fax order no= [ class 5 #indo# lael 5 fax order no' =N \
To perform aove lie c!ange, #e can follo# elo# navigation' Tools _ *U Map editor _ select corresponding entry _ clic modify _ insert #ild card c!anges lie as aove example _ clic o' Situation 9 : !+egular 3%pression"
$ome times our application uild o7ects . #indo#s laels are variating depends on events' To create data driven test on t!is type of o7ects and #indo#s, #e can perform c!ange in entry using regular expression' $ample $ample $tart
$top
riginal 3ntry 2ogical name 5start [ class5 pus! utton lael 5 startN \ 'o(ifie( 3ntry 2ogical name 5start [ class5 pus! utton lael 5 XsVtoVa6BVJN \ Situation ;: !.irtual =ject ,i>ar("
$ome times /inRunner is notale to recogniBe advanced tec!nology o7ects in our application uild' To forcily recogniBe t!at t! at non recogniBed o7ects, #e can use irtual "7ect /iBard' /iBard' :avigation5 Tools menu _ virtual o7ect #iBard _clic next _ select expected type _ clic next _ clic mar o7ect to select non recogniBed area _ rig!t clic to release _ clic next _ enter logical name to t!at entry _ clic next _ say yes yes . no to create more more virtual o7ects _ clic finis!' Situation ?: !'appe( to Stan(ar( Class"
$ome times /inRunner is notale to return all availale properties to a recogniBed o7ect' To get all testale properties for t!at o7ect #e can follo# elo# navigation' :avigation5 Tools Menu _ *U Map Configuration _ clic add _ $!o# non testale o7ect _ clic o _ clic configuration _select mapped to standard class _ clic o' Situation @:! *6) 'ap Configuration"
$ome times more t!an = o7ects in a single #indo# consists of same p!ysical description #'r't /inRunner defaults (Class - 2ael)' :avigation5
Tools Menu _ *U Map Configuration _ select o7ect type _ clic configuration _ select distinguis!ale properties into oligatory and optional list' _ clic o' :ote5 n general test engineers are maintaining M$/Oid as optional op tional for every o7ect o7ec t type' 4ecause every o7ects consists of unique M$/Oid'
"L
"L
$ample 2ogical :ame 5 "L [ class 5 pus! utton lael 5 "LN M$/Oid 5 @@@@ \ 2ogical :ame 5 "LO= [ class 5 pus! utton lael 5 "LN M$/Oid 5 @@@@ \ Situation : !Selective +ecor(ing"
/inRunner allo#s you to perform recording on specified applications only' :avigation5 $ettings _ *eneral options _ record ta _ clic selective recording _ select record only on selected applications _ select record on start menu - /indo#s explorer if required _ 4ro#se required pro7ect pat! _ clic "L' a" 6S3+ 6S3+ )NT3+ )NT3+& &AC3 T3ST T3ST)N )N*: *:
/inRunner is a functionality testing tool ut it provides a facility to conduct user interface testing also' n t!is testing /inRunner applies Microsoft F rules on our application interface' _ Controls are initcap ($tarts #it! Upper Case) _ "L . Cancel existence _ $ystem menu existence _ Controls are must visile _ Controls are not over lapped _ Controls are aligned' To apply aove six rules on our application uild, /inRunner uses elo# T$2 functions' a" loa( loa(Ho HosH sHap api! i! ": ":
/e can use t!is function to load application program in interface system calls into R&M'
$yntax5 loadOosOapi( ) :ote5 /it! /it! do#nloading api ap i system call into R&M, #e are not ale to conduct co nduct user interface testing' =" configur configureHc eHch$ui! h$ui! ":
/e can use t!is function to customiBe Microsoft,s six rules to e applied on our application uild' $yntax5 configureOc!ui(TRUE . 0&2$E, 0&2$E, ') c" chec$ hec$Hu Hui! i! ":
/e can use t!is function to apply aove customiBed rules on specified #indo#' $yntax5 c!ecOui(/indo# :ameN) To create user interface test script, test engineers follo#s elo# navigation' "pen /inRunner . 4uild _ create menu _ RT$/ _ clic next _ s!o# application main #indo# _ clic next select user interface test _ clic next _ specify su menu symol _ clic next _ select learning mode _ clic learn _ say YE$ . :" to open your application automatically during /inRunner launc!ing _ rememer pat!s of start up scripts - *U Map file _ rememer pat! of user interface test script _ clic o _ clic run _ analyBe results manually' :ote5 $ome times RT$/ doesn3t appears in create menu' a) f you you select select #ed #ed test test option option in add in in manager manager'' ) f you are in per test mode' =" +3*+3S +3*+3SS) S)N N T3 T3ST) ST)N*: N*:
n general test engineers follo#s elo# approac! after receiving modified uild from developers' Receive Modified 4uild ` *U Regression ` 4T Map regression ` 0unctionality Regression
$creen 2evel +ifferences
/inRunner provides a faility to automate *U Regression - 4T Map Regression' i8
*6) *6) +egr +egres essi sion on Te Test: st:
/e can use t!is option to find o7ect properties level differences in et#een old uild and ne# uild'
"ld 4uild
Modified 4uild
*U C!ec Point
:avigation 5 "pen /inRunner . 4uild _ create menu _ RT$/ _ clic next _ s!o# application main #indo# _ clic next_ select use existing information _ clic next _ select *U Regression test script_ clic next _ rememer pat! of *U Regression test script _ clic o _ open modified uild and close old uild uild _ clic run _ analyBe results res ults manually' ii8 #)T 'ap 'ap +egre +egressi ssion on Te Test:
/e can can use t!is option to find image level differences differences et#een old uild and modified modified uild' T!is regression is optional, ecause all screens does not consists of images' :avigation 5 "pen /inRunner . 4uild _ create menu _ RT$/ _ clic next _ s!o# application main #indo# _ clic next_ select use existing information _ clic next _ select 4T Map Regression test script_ clic next _ rememer rememer pat! of 4T Map Regression test script _ clic o _ open modified uild and close old uild _ clic run _ analyBe results manually' 3%ceptional 3%ceptional 0an(ling:
Exception Exception is not!ing ut runtime error' error' To !andle test execution errors in /inRunner /inRunner,, #e can use t!ree types of exceptions' a) T$2 Excep xcepti tion onss ) "7ect exceptions c) Popu Popup p Ex Exce cept ptio ions ns'' a" TS TSL L 3%ce 3%cept ptio ions ns::
/e can use t!ese exceptions to !andle run time errors depends on T$2 statements return code' EO:"TO0"U:+
setO#indo#(@N,H)
Test $cript
To create aove lie exceptions, #e can follo# elo# navigation' :avigation5 Tools _ exception !andling _ select exception type as 8 T$2 _ clic next _ enter exception name _ enter T$2 function function name _ specify return code _ enter !andler function name _ clic o _ clic paste _ clic o after reading suggestion _ clic close _ record our required navigation navigation to recover t!e situation _ mae it as compiled module _ #rite lode statement of it in start up script of /inRunner' Example5 pulic function mindq(in rc, in func) [ printf(func- returnsN returns N -rc) \
=8 = =je ject ct 3%ce 3%cept ptio ions ns::
T!e exception raised #!en specified o7ect property 9 our expected'
4U2+
Test $cript
do#n
+isale
Enale
Reestalis! connection to server
Tools _ exception !andling Tools !andling _ select exception exception type as "7ect _ clic ne# _ enter exception exception name _ select traceale o7ect _ select property #it! expected to determine situation _ enter !andler function name _ clic o _ clic paste _ clic o after reading suggestion _ clic close record our required navigation to recover t!e situation _ mae it as compiled module _ #rite lode statement of it in start up script of /inRunner' Example5 pulic function mindq(in #in, in o7, in attr, in val) [ printf(func- enaledN) enaled N) \ c8 PopPop-6P 6P 3%ce 3%cept ptio ions ns::
T!ese exceptions raised #!en specified #indo# come to focus' /e can use t!ese exceptions to sip un#anted #indo#s in our application uild during test execution'
Tools _ exception !andling _ select exception Tools exception type as Pop6Up _ clic ne# _ enter exception name _ s!o# un#anted #indo# raising during testing _ select !andler action( press enter . clic cancel, clic "LN and user defined function name) _ clic o _ clic close' To administrate exceptions during test execution, test engineers use elo# statements' i8
e%cepti eptio onHof nHoff! f! ": ":
/e can use t!is function to disale specific exception only' $yntax5 exceptionOoff (exception nameN) ii8 ii8
e%ce e%cept ptio ionH nHof offH fHal all! l! ":
/e can use t!is function to disale all types of exceptions in your system' $yntax5 exceptionOoffOall( ) iii8
e%ceptionHon! ":
/e can use t!is function to enale specified exception only' $yntax5 exceptionOon(exception :ameN) :ote5 4y default exceptions in ":N position'
,3# T3ST)N*
/inRunner allo#s you to automate functionality testing on #e interfaces also(' ?' A' H' F' I'
4e!a 4e!avi vior oral al Cov Cover erag agee npu nputt +oma +omain in Cov Cover erag agee Error !andling Coverage Coverage (Clint (Clint - server alidation) lidation) Calc Calcula ulati tions ons Cove Coverag ragee 4ac 4ac End End Cov Cover erag agee UR2 (Uniform (Uniform Resourc Resourcee 2ocator 2ocator)) Coverage Coverage $tat $tatic ic text text test testin ing g
n aove coverage3s, UR23s testing and static text testing are ne# coverage3s for /e application functionality testing' Clint Server .s ,3#: To# To # tire &pplication 0at
T!in T
0ront End
+$:
4, C11, Kava, +>L, C, C1 1,P4
4ac End
"racle, $%2 server, M$6 &ccess, $yase, Mysqc, nformis
Monitoring, Manipulation
+ata $tore
T!ree Tire &pplication
Monitoring
)8 6+L 6+L1s Te Testin sting: g:
TCP.TP
&$P, K$P, 4 $cript, Kava server relets, R
Manipulation
+$:
+ata 4ase $erver
+ata $torage
t is an extra coverage in #e applications testing' +uring t!is test, test engineers validate lins execution and lins existences' 2ins execution means t!at #!et!er t!e lin is providing rig!t page or not, #!en you clic lin' 2in existence means t!at #!et!er t!e corresponding lin in rig!t place or not' To automate t!is testing using /inRunner, #e can select #e test option in add in manager during /inRunner launc!ing' /e can use *U C!ec Point concept to automate UR23s testing' n t!is automation, test engineers are creating c!ec points on text lins, image lins, cell, tales and frame' a8 Te%t Li Lin$:
t is a non standard o7ect and it consists of a set of non standard properties suc! as, =' >' ?' A' H' F'
4acgro 4acground und colour colour (
$yntax5 o7Oc!ecOgui(c!ec listN, C!eclist file nameN, expected value file'txtN, time to create) =8 )age age lin lin$:
t is also a non standard o7ect and it consists a set of non standard parameters suc! as' =' >' ?' A'
4roen 4roen 2in 2in (a (alid . :ot :ot vali valid) d) mage m age con conten tentt ('m ('mp p of ima image) ge) $our $ource ce (Pa (Pat! t! of of mag mage) e) Type Ty pe ( Plain mage, mage, dynamic dynamic mage, mage mage lin, image image utton, previously previously saved saved site image image ex' 4anner) H' UR2 UR2 (pa (pat! t! of of next next pag page) e) $yntax5 o7Oc!ecOgui(image file nameN, c!eclist fileN, expected value file'txtN, time to create) To create aove lie c!ec points, test engineers are collecting elo# lie information from development team' 2ocal
2in :ame @ xx xx x @ x x x x xx x x x x xx x
2ocal $erver (!ttp5..local server. !ttp5..local server. vdir.page'!tm)
"ff line UR2 x x xx x x xx xx xx x x x x xx TCP.TP
+$:
&ove document is also no#n as site map document' 4efore t!is #e functionality testing developers create t#o types of off line environments' 4ro#ser
/e $erver
+ata 4ase $erver
2ocal !ost (!ttp5..local (!ttp5..local !ost. !ost. vdir.page'!tm)
c" Cell:
Cell indicates an area of #e page' t contains of a set of text lins - image lins' To cover all t!ese lins t!roug! a single c!ecpoint, #e can use cell property' To get cell properties, test engineers select o7ect first and t!en t!ey c!ange t!eir selection from o7ect to parent cell' =' >' ?' A' H' F'
4acgro 4acground und colour colour (
$yntax5 #inOc!ecOgui(Cell logical nameN, c!eclist file name'clN, expected value file'txtN, time to create) (8 Ta=le:
t is also a non standard o7ect and it consists of a set of non standard properties' T!ese properties are not suitale to conduct UR2 testing' Test engineers are using t!ese properties for cells coverage during testing'(columns, format, ro#s - tale content)' e8 &+A'3:
t is also a non standard o7ect and it consists of a set of standard and non standard properties' 4ut test engineers are using non standard properties only for UR23s testing' =' >' ?' A'
4roen 4roen 2in 2in (lin (lin name, name, UR2, UR2, YE$ YE$ . :") :") Count Count o7ects o7ects (no of of standard standard - non standa standard rd o7ects o7ects in t!at t!at fram) fram) 0ormat 0ormat(!ie (!ierarc rarc!y !y of of inter internal nal lins) lins) 0rame 0rame Content Content($t ($tatic atic text text in #e page) page)
'txt 0ileOcompare 0rame content 66666 ☺ 666 ☺ ----☺ ------
'txt
'!tm
H' mages mages ( imag imagee file file name, name, type, type, #idt!, #idt!, !eig!t) !eig!t) F' 2ins(2 2ins(2in in names, names, Expect Expected ed off line line UR23 UR23s) $yntax5 #inOc!ecOgui(frame logical nameN, c!eclist file name'clN, expected value file'txtN, time to create) :ote5 in general test engineers engine ers are conducting UR23 UR23s testing at frame level' f a frame consists cons ists of !uge amounts of lins, test engineers are conducting on cell level' ))8 Static Static Te Te%t Te Testing: sting:
To conduct calculations - ot!er text ased tests, #e can use get text option in create menu' T!is option consists of A su options #!en you select #e test option in add in manager' a8 &ro &ro = =je ject ct ,in ,in(o (ow w:
To capture a #e o7ect value in to a variale #e can use t!is option' $yntax5 #eOo7OgetOtext(#e o7ect nameN, ^ ro# noN, ^column no, varialeN, text eforeN, text afterN, time to create) Example5 Rediff Mail 4ox S8noSu=jectDatesi>e7@@=9xx> Total
@xx
sum 9 setO#indo#(rediffN, H) tlOgetOro#Ocount(mail oxN,n)
Expected5 Total 9 sum of all received mail siBes
for( i9=, i Q n , i11) [ tlOgetOcellOdata(mail oxN, ^N-i,N^?N,s) s9sustr(s,=,lengt! (s)6>) sum 9 sum 1 s \ #eOo7OgetOtext(total #eOo7OgetOtext(to tal o7N, ^N, ^N, totN, , N, >) if(tot9 9sum) tlOstep(s=N, , calculation is passN) else tlOstep(s=N, =, caleculation is failN) =8 &ro &ro Scre Screen en area area::
T!is function not supports #e pages' c8 &ro &ro Selec Selectio tion: n:
To capture static text from #e pages, #e can use t!is option' :avigation5 :avigation5 Create menu _ get text _ from selection _ select required or text _ rig!t clic to relive _ select text efore - text after _ clic o' $yntax5 #eOframeOgetOtext(frame logical nameN, varialeN, text eforeN, text afterN, time to create) Example5 $!opping 66666☺ 666 &merican W xxxx as6666666666666 b &ustralian W xxxx as6666666666666666666 b ndian Rs xxx as6666666
Expected5 ndian Rs 9 &merican W value @ AH 1 &ustralian W value @ ?H
#eOframeOgetOtext(s!oppingN, x, &merican WN, asN, =) #eOframeOgetOtext(s!oppingN, y, &ustralian WN, asN, =) #eOframeOgetOtext(s!oppingN, x, ndian RsN, asN, =) if (B 99 x J AH 1 y J ?H) tlOstep(s=N, N, Test is passN) else tlOstep(s=N, N, Test is passN)
(" ,e= Te Te%t Chec Chec$ $ Point: Point:
To verify existence of text in a #e page in specified position t!roug! text efore and text after'
'txt
'!tm 6666666 ac66666666 666666666 xyB 66666666666666
Example5 o7OgetOtext(editN, x) #eOframeOgetOtext(frame logical nameN, x, acN, xyBN)5
,e= ,e = &unctions: 78 we=H we=Hli lin$ n$Hc Hcli lic$ c$ ! ":
/inRunner use t!is function to record a text lin operation' $yntax5 #eOlinOclic (lin textN ) 98 we=H we=Hi iag ageH eHcl clic ic$! $! ":
/inRunner use t!is function to record an image lin operation' $yntax5 #eOimageOclic(image file nameN, x, y) ;8 we=H we=H=r =row owse serH rHin invo vo$e $e!! ":
/inRunner use t!is function to open a #e application t!roug! test script' $yntax5 #eOro#serOinvoe('E . :et$cape, UR2N )5
,in+unner 8E .s ,in+unner B8E /inRunner I' provides elo# facilities as extra' _ &uto learning _ Per text Mode _ $elective Recording _ Run Time Record c!ec' _ /e Testing concepts
_ *U spy ( To identify #eat!er t!e o7ect is recogniBale or not) :ote 5 To stop spying #e can use 2ctrl 1 0?'
Testing Docuents %C %uality &nalyst . Pro7ect manager Test 2ead
Test Test Engineer Eng ineer
Test 2ead
Test Policy ` Test Test $trategy ` Test Test Met!odology Met!odolog y ` Test plan ` Test Cases ` Test Test Procedures Proced ures ` Test Test $cripts ` +efect Reports ` 0inal Test Test $ummary Report Repor t
Company level
Pro7ect level
)8 T3ST P PL)CG:
T!is document developed y %uality Control people(&lmost Management)' n t!is document %C defines Testing "7ectivesN' @@@@@@@@@@@@@@@@ @@@@@@@ Testing Testing +efinition
5
erification - alidation
Testing Testing Process
5
Proper planning efore starts testing'
Testing Testing $tandard
5
= defect per >H line of coding .= defect per = 0unctional Point
Testing Testing Measurement 5
))8 ))8 T3S T3ST T ST+AT ST+AT3*G: 3*G:
%uality &ssessment Measurement, Testing Testing Management Measurement, Process Capaility Measurement
@@@@@@@ (C'E'")
t is a company level document and developed y %uality &nalyst . Pro7ect Manager category people' T!is document defines testing testi ng approac!' Coponents 78 98
Scop Scopee < =je =jectiv ctive: e: +efinition - purpose of testing in organiBation' #ussine #u iness )ssue ssues: s: 4udget control for testing'
= FA ?F (+evelopment - Maintenance) (Testing) (Testing) ;8 Test App ppro roac ach: h: Mapping et#een development stages and testing issues' Develop Stages M Testing Te sting )ssues Ease of use &ut!oriBation
)nforation *athering < Analysis
Design
Co(ing
Syste Testing
@
@
'aintenance
+epends up on c!ange request
T!is Matrix is no#n as TE$T RE$P":$42TY M&T M&TR@N' ?8 Test Deli Delive vera ra=l =les es:: Required testing documents to e prepared' responsiilities ' @8 +oles +oles < +espo +espons nsi=i i=ilit lities ies:: :ames of 7os in testing team and t!eir responsiilities' 8 Coun Counic icati ation on < Status Status +ep +eport orting ing:: required negotiations et#een t#o consecutive 7os in Ftesting team' B8 Defec Defectt +epor +eportin ting g < Tr Trac$ing ac$ing:: Required negotiations et#een testing team and development team during test execution' 8 Autoa Autoati tion on < Testi Testing ng To Tools: ols: Purpose of automation and possiilities to go to test automation' 8 Testing 'easure 'easureents ents < 'etri 'etrics: cs: %&M, TMM, PCM' 7E8 +is$s < 'itigati 'itigations: ons: /!at possile prolems #ill come in testing and solutions to over come t!em' 778 778 Change < Configuration Configuration 'easureent 'easureent:: To !andle c!ange request during testing' 798 Tr Trainin aining g Plan: Required training secessions to testing team efore start testing process'
Testing )ssues: To define a quality soft#are organiBations are using =H testing issues as maximum' QC
Quality QAP' Test Te st &actor TL Testin Te sting g Te Techni chni/ue /ue T3 Test Te st Cases
0rom t!e aove model a quality soft#are testing process formed #it! elo# =H testing issues' 78 Auth Author ori> i>at atio ion: n: /!et!er user is valid are not to connect to application' 98 Acce Access ss Con Contr tro ol: /!et!er a valid user !ave permission to use specific service or not' ;8 Au(i Au(itt Trial: ial: Maintains Metadata aout user operations in our applications' ?8 Contin Continuit uity y of of pro proce cessi ssing: ng: nter process communication (Module to Module)' @8 Corr orrections ions:: Meet customer requirements in terms of functionality' 8 Coupling: Co6Existence #it! ot!er existing soft#are3s to s!are resources' B8 3as 3ase of of 6se 6se:: User friendliness of t!e screens' 8 3ase 3ase of per perat ate: e: nstallation, un6installation, +umping, +o#nloading, uploading etc 8 &ile &ile )nte )ntegr grit ity: y: Creation of acup' 7E8 +elia=ilit +elia=ility: y: Recover from anormal stage' 778 778 Perfora Perforance: nce: $peed of processing' 798 Porta=le Porta=le:: Run on different platforms' 7;8 Service Service Levels: Levels: order of functionalities' 7?8 'aintaina 'aintaina=le: =le: /!et!er our application uild is long time serviceale to customer site people are not' 7@8 'etho(ol 'etho(ology: ogy: /!et!er our testers are follo#ing standards are not during testing' Test &actors .s #lac$ #o% testing Techni/ues
=' &ut!ori &ut!oriBati Bation on
_ $ecuri $ecurity ty Testing sting _ 0unctionality Testing Testing
>' &ccess Control
_ $ecurity Testing _ 0unctionality Testing Testing
?' &udit Trial
_ 0unctionality Testing _Error !andling testing
A' Continui Continuity ty of processi processing ng
_ /!ite /!ite 4ox _ Execution _ operation
H' Corrections
_ 0unctionality testing _ Requirements testing
F' Coupling
_ nter $ystem testing
I' Ease of Use
_ User nterface testing _ manuals support testing
G' Ease of "perate
_ nstallation testing
D' 0ile ntegrity
_ 0unctionality testing _ Recovery Testing Testing
=' Reliaility
_ Recovery Testing (= user) _ $tress testing (Pea !ours)
==' Performance
_ 2oad testing _ $tress testing _ $torage testing
_ +ata olume testing =>' Portale
_ Compatiility testing _ Configuration Testing Testing
=?' $ervice 2evels
_ 0unctionality Testing _ $tress testing
=A' Maintainale
_ Compliance Testing Management 2evel Testing' Testing' _ Compliance Testing
=H' Met!odology
)))8T3ST '3T0DL*G: '3T0DL*G:
t is a pro7ect level document' Met!odology provides required testing approac! to e follo#ed for current pro7ect' n t!is level %& . PM selects possile approac!es for corresponding pro7ect testing t!roug! elo# procedure' $tep =5 &cquire Test $trategy $tep >5 +etermine pro7ect type' Type
0 gat!ering - &nalysis
+esign
C od i ng
$ystem Testing
Maintenance
Traditional
"ff $!elf
@
@
@
@
Maintenance
@
@
@
@
:ote5 +epends up on pro7ect pro7e ct type %&.PM decrease numer of columns colu mns in TRM' $tep ?5 +etermine Pro7ect requirements :ote5 +epends on pro7ect requirements req uirements %&.PM decreases numer of ro#s in TRM' $tep A5 dentifies $cope of application :ote5 +epends on expected future futu re en!ancements %&.PM add some of previously prev iously deleted ro#s and columns' $tepH5 dentifies tactical riss' :ote5 +epends on analyBed riss, %&.PM decreases numer of selected selecte d issues (Ro#s) in TRM' $tep F5 0inaliBe TRM for current pro7ect
Receive 4uild
$tepI5 Prepare system test plan' Test $tep G5Test Prepare modules Test test plans if required' nitiation Planning +esign
Testing Process:
Test Execution Regression
+efect
Test Reporting
Test Closer
P3T Process !Process 3%pert Tools an( Techni/ues" :
t is a refinement form of model' t defines mapping et#een development stages and testing stages' 0rom t!is model organiBations are maintaining separate team for functionality and system testing' Remaining stages of testing done y development people' T!is model developed in
` Test nitiation ` Test Planning - Training ` Test +esign ` Test Test case selection closer nitial 4uild ` $anity . $moe . T&T. 4T ( 2evel ) ` Test &utomation `
Create test scripts . Test atc!es . Test $uits ` :ext 4atc! Resolving $elect a atc! and start execution Regression ` 2evel = 2evel > +efect 0ixing f a test engineer got a mismatc! ndependent 4atc! +efect +evelopers $uspend t!at atc! Reporting ` "t!er#ise ` Test Closer ` 0inal Regression . Release testing . Pre &cceptance . Post Mortem (2evel ?) ` User &cceptance Testing Testing ` $ign "00 Modified 4uild
).8 ).8 T3ST PLANN)N*:
&fter finaliBation of possile tests to e applied for corresponding pro7ect, test lead category people concentrate on test plan document preparation to define #or allocation in terms of #!at to test;N, /!o to test ;N, #!en to test ;N, and
6 6 6
Team 0o 0ormation den denti tify fy Tactic ctical al Ris Risss Prepare Te Test Pl Plan $ystem Test Plan
TRM
6 Revie# Test Test Plan
78 Tea &or &orat atio ion: n:
n general, test planning starts #it! testing team formation' To define a testing team, test plan aut!or depends on elo# factors' i' &vaila ailai ili lity ty of of tes teste ters rs ii' ii' Test dura durati tion on iii' &vailaili &vailaility ty of test environm environment ent Resources Resources Case Stu(y: Test Te st Duration: Durat ion: 6 Client Client . $erver $erver or /e or ERP ERP 6 $ystem $./ 6 Mac!ine critical
6
Team $iBe $iBe
6 ? to H mon mont!s t!s function functional al - system system testing testing 6 I to D mont!s functional - system testing 6 => to =H mont!s functional - system testing (Roots, satellites etc ) 6 ? 5 = (devel (develope opers rs 5 Testers) sters)
98 )(entify )(entify Ta Tactical ctical +is$s:
&fter completion testing team formation, test plan aut!or analyses possile riss and mitigations' Example5 +is$ 7 : +is$ 9 : +is$ ; : +is$ ? : +is$ @ : +is$ : +is$ B :
2ac of no#ledge of test engineers on t!at domain' 2ac of resources 2ac of udget ( Time ) 2ac of test data ( $ome times test engineers are conduction A(hoc testing depends on past experiences) 2ac of development process rigor ($eriousness) +elays in delivery 2ac of communication ( n et#een Testing team - Test lead . developers . testing team)
;8 Prep Prepar aree test test Plan Plan :
&fter completion of testing team formation and riss analysis, test plan aut!or concentrates on test plan documentation in EEEN format' &orat: 78 Test plan plan )D: )D: Unique :umer . :ame 98 )ntr )ntro( o(uc ucti tion on:: &out Pro7ect ;8 Test )tes: es: Modules . 0unctions . $ervices . 0eatures ?8 &eatur &eatures es to =e Teste(: ste(: Responsile modules for test design' @8 &eatur &eatures es not to =e =e test teste(: e(: /!is! ones and #!y not' Note: ?6H /!at to test; 8 Approach: 2ist of selected tec!niques to e applied on aove specified modules (0rom
finaliBed TRM) B8 &eatur &eaturee pass passfa fail il crit criter eria: ia: #!en a feature is pass and #!en a feature is fail' 8 Su Susp spen ensi sion on Cri Crite teri ria: a: Possile anormal situations raised during aove features testing' 8 Test 3n 3nvi viro rone nent nt:: Require !ard#are - soft#are to conduct testing on aove features' 7E8 Te Test st (elivera=les: Required testing documents to de prepared during testing'
ef ore start every feature featur e testing' 778 778 Te Test st Tas$s: Tas$s: :ecessary tass to do efore Note: F 8==
engine ers and training requirements requ irements to t!em' 798 Staff < Tr Training aining Nee(: :ames of selected test engineers 7;8 +esponsi +esponsi=ilit =ilities: ies: /or allocation to aove selected staff memers' Note : => - =? /!o to test; 7?8 Sche Sche(ule (ule:: +ates - Times Note: =A 8 #!en to test; 7@8 +is$s < 'itigati 'itigations: ons: Possile testing level riss and solutions to overcome t!em' 78 Approval Approvals: s: $ignatures of test plan aut!or and PM.%&'
?8 +evi +eview ew Test Plan Plan::
&fter completion of plan document preparation test plan aut!or conducts a revie# for completeness and correctness' n t!is revie# plan aut!or follo#s Coverage &nalysisN
⇒ ⇒ ⇒
4R ased coverage (/!at to test; Revie#) Riss 4ased coverage (/!en and /!o to test; Revie#) TRM ased coverage (
Case Stu(y: Delivera=le
Test Case $election
+esponsi=ility
Test Engineer
Copletion tie
? to A days
Test case revie#
Test lead . engineer
A to H days
Test 2ead
= to > days
Test engineer
= to > days
Test engineer
A to F days
Test engineer . Every one
"n going
Test 2ead
/eely /eely T#ice T#ice
Test 2ead . Test Engineer
A toH days
User &cceptance Testing Testing
Customer site people . involvement of testing team
A to H days
$ign "00
Test 2ead
= to > days
Requirements Traceaility matrix Test Test &utomation (including $anity testing) Test Test execution including Regression testing +efect reporting Communication $tatus reporting Test Test closure - 0inal Regression
.8 Test Des Desig ign: n: &fter completion of test planning and required training to testing team, corresponding testing team memers #ill prepare list of test cases for t!eir responsile modules' T!ere are t!ree types of test case design met!ods to cover core level testing (Usaility - 0unctionality testing)' =' 4usine 4usiness ss logic logic ased test test case design design >' nput nput +omain +omain ased ased test case case design design ?' User User interfa interface ce ase test test case design design 78 #usine #usiness ss logic logic =ase( =ase( tes testt case case (esign (esign::
n general test engineers are #riting a set of test cases depends up on use cases in $./ R$' Every use case descries functionality in terms of input, process and output' +epends on t!is use cases test engineer are #riting test cases to validate t!at functionality' #+S ↓ Use Cases . 0unctional $pecs ↓ <2+ ↓ 22+3s ↓ Co(ing! 833"
Test Cases
0rom t!e aove model test engineers are preparing test cases depends on corresponding use cases and every test case defines a test condition to e applied' To prepare test cases, test engineers study use cases in elo# approac!' Step 7: Collect use cases of our responsile modules'
Step 9: $elect use cases and t!eir dependencies from t!at list
Use Case
Use Case
Use Case
+eterminant Step 987: Step 989: Step 98;: Step 98?:
+ependent
dentify entry condition (4ase $tate) dentify nput required (Test +ata) dentify exit condition (End state) dentify output and out come (Expected)
Multiply
2ogin "peration U+
nput=
@@@
nput >
P/+
: 4"@
@@@ @@@
@@@
"L "L @@@@ Result "utput
"utcome
Step 98@: dentify normal flo# (:avigation) Step 98: dentify alternative flo#s and exceptions (Protocols) Step ; : /rite test cases depends on aove information' Step ? : Revie# test cases for completeness and correctness' Step @ : *o to step > until completion of all use cases' 6se Case 7:
& login process allo#s U+ - P/+ to validate users' +uring t!is validation, login process allo#s U+ as alp!anumeric from A to =F c!aracters long and P/+ allo#s alp!aets in lo#er case from A to G c!aracters long' Test Case 7 5 $uccessful entry of U+' #.A!Si>e"
Min 8 A Max 8 =F Min6= 8 ? Min1= 8 H Max6= 6 =H Max1=8 =I
→ → → → → →
3CP!TGP3"
Pass Pass 0ail Pass Pass 0ail
#.A!Si>e" Test Te st Case 9: $uccessful entry of P/+ Min 8 A Pass → → Max 8 G Pass → Min6= 8 ? 0ail Min1= 8 H Pass → → Max6= 6 I Pass Max1=8 D 0ail →
alid a 8 B, &6 , 8D
nvalid $pecial c!aracters 4lan
3CP!TGP3"
alid a8B
nvalid &6 , 8D $pecial c!aracters 4lan
Test Te st Case ;: $uccessful login operation
U +
P/+
alid alid n alid alue 4lan
Criteria
alid n valid alid 4lan alue
Pass 0ail 0ail 0ail 0ail
6se Case 9 :
n a s!opping application user can apply for different purc!ase orders' Every purc!ase orders allo#s item selection numer and entry of qty up to =' $ystem returns one item price and total amount depends on given quantity' Test Case 7: $uccessful $election of item numer' Test Test Te st Case 9: $uccessful Entry of %TY
3CP!TGP3"
#.A!range"
Min 8 = Max 8 = Min6= 8 Min1= 8 > Max6= 6 D Max1=8 ==
→ → → → → →
Pass Pass 0ail Pass Pass 0ail
alid 8D
nvalid &6 , a6B $pecial c!aracters 4lan
Test Te st Case ;: $uccessful Calculation, Total 9 Price @ %TY
6se Case ;:
n an insurance application, user can apply for different types of insurance policies' /!en t!ey select insurance type as 4, system ass age of t!at customer' T!e age s!ould e =G years and Q F years' selection of type 4 insurance' Test Case 7: $uccessful Test #.A!range" 3CP!TGP3" Test Te st Case 9: $uccessful focus to age age Test Te st CaseMin ;: $uccessful 8 =D entry → ofPass alid nvalid Max 8 HD → Pass 8D &6 , Min6= 8 =G → 0ail a6B Min1= 8 > → Pass $pecial Max6= 6 HG → Pass c!aracters Max1=8 F → 0ail 4lan
6se Case ?:
& door opens #!en a person comes in front of door' & door closed #!en a person come in' Test Case Test Test Te st Case Test Te st Case Test Te st Case
7: 9: ;: ?:
$uccessful door opens, #!en person comes in front of door' Unsuccessful door open due to asence of t!e person in front of t!e door' $uccessful door closing after person get in' Unsuccessful door closing due to person standing at t!e door'
6se Case @: Prepare test cases for #as!ing mac!ine operation' Test Case 7: $uccessful po#er supply' Test Test Te st Case 9: $uccessful door open Test Te st Case ;: $uccessfully filling #ater' Test Te st Case ?: $uccessful drooping of detergent Test Te st Case @: $uccessful filling of clot!s Test Te st Case : $uccessful door closing Test Te st Case B: Unsuccessful door close due to over flo# of clot!s Test Te st Case : $uccessful selection of #as!ing settings Test Te st Case : $uccessful #as!ing operation Test Te st Case 7E: Unsuccessful #as!ing due to #rong settings Test Case 77: Unsuccessful #as!ing due to lac of po#er Test Te st Case 79: Unsuccessful #as!ing due to lac of #ater Test Te st Case 7;: Unsuccessful #as!ing due to #ater leaage Test Te st Case 7?: Unsuccessful #as!ing due to door open in t!e middle of t!e process Test Te st Case 7@: Unsuccessful #as!ing due to mac!inery prolem Test Te st Case 7: $uccessful +ry clot!s 6se Case : Prepare test case for money #it!dra#al from &T &TM' Test Case Test Test Te st Case Test Te st Case Test Te st Case
7: 9: ?: ?:
$uccessful insertion of card Unsuccessful operation due to #rong angle of card insertion Unsuccessful operation due to invalid card $uccessful entry of pin numer
Test Case Test Test Te st Case Test Te st Case Test Te st Case
@: : B: :
Unsuccessful operation due to entry of #rong pin no t!ree times $uccessful selection of language $uccessful selection of account type Unsuccessful operation due to invalid account type selection
Test Case : $uccessful selection of #it!dra#al option Test Test Te st Case 7E: $uccessful entry of amount
Test Case 77: Test Te st Case 79: Test Te st Case 7;: Test Te st Case 7?: Test Case Test Test Te st Case Test Te st Case Test Te st Case Test Te st Case Test Te st Case
7@: 7: 7B: 7: 7: 9E:
Test Te st Case 97:
Unsuccessful operation due to #rong denominations $uccessful #it!dra#al (Correct amount, Rig!t receipt and card come ac) Unsuccessful #it!dra#al due to amount possile alance' Unsuccessful #it!dra#al due to amount +ay limit (ncluding Multiple transactions) Unsuccessful transaction due to lac of amount in &TM Unsuccessful due to server failure Unsuccessful due to clic cancel after insert card Unsuccessful due to clic cancel after insert card - P: Unsuccessful due to clic cancel after insert card, P: - language selection Unsuccessful due to clic cancel after insert card, P:, language - account type selection Unsuccessful due to clic cancel after insert card, P:, language, account type amount selection
6se Case B:
n an E64aning application users can connect to an server using !is personnel computers' n t!is login process user can use elo# fields' Pass#ord &rea code Prefix $uffix Commands
→ → → → →
F digit no ? digit no, allo#s lan ? digit no, does not egins #it! or =' F digit alp!anumeric C!ec deposit, Money transfer, 4ill pay and Mini statement'
Test Case 7: $uccessful entry of pass#ord' 3CP!TGP3"
#.A!Si>e"
Min 9 Max 9 F → Min6= 8H → Min1= 8I →
Pass 0ail 0ail
alid 8D
nvalid &6 , a6B $pecial c!aracters 4lan
Test Case 9: $uccessful entry of area code
3CP!TGP3"
#.A!Si>e"
Min 9 Max 9 ? → Min6= 8> → Min1= 8A →
Pass 0ail 0ail
alid 8D 4lan
nvalid &6 , a6B $pecial c!aracters
Test Case ;: $uccessful entry of prefix 3CP!TGP3"
#.A!+ange"
Min 8 > Max 8 DDD Min6= 8 =DD Min1= 8 >= Max6= 6 DDG Max1=8 =
→ → → → → →
Pass Pass 0ail Pass Pass 0ail
alid 8D
nvalid &6 , a6B $pecial c!aracters 4lan
Test Case ?: $uccessful entry of suffix
3CP!TGP3"
#.A!Si>e"
Min 9 Max 9 F → Min6= 8H → Min1= 8I →
Pass 0ail 0ail
alid 8D &6 , a8B
nvalid 4lan $pecial c!aracters
Test Case @: $uccessful selection of commands suc! as c!ec deposit, money transfer, ills pay and mini statement' Test Te st Case : $uccessful connect to an server #it! all valid values Test Case B: $uccessful connect to an server #it! out filling area code' Test Case : Unsuccessful operation due to #it! out filling all fields except area code' Test Case &orat:
+uring test design test engineers are #riting list of test cases in EEE format' 78 98 ;8 ?8 @8
Test Case )D Test Case Nae &eatures to =e Teste( Test Suit )D Pr P riority
F' Te Test st 3nvironent
: Unique numer or name : T!e name of test condition to e tested' : Module . 0unction . 0eature : 4atc! + in #!ic! t!is case is a memer' : mportance of test case
P 5 4asic 0unctionality P= 5 *eneral 0unction (.P domain, Error !andling, Com Compati patii ili lity ty,, nte nterr syst system emss etc) etc) P> 5 Cosmetic (User nterface) : Required
I' Te Test st 3ffort!Personhr" 3ffort!Person hr" G' Test Duration D' Test Setup =' Test Proce(ure
mts max) : Time to executive t!is test case (Ex 5 > mts : +ate - Time : Required testing tass to do efore starts t!is case execution' : $tep y step procedure to executive t!is test case'
&orat:
$tep :o
&ction
.P required
Expected
&ctual
Test +esign
Result
Comments
Test Execution
778 778 Te Test st Case Pass&ail Pass&ail Criteria: /!en t!is case is pass and #!en t!is case is fail' Note: n general test engineers are #riting list of test cases along #it! step y step procedure only' 3%aple: Prepare test procedure for elo# test case' $uccessful file save in note pad'
$tep :o
&ction
.P required
Expected
=
"pen note pad
6
Empty Editor
>
0ill #it! text
6
$ave icon enaled
?
Clic save icon
6
$ave #indo# appears
A
Enter file name - Uniq Unique ue clic save name
0ile 0ile 0ile 0ile name name appea appears rs in title ar of editor
3%aple9: Prepare test scenario #it! expected for elo# test case' $uccessful Mail replyN in Ya!oo' Ya!oo'
$tep :o
&ction
.P required Expected
=
2ogin to site
alid U+ nox appears alid alid P/+
>
Clic nox
6
Mail ox appears
?
Clic Mail $u7ect
6
Mail Message &ppears
A
Clic Reply
6
H
Type :e# massage 6 and clic send
Compose /indo# appears #it! To55 Received Mail + To $u5 Received mail $u7ect CC5 "ff 4CC5 "ff M$*5 M$*5 Receiv Received ed message message #it! #it! comments' &cno#l &cno#ledge edgemen mentt from /E4 /E4 server
98 )nput )nput Doain Doain #ase( #ase( Te Test Case Case Design: Design:
n general test engineers are #riting maximum maximum test cases depend on use cases . functional specs in $./ R$' T!ese functional specifications provide functional descriptions #it! inputs, outputs and process' 4ut t!ey are not responsile to provide information aout siBe and type of input o7ects' To collect t!is type of information test engineers study +ata ModalN of responsile modules (E6R +iagrams in 22+3s) 22+3s) +uring data model study, test engineer follo#s elo# approac!' Step 7: Step 9: Step ;: Step ?:
Collect data model of responsile modules $tudy every input attriute in terms of siBe, type and constraints' dentify critical attriutes in t!at list, #!ic! participated in manipulations and retrievals' dentify non6critical attriutes suc! as 7ust input, output type'
Example5
Critical
&.C :o &.C :ame 4alance :on Critical &.C "rders
inp ut o7ect' Step @: Prepare 4& and ECP for every input .P &ttriute
ECP alid
nvalid
4&($iBe . Range) Min Max
generall test test engine engineer erss are prepa prepari ring ng step step y step step proce procedur duree ased ased test test cases cases for Note: n genera functionality testing' Test engineers prepare valid and invalid tale ased test cases for input domain of o7ect testing' Case Stu(y:
Prepare test cases #it! required documentation depends on elo# scenario' n a an automation automation $oft#a $oft#are, re, fixed fixed deposit deposit is function functionali ality ty'' 4an employee employee operate operatess t!e functionality #it! elo# inputs' Customer :ame _ &lp!aets in lo#er case' _ Rs =H to =' &mount _ Up to => mont!s Tenure _ :u :umeric /it! decimal nterest 0rom functional specification (Use Cases), if tenure is = mont!s interest must =' Test Case 7:
Test Case +5 Test Case Case :am :ame5
TCO0+O= $ucc $ucces essf sful ul Entry ntry of cust custom omer er :am :ame
+ata Matrix5 .P &ttriute
ECP alid
Customer :ame a to B
4&($iBe)
nvalid & to to D $pecial C!aracters 4lan
Min
Max
= c!aracters
>HF c!aracters
Test Case 9:
Test Case +5 Test Ca Case :ame5
TCO0+O> $ucc uccessfu ssfull Ent Entry ry of &mount ount
+ata Matrix5 .P &ttriute
ECP alid
4&(Range) nvalid & to a to B $pecial C!aracters 4lan
&mount 6D
Min
Max
= H
=
Test Case ;:
Test Case +5 Test Ca Case :ame5
TCO0+O? $ucc uccessfu ssfull Ent Entry ry of Te Tenure
+ata Matrix5 .P &ttriute
ECP alid
4&(Range) nvalid & to a to B $pecial C!aracters 4lan
Tenure 6D
Min
Max
=
=>
Test Case ?:
Test Case +5 Test Ca Case :ame5
TCO0+OA $ucc uccessfu ssfull Ent Entry ry of n nteres rest
+ata Matrix5 .P &ttriute nterest
Test Case @:
ECP alid 6D /it! +ecimal
4&(Range) nvalid & to a to B $pecial C!aracters 4lan
Min
Max
=
=
Test Case +5 Test Case Case :am :ame5 Test Test Procedure5 Proced ure5 Step No
TCO0+OH $ucc $ucces essf sful ul fixe fixed d dep depos osit it oper operat atio ion n
Action
)P re/uire(
3%pecte(
=
2ogin to an $oft#are
alid +
Menu &ppears
>
$elect 0ixed +eposit
6
0+ form &ppears
?
0ill 0ill all all fiel fields ds and clic clic "L
&ll valid &ny in valid
&cno &cno#l #led edgem gement ent from from an server Error message from an server
Test Case :
Test Case +5 Test Case Case :ame :ame55 = Test Test Procedure5 Proced ure5 Step No
TCO0+OF Unsuc Unsucces cessfu sfull fixed fixed deposi depositt oper operati ation on due due to Time ime = mo mont nt!s !s - nte nteres restt Q
Action
)P re/uire(
3%pecte(
=
2ogin to an $oft#are
alid +
Menu &ppears
>
$elect 0ixed +eposit
6
0+ form &ppears
alid custome customer r :ame, &mount and Time = &cno &cno#l #led edgem gement ent #it! interest an server = ?
0ill 0ill all all fiel fields ds and clic clic "L
from from
alid custome customer r :ame, &mount Error message from an and Time = server #it! interest Q=
Test Case B:
Test Case +5 Test Case Case :ame :ame55 Test Test Procedure5 Proced ure5 Step No
TCO0+OI Unsuc Unsucces cessfu sfull fixed fixed deposi depositt oper operati ation on due due to to #it! #it! out out fil filli ling ng all all fie fields lds''
Action
)P re/uire(
3%pecte(
=
2ogin to an $oft#are
alid +
Menu &ppears
>
$elect 0ixed +eposit
6
0+ form &ppears
?
alid alid customer :ame, &mount &mount 0ill 0ill all all fiel fields ds and clic clic and Time "L interest' 4ut some as lan
:ote5
Error message from an server
Test Test case 8 A _ .P domain Test case H 8 F _ 0unctionality Test case ase I _ Erro rror !and !andlling
;8 6ser )nterfac )nterfacee #ase( #ase( Te Test Case Case Design: Design:
To conduct usaility testing test engineers #riting a list of test cases depends on our organisation user interface conventions, *loal interface rules and nterest of customer site people' 3%aples: Test Case 7: $pell C!ec Test Case9: Case9: *rap!ics c!ec ($creen level alignment, font, style, colour, siBe(o7ect #idt! and !eig!t) and Microsoft F rules) Test Case ;: Meaningful error messages' Test Te st Case ?: &ccuracy of data displayed
&mount
&mount W
+"4
+ "4
66.6 6.66
+ "4
66.66.66
(++.MM.YY)
Test Case @: &ccuracy of data in data ase as a result of user inputs'
='IFG
='II
Test
0orm +ata 4ase Tale &ccuracy of data in a data ase as a result of external factors' Exam xample5 ple5
Case
='II
:
Report
0ile ile atta attac! c!m ments ents'' *ree *reeti ting ngss one one year ear
Test Case B: Meaning full
&fter &fter comp comple leti tion on of all all possi possile le test test cases cases #rit #riting ing for respon responsi sile le mo modul dules, es, test testing ing team team concentrates on revie# of test cases for completeness and correctness' n t!is revie# testing team applies coverage analysis' _ _ _ _ _
4R ased coverage Use case ased coverage +ata mo modal a ased co coverage User nterface ased coverage Test Respon sponsi si ility ity as aseed co cover verage age
&t t!e end of t!is revie# test lead prepare Requirements Tracaility MatrixN or Requirements alidation Matrix' Matr ix' #usiness +e/uireents
@@@@@@@ (2ogin) 5 5 5 5 5 5 5
Sources !6se casesF Data o(el etc" @@@@@@@@ (Mail "pen)
Test Te st Cases
@@@@@@@@ @@@@@@@@ @@@@@@@@@
@@@@@@@@@ ( Mail Compose)
@@@@@@@@ @@@@@@
@@@@@@@@@ (Mail Reply) 5 5
@@@@@@@ @@@@@@@ @@@@@@@
0rom t!e aove model traceility matrix defines mapping et#een customer requirements and prepared test cases to validate t!at requirements' ).8 ).8 T3ST 33C6T)N:
&fter completion completion of test cases selection - t!eir revie#, revie#, testing team concentrates on uild release from development and test execution on t!e uild' 78 Test 3%ec 3%ecuti ution on Leve Levels ls Phase Phases: s:
Developent
Testing
$tale 4uild
2evel ($anity . T&T .
4T)
` +efect 0ixing
+efect Reporting
Test &utomation
2evel = (Compressive)
+efect Resolving
Modified 4uild
2evel > (Regression)
` 2evel ? (0inal Regression)
98 Test 3%ecuti 3%ecution on Levels Levels .s .s Te Test Cases: Cases:
2evel _ P test cases
2evel = _ &ll P, P= and P> test cases as atc!es 2evel > _ $elected P, P= and P> test cases #'r't modifications 2evel ? _ $elected P, P= and P> test cases #'r't critical areas in t!e master uild' ;8 #uil( .ersion ersion Control Control::
n general test engineers are receiving uild from development in elo# modes' 4uild _ $erver
$oft 4ase
` 0TP(0ile Transfer Protocol) Test Test Environment
Testers
0rom t!e aove approac! test engineers are dumping application uild from server to local !ost t!roug! 0TP' 0TP' $oft 4ase means t!at collections of soft#are3s' soft#are3s' +uring test execution test engineers are receiving modified uilds from soft ase' To distinguis! old old uil uilds ds - ne# ne# uil uild, d, deve develo lopm pmen entt team team give givess uniq unique ue vers versio ion n no in syst system em,, #!ic #!ic! ! is understandale to testers' 0or t!is version version controll controlling, ing, develope developers rs are using using version version control control tools tools also'(E also'(Ex5 x5 $$( $$(is isual ual $ource safe) ?8 Level Level E: ! Sanit Sanity y TA TAT #.T" #.T"
&fter receiving initial uild test engineers concentrate on 4asic functionality of t!at uild, to estimate satiaility for complete testing' n t!is sanity testing test engineers try to execute all P test cases to cover asic functionality' f functionality not #oring or functionality is missing testing team re7ect t!at uild' if testers decided staility, t!ey concentrate on test execution of all test cases to detect defects' +uring t!is sanity testing, test engineers oserve elo# factors on t!e uild' _ Understandale _ "peratale _ Consistency _ Controllale _ $implicity _ Maintainale _ &utomatale 0rom t!e aove G testale issues sanity testing is also no#n as Testaility Testing or "ctangle Testing' @8 Test Auto utoat atio ion: n:
f test test autom automati ation on is possi possile le t!en t!en test testing ing team team conce concentr ntrate ate on test test script scriptss creat creation ion using using correspo correspondin nding g testing testing tool' tool' Every Every test test script script consist consistss of navigati navigational onal stateme statements nts along along #it! #it! c!ecpoints' $tale 4uild
Test &utomation ($elective &utomation) (&ll P and Carefully selected P= test cases) 8 Level Level 7!Copr 7!Coprehen ehensive sive Testing" sting" :
&fter completion of sanity testing and possile test automation, testing team concentrates on test atc!es formation #it! dependent test cases' case s' Test Test atc! is also no#n n o#n as test suit or test set' +uring t!ese test atc!es execution, test engineer prepare test log document t!is document consists of t!ree types of entries' _ Passed _ 0ailed _ 4loced
8 &ll expected 9 &ctual 8 &ny one expected X9 &ctual 8 Corresponding parent functionality failed' Coprehensive Test Cycles
Passed $ip n queue
=
n Progress ?
>
0ailed
A
Closed
H
4loced
Partial Pass . 0ail
B8 Level Level 9 !+egr !+egres essio sion n Te Testing" sting"::
+uring compre!ensive test execution, test engineers are reporting mismatc!es as defects to developers' &fter receiving modified uild from t!em, test engineers concentrate on regression testing to ensure ug fixing #or and occurrences of side effects' Resolved 4ug $everity
Medium &ll P Carefully selected P= Carefully selected P>
"n Modified 4uild Case 7:
2o# $ome P $ome P= $ome P>
f development team resolved ug impact ($everity) is !ig!, test engineers re execute all P, P= and carefully selected P> test cases on t!at modified 4uild' Case 9:
f development team resolved ug impact ($everity) is medium, test engineers re execute all P, carefully selected P= and some of P> test cases on t!at modified 4uild' Case ;:
f development team resolved ug impact ($everity) is lo#, lo#, test engineers re some of P, P= and P> test cases on t!at modified 4uild' Case ?:
f development team released modified uild due to sudden c!anges in pro7ect requirements, test engineers re execute all P, all P= and Carefully selected P> test cases #'r't t!at requirements modifications' .))8 .))8 T3S T3ST T +3P+ +3P+T) T)N*: N*:
+uring compre!ensive testing, test engineers are reporting mismatc!es as defects to developers t!roug! EEE format' 78 98 ;8 ?8 @8 8 B8 8
Defect )D Description &eature Test Case Nae +epro(uci=le )f Ges )f N Status
8 Severity
: Unique :umer . :ame : $ummary of defect : Module.0unction.$ervice (n t!is module test engineers found t!is defect) : Corresponding failed test condition : Yes . :" (Yes 8 every time +efect appears, :" 8 Rarely defect appears) : &ttac! test Procedure : &ttac! snap s!ot and strong reasons' ti me, Reopen 8 Reappearance : :e# . Reopen (:e# 8 +efect appears first time, of t!e defect once closed) : $eriousness of defect #'r't functionality 0ighM /it! out resolving t!at defect test engineer is not ale to continue testing'($no# $topper) 'e(iuM &le to continue testing ut mandatory to resolve'
LowM May or may not resolve 7E8 Priority : mportance of t!e defect #'r't customer(
: PM . Team 2ead : Programmers :ame : +ate of resolving
78 78 +eso +esolu luti tion on Ty Type : 9E8 Approve( #y : $ign of PM
Defect Age:
T!e time gap et#een Reported onN and Resolved "nN' Defect Su=ission Process: Large-Scale rganisations
%& Test Manager f !ig! severity defect re7ected Test 2ead Test Engineer
Pro7ect manager ` Team 2ead ` +eveloper
Transmittal Reports 'e(iu < Sall-Scale rganisations
Pro7ect Manager
Test 2ead Test Engineer
Team 2ead ` +eveloper
Transmittal Reports Defect Status Cycle:
:e# ` interested to resolve "pen . Re7ected . +eferred (defect accepted ut not interested in t!is version)
` Closed ` Reopen
Defect Life Cycle #ug Life Cycle:
+etect +efect ` Reproduce +efect `
Report +efect ` 0ix +efect ` Resolve +efect ` Close +efect Defect +esolution Type:
&fter receiving defect reports from testers, developers revie#s t!at defect and send resolution resolution type to testers as reply' 78 Dup upli liccate ate: Re7ected due to t!is defect same as previously reported defect' 98 3n 3nha hanc nce een ent: t: Re7ected due to t!is defect related to future requirement of customer' Re7ected d due to t!is defect raised raised #'r' #'r'tt limitat limitations ions of
Types of Defects: 78 6ser 6ser )nte )nterfa rface ce #u #ugs: gs: Low Low Sever Severity ity
Ex =5 $pelling Mistae _ 5 mproper alignment _ lo# priority 98 #oun(ary #oun(ary +elate +elate( ( #ugs: 'e(iu 'e(iu Severity Severity
Ex =5 +oes not allo# valid type _ 5 &llo#s invalid type also _ 2o# Priority ;8 3rr 3rror or 0an(ling 0an(ling #ugs: #ugs: 'e(iu 'e(iu Severi Severity ty
Ex =5 +oes not providing error massage #indo# _ 5 mproper meaning of error massages _ 2o# Priority ?8 Calcul Calculati ation on #ugs #ugs:: 0igh 0igh Sev Severi erity ty
Ex =5 0inal output is #rong _ lo# priority Ex >5 +ependent results are #rong _ !ig! priority @8 +ace +ace Con(it Con(ition ion #ugs #ugs:: 0igh 0igh Sever Severity ity
Ex =5 +ead 2oc _ 5 mproper order of services _ 2o# Priority 8 Loa( Loa( Con(it Con(ition ion #ugs #ugs:: 0igh 0igh Severi Severity ty
Ex =5 +oes not allo# multiple users to operate _ 5 +oes not allo# customer expected load _ 2o# Priority B8 0ar(wa 0ar(ware re #ugs: #ugs: 0igh 0igh Seve Severit rity y
Ex =5 +oes not !andle device _ 5 /rong output from device _ 2o# Priority 8 )D Contro Controll #ugs: #ugs: 'e(iu 'e(iu Severit Severity y
Ex =5 2ogo missing, #rong logo, version no mistae, copyrig!t #indo# missing, developers name missing, tester names missing' 8 .ersion Control Control #ugs: #ugs: 'e(iu 'e(iu Severity Severity
Ex5 +ifference et#een t#o consequitive uild versions' 7E8 Source #ugs: 'e(iu 'e(iu Severity Severity
Ex5 Mistaes in !elp documents'
.)))8 )))8 Test Clo Closer: ser:
&fter completion of all possile test cycles executions, test lead conducts a revie# to estimate completeness - correctness of testing' n t!is revie# test lead follo# elo# factors along #it! test engineer' 78 Cove Covera rage ge Analy nalysi sis: s:
_ 4R ased coverage _ Use case ased coverage _ +ata modal ased coverage _ U ased coverage _ TRM ased coverage 98 #u #ug g Densit nsity: y: Ex5
& _ > 4 _ > C _ A 0inal Regression + _ >
;8 Analys Analysis is of Differ Differe( e( #ugs: #ugs:
/!et!er differed ugs are deferrale or not; &t t!e end of t!is revie#, testing testing team concentrates on final regression testing on !ig! ug density modules if time is availale' Level ;: (0inal Regression . Pre &cceptance Testing)
*at!er Regression Requiremen ts Effort Estimation
Test Reporting
0inal Regression
Plan Regression
)8 6ser Acceptance Testing: Testing:
&fter completion of final regression cycles, our organisation management concentrates on user acceptance testing to collect feedac' T!ere are t#o approac!es to conduct t!is testing suc! as α 6 test and β 6 test' 8 Sig Sign && &&:: &fter completion completion of user acceptance testing and t!eir modifications, modifications, test lead concentrates concentrates on final test summary report creation' t is a part of soft#are release note' T!is final test summary report consists of elo# documents'
_ Test $trategy . Met!odology (TRM) _ $ystem Test Plan _ Requirements Traceility matrix _ &utomated Test $cripts _ 4ugs $ummary Report #6* Description
&eature
&oun( #y
Severity
Status !Close(Differe("
Coants
Au(iting: To audit testing process %uality people t!ree types of measurements - Metrics' 78 QA' !Quality !Quality Assesse Assessent nt 'easu 'easure reent ent": ":
T!ese measurements used y quality analysts . PM during testing process(Mont!ly once)' Sta=ility:
y +efect arrival Rate :o of defects
Time
x
> testing _ G defects G testing _ > defects Sufficiency:
_ Requirements Coverage _Type6Trigger _Type6Trigger analysis a nalysis Defect Severity Distri=ution:
_ "rganiBation 8 Trend limit c!ec' 98 T'' !Te !Test 'anag 'anageen eentt 'easur 'easureen eent": t":
T!ese measurements used y test lead during testing process (#eely t#ice)' Test Te st Status:
_ Completed _ n progress _ Yet to execute Delays in Delivery:
_ +efect arrival rate _ +efect resolution rate _ +efect age Test 3fficiency:
_ Cost to find a defect ( :o of defects . Person6+ay) ;8 PC' !Proce !Process ss Capa=ilit Capa=ility y 'easu 'easure reent" ent"::
T!ese measurements used y pro7ect management to improve capaility of testing process depends on feed ac of customer in existing maintenance soft#are3s' Test 3ffectiveness:
_ Requirements Coverage _Type6Trigger _Type6Trigger analysis a nalysis Defect 3scapes !'isse( (efects":
_ Type 8 P!ase analyses Test 3fficiency:
_ Cost to find a defect ( :o of defects . Person6+ay)