Date post: | 05-Jul-2018 |
Category: |
Documents |
Author: | anonymous-ovjk0ut |
View: | 217 times |
Download: | 0 times |
of 179
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
1/179
Testarea Sistemelor
SoftwareProf. univ. dr. Tudor Bălănescu
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
2/179
6/6/16 2
Specicare• Specicare: descrierea detaliilor structurale şi de
comportament ale unui produs. – Sistemele mari de prorame sunt descompuse
!n subsisteme. – Pentru ca su"sistemele să poată dezvoltate
independent # este necesară denireainterfeţelor de comunicare !ntre su"sisteme.• $%emplu: specicarea printr&un set de clase
de o"iecte# sta"ilite de comun acord cu to'i
de(voltatorii de su"sisteme
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
3/179
)ormalism vs. lim"a* natural
– Specicare neformali(ată +mai mare rad deam"iuitate# incompletitudine si inconsisten'ă, – Specicare formali(ată: +neam"iuă şi mai
completă,•
-ompletea(ă +!nso'eşte, specicareaneformali(ată• )acilitea(ă anali(a proprietă'ilor de
consisten'ă şi de neam"iuitate alespecicării neformali(ate
– Tipuri de specicări formale:• le"rică• oică
• )undamentată pe teoria mul'imilor• 0ienna evelo ment et3od
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
4/179
0ericare i 0alidare• Procesul de detectare i de eliminare a defec7iunilor din
prorame are două componete: vericare și validare (V &V).• 080# parte a aceluiai proces prin care se urmărete:
– 1, descoperirea defectelor proramului9 – 2, certicarea faptului că proramul va func7iona corect !n condi7ii reale
de e%ploatare.
• Termenii vericare i validare s!nt utili(a7i deseori cusemnica7ii am"iue i s!nt confunda7i.• iferen7a dintre cei doi termeni poate e%primată succint
astfel: prin verifcare se urmărește dacă programul a fostconstruit bine; prin validare se controlează dacă programuleste bun.
• Prin vericare se atestă compati"ilitatea proramului cuspecica7ia ini7ială.
• Prin validare se controlea(ă dacă proramul !ntrunete calită7ilecerute de utili(ator. -ele două aspecte nu coincid !ntotdeauna.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
5/179
$%emplu# 080
• Să presupunem că se dorete reali(area unui proramdupă e%ecutarea căruia valorile vectorului v să eordonate crescător + la terminare# valorile lui v tre"uiesă ai"ă proprietatea: v;i< ≤ v;i=1< dacă 1 ≤ i ≤ n&1
• Posi"ilă solu7ie:for i :> 1 to n do v;i< :> ?.• cesta va re(ista etapelor de vericare deoarece !ndeplinete cerin7ele din specica7ia ini7ială# !n care s&aomis să se preci(e(e că valorile componentelor lui v nupot modicate dec!t prin opera7ii de intersc3im"are.
• Totui el nu poate validat deoarece cerin7autili(atorului a fost cu totul alta.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
6/179
-omportametul insta"il al Sistemelesoftware
• 080 nu s!nt specice ;@3eAaa 1< activită7ii dereali(are a produselor software# ci s!nt !nt!lnite !ntoate procesele te3noloice# unde se controlea(ăat!t desfăurarea corectă a procesului defa"rica7ie +vericare, c!t i calită7ile produsuluinit +validare,.$%emplu: construc7ia unui pod# testarea cucamioane
• procesul de reali(are a unei construc7ii (ice are oanumită proprietate de stabilitate (continuitate ]ncomportament)# care lipsete sistemelor software$%emplu: while % CD ? do % :> %&2
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
7/179
080# dinamic# static• Te3nicile de vericare i validare pot dinamice sau statice.• Primele constă !n e%ecutarea proramului !n condi7ii
asemănătoare cu cele din e%ploatarea reală pentru a vedeadacă !ntrunete calită7ile ateptate. cest e%periment estecunoscut su" numele de testare i se "a(ea(ă pe e%ecutareaefectivă a proramului.
• -elelalte te3nici# de natură statică# implică e%aminarea ianali(a te%tului proramului# a documenta7iei# a metodelor deproiectare etc. spre a deduce func7ionarea corectă aprodusului nal. $%ecutarea proramului nu este necesară# eaeste cel mult imainată. En această cateorie este inclusă:
– inspectarea codului sursă pentru depistarea eventualeloranomalii precum i
–metodele formali(ate de vericare a proramelor.• -ele două cateorii de te3nici se dovedesc a
complementare i este recomandat să e aplicate !mpreună.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
8/179
-orrectness vs. relia"ilitF+corectitudine vs. siuran7a !n
e%ploatare,• En ;aGoi* H2
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
9/179
Testare vs. emonstrare• Pe de altă parte# procesul de e%aminare i anali(ă# oric!t de formali(at ar #
este el !nsui predispus la erori# ca orice activitate umană9• se limitea(ă la coresponden7a dintre proram i specica7ia sa# fără a
aranta că produsul este opera7ional.• plicarea metodelor matematice de vericare este !nsă condi7ionată de
e%isten7a unei deni7ii precise a semanticii lim"a*ului de proramare !ncare este scris aloritmul i de specicarea cerin7elor proramului !ntr&onota7ie adecvată metodei de vericare.
• $%istă !nsă multe lim"a*e de utili(are lară ce nu dispun de deni7iisemantice riuroase sau ale căror deni7ii semantice s!nt e%primate prinmecanisme reu de !n7eles de către utili(atori. En consecin7ă# pentru multeprorame este reu de reali(at o arumentare matematică a func7ionăriilor# testarea răm!n!nd te3nica predominantă a procesului de vericare ivalidare.
• cest ec3ili"ru !ntre formal i neformal poate reali(at numai pe "a(aunei "une familiari(ări at!t cu tehnicile de testare c!t i cu metodelematematice de verifcare.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
10/179
epistare erori:cu cat mai devreme# cu atat mai "ine
6/6/16 1?
Software lifecFcle and error introduction# detection# and repair costs
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
11/179
Te3nici de testare a proramelor
• Prin testare se !n7elee de fapt e%ecutareaproramului cu inten7ia declarată de a descopericel pu7in o eroare +aspectul demolator ,
• $a se "a(ea(ă pe imainarea unor eșantioane dedate de intrare care să conducă la depistareaerorilor !ntr&un timp c!t mai scurt i cu efort c!tmai mic.
• En cele ce urmea(ă# prin test se !n7elee c3iar
această mulțime nită de eșantioane.• Test case:
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
12/179
J"iectivele testării
• Să indice pre(en7a erorilor• Să facilite(e locali(area erorilor +!n
vederea depanării,• Să e repeta"il: la repetareae%perimentului# să se o"7ină aceleaire(ultate – 4erepeta"il# din cau(a conte%tului
+environment, – 4erepeta"il# din cau(a
nedeterminismului +paralelismului,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
13/179
Testare i a"sen7a proprietă7ii deKcontinuitateL
• Testul +set of test cases, e%ersea(ă un număr nitde comportamente: ecare corespunde unuieantion de date +test case,
• -omportamentul !n ca(ul testelor nu poate
Ke%trapolatL către o conclu(ie privindcomportamentul# !n eneral# al sistemului• 4u e%istă continuitate comportamentală: poate
func7iona "ine !ntr&o innitate de ca(uri# dar
poate să func7ione(e defectuos !n altele
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
14/179
• Observație. 4umărul eantioanelor dintr&un test inMuen7ea(ărelevan7a testului# dar nu este un element determinant. $sen7ialăeste calitatea datelor alese9
• $%emplu: de pildă# !n ca(ul instruc7iunilorif % D F then
m :> %else
m :> %9Ncea mai mare valoare dintre % si F este mO• testul cu eantioane
% > 2# F > 19 % > 1# F > ?9 % > 1# F > 1este neconcludent• testul cu un eantion
% > ?# F > 1este concludent.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
15/179
Test Process aturitF evel in anJranisation
+oa Ao3ansson# Qolfan 3rendt# 0ladimir Rle"anov: Testin# e"uin#and 0erication,
• evel ?: T3ere is no dierence "etween testinand de"uin.
• evel 1: Purpose of testin: s3ow correctness.
• evel 2: Purpose of testin: s3ow t3at t3esoftware does not worI.
• evel : Purpose of testin: reduce t3e risI ofusin t3e software.
• evel : Testin is a mental discipline 3elpin UTprofessionals to develop 3i3er VualitF software.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
16/179
evel ?: T3ere is no dierence "etweentestin and de"uin.
Testin is t3e same as de"uin• oes not distinuis3 "etween incorrect "e3aviour
and defects in t3e proram• oes not 3elp develop software t3at is relia"le orsafe
l f i 3
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
17/179
evel 1: Purpose of testin: s3owcorrectness.
Purpose: s3owin correctness• -orrectness is +almost, impossi"le to ac3ieve• aner: Fou are su"consciouslF steered towards
tests liIelF to not fail t3e proram.
• Q3at do we Inow if no failuresW – ood softwareW or "ad testsW• Test enineers 3ave:
– no strict oal – no formal test tec3niVue
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
18/179
evel 2: Purpose of testin: s3ow t3att3e software does not worI.
Purpose: s3owin failures
– ooIin for failures is a neative activitF
– Puts testers and developers into an adversarialrelations3ip – Q3at if t3ere are no failuresW
T3is descri"es most software companies.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
19/179
evel : Purpose of testin: reduce t3erisI of usin t3e software.
Purpose: reduce risI
• Q3enever we use software# we incur some risI
• XisI maF "e small and conseVuencesunimportant• XisI maF "e reat and t3e conseVuences
catastrop3ic
• esters and developers !or" toget#er to reduceris"
T3is descri"es a few Kenli3tened software
companies.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
20/179
a"ilitF of developers to produce 3i3VualitF software
Testin# a mental discipline t3at increases VualitF• Testin onlF one waF to increase VualitF• est engineers can become tec#nical leaders of
t#e pro$ect • PrimarF responsi"ilitF to measure and improve
software VualitF• T3eir e%pertise s3ould 3elp developers
T3is is t3e waF Ktraditional enineerin worIs.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
21/179
ctivities if Test $nineer
Test enineer: UT professional in c3are of testactivities# includin:
•
desinin test inputs• runnin tests• analFsin results• reportin results to developers and manaers
• automating an% of t#e above
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
22/179
eveloper > or /> Test $nineerW
S3ould testin "e done "F t3e developers +of t3e
same software,Wierent taIes on t3is:• -ontra: Test Principles in ;Fers<
– Principle 2: Prorammer s3ould avoid testin 3is/3er ownproram.
+misunderstandin of specs carrF over to testin, – Principle : prorammin orani(ation s3ould not test
its own prorams.• Pro: $%treme Testin +$T,
– Principle: evelopers create tests rst – Principle: evelopers re&run test on all incrementalc3anes
Tool: AYnit desined for $T
T ti l B d S ft
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
23/179
Testin evels Based on SoftwarectivitF
• cceptance Testin: assess software wit3 respect
to user reVuirements• SFstem Testin: assess software wit3 respect tosFstem&level specication. – Testin sFstem aainst specication of
e%ternallF o"serva"le "e3avior• Unteration Testin: assess software wit3 respectto 3i3&level desin9 – testin interaction "etween modules
• Ynit Testin: assess software wit3 respect to low&level unit desin9 testin individual units of asFstem – traditionallF: unit > procedure
– in o"*ect&orientation +Aava,: unit > met3od
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
24/179
ife cFcle 8 Testin levelodel
$ l S t T ti U t ti
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
25/179
$%ample: SFstem Testin# Unteration Testin
• System Test
- Enter data in GUI, does it print thecorrect paycheck, formatted as expected by
specification?
(Acceptance Test does !
by user?)• Inte"ration Tests, e#"#
-$ayro%% asks data&ase for staff data, are'a%es )hat*s expected?
-+ay&e there are specia% characters
(nexpected#
-Are paychecks formatted correct%y for
dierent kinds of printers?
• Unit Tests, e#"#• I .oes payro%% system compte correct
tax-rate, &ons etc?• I .oes the $rint $aycheck &tton react
)hen c%icked?
X i T ti
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
26/179
Xeression Testin
+Jrt3oonal to t3e a"ove testin levels,• Xeression Testin: Testin t3at is done after
c3anes in t3e software.• Purpose:• ain condence t3at t3e c3ane+s, did not cause
+new, failures.
Ut is a standard part of t3e maintenance p#ase ofsoftware development.
• $.. Suppose PaFroll su"sFstem is updated. 4eedto re&run tests +w3ic3 onesW,.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
27/179
T3eoretical foundations +-arlo @3e((i,• enitions
• P +proram,# +input domain,# X +output domain, – P: → X +maF "e partial,
• -orrectness dened "F a test oracle JX ⊆ × X – P+d, correct +w.r.t JX, if Cd# P+d,D ∈ JX
– P correct +w.r.t JX, if all P+d, are correct• Test case t
– an element of • Test set T
– a nite su"set of # and – an oracle ' ( vital for automated evaluation of
test,• Test t is successful if P+t, is correct +Ct# P+t,D ∈ JX,• Test set T successful if P correct for all t in T
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
28/179
Udeal Test• deal test set if P is incorrect# t3ere is an
element of T suc3 t3at P+d, is incorrect• if an ideal test set e*ists for an% program+ !e
could prove program correctness b% testing
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&P correct +w.r.t JX, ⇔ +"F def, Z d[+Cd# P+d,D ∈ JX,
T successful +on P, ⇔ +"F def, Z t[T+Ct# P+t,D ∈ JX,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&P incorrect +w.r.t JX,⇔ +"F def, \ d[+Cd# P+d,DJX,
] ⇓+onlF for ideal T,
T fails+on P, ⇔ +"F def, \ t[T+Ct# P+t,D ^ JX,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
,ence+ for ideal fails(on -) .- incorrect (!/r/t /')/i/e
successful (on -) .- correct (!/r/t / ')/Note: )indin ideal tests is undecidable.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
29/179
-3. 6 2
Test criterion
• criterion - denes nite su"sets of +test sets, – - ⊆ 2
• test set T satises - if it is anelement of -$%ample
- > NC%1# %2#...# %nD _ n ≥ ∧ ∃ i# *# I# + %iC? ∧ % *>? ∧ %ID?,OC&`# ?# 22D is a test set t3at satises -C&1?# 2# # # ?# &1D also does
C1# # D does not
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
30/179
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
31/179
-3. 6 1
Properties of criteria +2,• -1 is ner t3an -2
– for anF proram P• for anF T1 satisfFin -1 t3ere is a su"set T2
of T1 w3ic3 satises -2
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
32/179
-3. 6 2
Properties of denitions
• 4one is eective# i.e.# no alorit3mse%ist to state if a proram# test set#or criterion 3as t3at propertF
• Un particular# t3ere is no alorit3m toderive a test set t3at would proveproram correctness – t3ere is no constructive criterion t3at is
consistent and complete
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
33/179
-3. 6
$mpirical testinprinciples
• ttempted compromise "etweent3e impossi"le and t3e inadeVuate
• )ind strateF to select sinicanttest cases – sinicant>3as 3i3 potential of
uncoverin presence of error
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
34/179
-3. 6
-omplete&-overaePrinciple
• TrF to roup elements of intosu"domains 1# 2# # n w3ere anFelement of eac3 i is liIelF to 3ave similar"e3avior – > 1 ∪ 2 ∪ ∪ n
• Select one test as a representative of t3esu"domain
• Uf * ∩ I > ∅ for all *# I +partition,# anFelement can "e c3osen from eac3su"domain
• Jt3erwise c3oose representatives to
minimi(e num"er of tests# Fet fulllin t3erinci le
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
35/179
Te3nici de testare a proramelor
• $%istă o mare varietate de metode de ela"orare a unor astfel deeantioane# care pun la dispo(i7ia proramatorului căi dea"ordare sistematică a activită7ii de testare# ce asiură opro"a"ilitate ridicată de descoperire a erorilor. ceste metode se"a(ea(ă mai mult sau mai pu7in pe una din următoarele strateii:
• 1, testare funcțională sau metoda cutiei negre (blac" bo*) :cunosc!nd func7iile pe care tre"uie să le !ndeplinească proramul#eantioanele s!nt astfel concepute !nc!t să se asiure că ecarefunc7ie este pe deplin reali(ată9
• 2, testare structurală sau metoda cutiei transparente (!it!bo*)
: cunosc!nd structura +instruc7iunile, aloritmului#eantioanele sunt astfel concepute !nc!t să se asiure că sunttestate convinător toate păr7ile proramului.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
36/179
etoda cutiei nere +"lacI "o%, Testare func7ională +functional testin,
• Testele s!nt ela"orate pe "a(a unei specicări func7ionale aproramului.
• Proramul este vă(ut ca o cutie neară a cărei comportare estedeterminată prin prelucrarea unor date de intrare i observarea re(ultatelor o"7inute.
• -ompararea re(ultatelor o"servate cu cele ateptate este făcutăpe "a(a unui asa numit oracol/ +un simplu ta"el# un alt proramcare raspunde cu %es sau no+ un sistem cu interfa7ă racă# roupentru testele concludente etc.,
• $la"orarea testelor depinde !n mare măsură de !ndem!narea ie%perien7a celui care face testarea# dar e%istă i idei cuaplica"ilitate mai enerală care pot să 3ide(e ac7iunea deselectare a eantioanelor de test după o strateie riuroasă.
• En anumite ca(uri# procesul de ela"orare a testelor poate automatizat/
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
37/179
$%ample: T3e Trianle Pro"lemThe aim of t3is proram is to classifF trianles. T3e
proram accepts t3ree positive inteers as lent3sof t3e sides of a trianle. T3e proram classies t3etrianle into one of t3e followin roups:• 01uilateral all t3e sides 3ave eVual lent3s +return1,• sosceles two sides 3ave eVual lent3# "ut not allt3ree +return 2,• 2calene all t3e lent3s are uneVual +return ,• mpossible
t3e t3ree lent3s cannot "e used toform a trianle# or form onlF a Mat line +return ,dapted from+appears in Fers "ooI,
Testin docs 2?1`Software Testin.ppt• Testin docs 2?1`Testin 1. df ++oa Ao3ansson#
http://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Software%20Testing.ppthttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Testing1.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Testing1.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Software%20Testing.ppt
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
38/179
-lase de ec3ivalen7ă a datelor deintrare• domeniul datelor de intrare va partiționat 3n clase de
ec#ivalență# astfel determinate !nc!t pentru datele dinaceeai clasă proramul testat să se comporte la fel.acă această condi7ie este !ndeplinită# atunci testulconstă !n e%ecutarea proramului utili(!nd un set de
date ce con7ine c3te un eșantion din ecare clasă/ • $%emplu. -ăutare "inară. – Specicare func7ională: – "inar+%#v#n, – intrare:
• vector v>+v;1true dacă%^v.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
39/179
• -onsiderăm# la !nceput# două clase deec3ivalen7ă denite prin: – "inar +%# v# n, > true
– "inar +%# v# n, > false.• En această situa7ie# se poate utili(a un test
alcătuit din două eantioane:
1, % > 1?9 2, % > ?9v > +1?# 2?# ?# ?,9 v > +1?# 2?# 2?# ?,9n > 9 n > .
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
40/179
• Testul anterior# foarte pro"a"il neconcludent9 continuăparti7ionareae pildă !n ca(ul 4 putem distine situa7ia
!n care % este primul element al vectorului de situa7iile !n care este ultimul sau este !n interiorul vectorului.
• Se a*une astfel la o parti7ie cu clase de ec3ivalen7ă: – 1.a, N+%# v# n,h"inar +%# v# n, > true i v;n< > %O – 1.", N+%# v# n, h "inar +%# v# n, > true i v;1< > %O – 1.c, N+%# v# n, h "inar +%# v# n, > true i v;n< ≠ % ≠ v;1
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
41/179
1.a.p.1 +, 1.a.p.2 +,% > 2?9 % > ?9
v > +1?# 2?,9 v > +1?# 2?# ?# ?,n > 29 n > 91.a.i +,% > ?9v > +1?# 2?# ?,9
n > 91.".p.1 1.".p.2% > 1?9 % > 1?9v > +1?# 2?,9 v > +1?# 2?# ?# ?,9
n > 29 n > 91.".i% > 1?9v > +1?# 2?# ?,9n > 9
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
42/179
1.c.p +,
% > 2?9v > +1?# 2?# ?# ?,9 n > 91.c.i% > 2?9v > +1?# 2?# ?,9n > 92.p.1 2.p.2% > ?9% > ?9v > +1?# 2?,9v > +1?# 2?# ?# ?,9n > 29 n > 9
2.i% > ?9v > +1?# 2?# ?,9n > .
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
43/179
• En situa7ia ideală ar tre"ui ca re(ultateletestelor să e aceleai# indiferent de eantionulales dintr&o clasă de ec3ivalen7ă. Prin aceastăcalitate se leitimea(ă faptul că eantionul esterepre(entativ pentru clasa din care face parte.En realitate# criteriile de denire a claselor deec3ivalen7ă i ne7ea parti7iei o"7inuteinMuen7ea(ă repre(entativitatea eantioanelor.
J"7inerea unei parti7ii corespun(ătoare este unproces euristic care se desfăoară radual#diri*at i de re(ultatele testelor anterioare.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
44/179
$%erci7iuEercițiu. Proramul următor adauă i e%trae numere !ntrei dintr&o
coadă cu cel mult nma% elemente# unde ? ≤ nma% ≤ 1??. Pentruadăuare se răspunde prin caracterul a# pentru e%traere prin e ipentru oprire prin o. Să se teste(e prin metoda cutiei nere i să sedepane(e acest proram.
!. Testul constă !n reali(area unor opera7ii de adăuare +a, i e%traere+e, !n diverse com"ina7ii# urmate de opera7ia +o,. Yn test poate repre(entat prin e%presia n1a m1e#...nIa mIe# o dacă s&au făcut n1 adăuări urmate de m1 e%traeri etc. Se pot distine ca(urile:
• a, nma% > ?9• ", 1 ≤ nma% ≤ 1??.ceastă parti7ie poate ranată consider!nd situa7iile:• 1, n1 =... nI C nma%9• 2, n1 =... nI > nma%9• , n1 =... nI D nma%.Se o"7in ` clase de ec3ivalen7ă: a/5# a/6# b/4# b/5 i b/6# deoarece a/4
conduce la n1 =... nI C ?.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
45/179
• a ecare din cele ` ca(uri putem distinesitua7iile:
• a, e%traerile solicitate s!nt totdeauna
posi"ile# adică pentru orice i# 1 ≤ i ≤ I avemn1 =... ni ≥ m1 =... mi9• ", la un moment dat se solicit _ o e%traere !n situa7ia c!nd nu mai e%istă elemente !n
coad _# adică e%istă i astfel !nc!t n1 =...= ni Cm1 =...= mi. Se o"7in clasele de ec3ivalen7ăa/5/a# a/5/b etc.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
46/179
• considerarea valorilor netipice ale domeniuluidatelor de intrare# numite deseori valori de lamarinea domeniului. En ca(ul anali(at estede presupus că aloritmul ar putea să nufunc7ione(e corect atunci c!nd n 7 5# adică pevectori de lunime minimă. istin!nd acestca(# clasele de ec3ivalen7ă 4/a/p# 4/b/p i 5/p s!nt !mpăr7ite !n două# o"7in!nd o parti7ie cu 11clase: 4/a/p/4; 4/a/p/5; 4/a/i; 4/b/p/4 etc.le!nd c!te un eantion din ecare clasă# sealcătuiete următorul test:
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
47/179
$%erci7iu• Se consideră o func7ie care verica dacă irurile % i F
sunt identice. Să se ela"ore(e un test utili(!nd clase deec3ivalen7ă.!. -riteriile de orani(are a claselor de ec3ivalen7ă pot :
lunimi eale sau diferite9 iruri identice sau diferite9lunime minimă +1, sau oarecare9 iruri distincte care
sf!resc cu acelai caracter. Xe(ultă 6 clase deec3ivalen7ă i se poate considera următorul test:1. % > jaj9 F > jaj9 2. % > ja"cj9 F > ja"cj9. % > jaj9 F > j"j9. % > ja"j9 F > jacj9`. % > ja"j9 F > jc"j9 6. % > ja"j9 F > ja"cj.
Ghid t ti i d t % d i t
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
48/179
Ghid pentr parti ionarea date%or de intrareț(/#0#1, Testin" docs /2314+athr 5ondations of Soft)are Testin"#pdf
• 6%ase de echi'a%en 7 asociate 'aria&i%e%or ț
http://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Mathur%20Foundations%20of%20Software%20Testing.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Mathur%20Foundations%20of%20Software%20Testing.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Mathur%20Foundations%20of%20Software%20Testing.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Mathur%20Foundations%20of%20Software%20Testing.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Mathur%20Foundations%20of%20Software%20Testing.pdf
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
49/179
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
50/179
U idi i % %tidi i %
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
51/179
Unidimensiona% 'erss m%tidimensiona%
partitionin"
• Unidimensiona% consider one inpt 'aria&%e at a time – The nm&er of partitions8nm&er of inpt 'aria&%es
– + Traditiona%%y sed in test case se%ection, de to its simp%icity
and sca%a&i%ity
• +%tidimensiona% consider the prodct of a%% inpt'aria&%es – $rodces one partition,
– -sa%y )ith a too %ar"e nm&er of c%asses, diffic%t to mana"e
mana%%y
– -may of the c%asses mi"ht &e infeasi&%e (does not satisfy the
constraints amon" inpt 'aria&%es
– + offers an increased 'ariety of tests
$%ample
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
52/179
$%ample
9 c%asses for m%tidimensiona% partitionin" c
5rom test se%ection perspecti'e
-nidimensiona%, : repre;entati'e tests, one for each c%ass
< (x8-322, y=0, (x8=, y=0, (x8322, y=0, (x=0, y82, (x=0, y8>, (x=0,
y8322
-m%tidimensiona%, 9 < (x8-322, y82, (x8-322, y8:, (x8-322, y8322,
(x81, y8-322!
-)hich is &etter depends on app%ication
: c%asses for m%tidimensiona% partitionin" a &
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
53/179
sFstematic procedure for eVuivalence
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
54/179
sFstematic procedure for eVuivalencepartitionin +1/2,
1. UdentifF t3e input domain
1. Xead reVuirements and identifF all input andoutput variables+environment varia"les of operatin sFstemsare input varia"les,
2. etermine t3eir types and constraints. etermine t3e set eac3 varia"le can assume. n approximation of t3e input domain is t3e
product o t3ese sets
`. ccordin to t3e constraints# add some valuesfrom appro%imation and o"tain inputdomain, as a superset.
2. Equivalence classing: partition t3e set ofvalues for eac3 varia"le +unidimensional,. $%. )or% and F#
sFstematic procedure for
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
55/179
sFstematic procedure foreVuivalence partitionin +2/2,
3. Combine eVuivalence classes+multidimensional,
4ote: e%ponential e%plosion: t3is step oftenavoided
4. iscard ineasible equivalence classes +t3atcontains one com"ination of input data t3at cannot "e enerated durin t3e test# untestable,:1. T3is mi3t 3apped due t3e lterin of t3e
invalid input com"inations "F a @YU +c3oicelists for stations ers tren etc.,
2. Some classes are w3ollF infeasi"le9 usuallF# aclass is a mi%ture of infeasi"le and testa"le
data.
$%ample # Boiler -ontrol SFstem +B-S,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
56/179
$%ample # Boiler -ontrol SFstem +B-S,+dFtia P. at3ur,• @ne of the se%ecta&%e @ptions 6 (contro%, sed to "i'e one of 0 commands
• temp (set temperatre,
se%ection of temp 6S ask operator for tempch, 'a%es -32,-1, 1, 32• sht,• cance%
• Se%ection of 6 )here from comes the command? GUI? 5i%e?
B8
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
57/179
B-S# step 13# Identify inpt domain B, 5- en'ironment 'aria&%es
Approximation
Inpt domain I contains S (SkU(GUI, Dx#txt, temp, 1 in S (and I
(GUI, Dx#txt, temp, 322 not in S (&t in I
B-S step 2
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
58/179
B-S# step 2
/# EFi'a%ence c%assin"
)here f_valid 8 the set of names of the existin" fi%es, f_invalid, nonexistin"
c_invalid , the set of nonexistin" commands, stop for instance
t_invalid, the set of not a%%o)ed temperatre 'a%es
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
59/179
B-S# steps #. Combine. eads to %2%%`>12? classes [email protected] % fvalid % NT$PO % tinvalid# +a class, a.s.o.
4ote. Some classes are innite +f8valid is an inniteset of names,
. iscard ineasibles.#tempc# is needed onlF for command temp/
9: lters invalid [email protected] % fvalid % NT$PO % tinvalid#[email protected] % finvalid % NT$PO % tinvalid#
92 infeasi&%e c%asses, 30remained
/ more Infeasi&%e
c%asses
28 remained
B x 5 x cmd4
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
60/179
B-S# steps ## cont- tempc# not reVuired for f8invalid
- V undened+ cmd and tempc3 not allowed
- Qe discard 1?2 classes# 1 left:
+ore 1 infeasi&%e
23 left
+ore 1 infeasi&%e
3> %eft a#s#o#
JA8data can not &e inpt, GUI does not ask for it
H 8 data can &e inpt, &t is not sed &y the contro% system
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
61/179
voidin classes e%plosion
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
62/179
voidin classes e%plosion• Covering of eac# e1uivalence class of eac#
variable "F a small num"er of tests.
• test covers a class 0 for a variable V if itcontains a reprezentative of 0• T3us# one test maF cover multiple eVuivalence
classes# one for eac3 input varia"le.
• $%ample for B-S: ` tests cover 1 classes+=2==`# eac3 eVuivalent classes for eac3varia"le ,.
• QeaIness: it fails to consider t3e semanticrelation "etween dierent varia"les
• $%ample. Q3at 3appens w3en s#ut and 0
es enera on rom reVu remen s:- $ t @ 3i
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
63/179
es e e a o o eVu e e s-ause&$ect @rap3in+at3ur# 2.6# Testin docs 2?1`at3ur )oundations of Software Testin.pdf ,• )ocuses on modelin dependencF relations3ips
amon proram input conditions (causes) andoutput conditions (e
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
64/179
rap3inXelations
- i
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
65/179
-onstraints amon causes
Possi"le values of constraints
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
66/179
Possi"le values of constraints
Ii - t i t $ t
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
67/179
asIin -onstraint amon $ects
Examp%e
-reatin -ause $ect rap3s
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
68/179
-reatin -ause&$ect rap3sStep 3# +ake a %ist of cases and effects
Step /# 6ases-Effects "raph constrction
$%ample Test eneration for a @YU
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
69/179
$%ample. Test eneration for a @YU&"ased computer purc3ase sFstem
5ree
"i'ea)ay
items
• 5or )indo)s for choosin" compters, printers, monitors,memory• @ne )indo)s for free "i'ea)ay items, one for price• 5or simp%icity @n%y one nit of each item can &e prchased
$rice
XeVuirements
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
70/179
XeVuirements
St 1 i t f $ t $ l
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
71/179
Step 1# ist of causes&$ects# $%ample6ases Effects
Step 2# causes&eects rap3# $%ample
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
72/179
Step 2# causes eects rap3# $%ample
ecision ta"le from cause&eect rap3
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
73/179
ecision ta"le from cause&eect rap3
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
74/179
$%ample a cause&eect rap3
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
75/179
$%ample# a cause eect rap3
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
76/179
T3e o"tained decision ta"le
Geuristics to avoid com"inatorial
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
77/179
e%plosion• Brute force:
n causes related to an eect: 2n com"ination ofcauses
• -om"inatorial e%plosion can "e avoided "F usinsimple 3euristics related to JX / 4 nodes.
• Geuristics are "ased on t3e assumption t3atcertain tFpes of errors are less liIelF to occur t3anot3ers. – Benecial: reduction in t3e num"er of enerated tests – raw"acIs: it maF also discard tests t3at would 3ave
revealed an error• Gence# one must applF t3e 3euristics wit3 care
and onlF w3en t3e total num"er of tests is toolare to "e used in practice
• Bases: Fers # aricI:= 9
Fers: $ac3&-onditions/ll&-onditions
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
78/179
F3euristic
• T3e test suite is composed of test cases suc3
t3at: – $ac3 varia"le is made TXY$ J4-$# wit3 all ot3er "ein)S$% F ( w&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
1 ? ? ?? 1 ? ?? ? 1 ?? ? ? 1
– dd t3e test case•
TXY$# for 4 node% F ( w1 1 1 1
• )S$# for JX node? ? ? ?
• )or n conditions: n=1 test cases +instead of 2n,
+good limit but+ it is li"el% t#at relevant test cases
$%ample: $ac3&-onditions/ll&-onditions
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
79/179
-onditions
• JX +node a,: -1 "? 11 ?? ?
• 4 +node ",: -2 -? 11 ?1 1
Gence: -1 -2 - ? 1 1 ? ? 1 ? 1 ?
1 ? 1 1 1 ?+-1>1# onlF wit3 ">?# we
discarded: 1 1 1,
Geuristics oriented to t3e Kdesired
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
80/179
state
Tota% nm&er is sti%% %ar"e,
&t redced for
5ASE, in @K case
TKUE, in AJ.
$%ample: desired state 3euristic
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
81/179
p
G1 +a>?,: -1 "
? ?G+">?,: -2 -? ?? 1
1 ?The redced set ofcom&inations
63 6/ 60
2 2 2
2 2 3
2 3 2
Test @eneration from Predicates
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
82/179
+at3ur# 2.H,
• Predicates mi3t arise from reVuirements or
mi3t "e em"edded in t3e proram – if+ printer$status is %& and paper$tray not empty ,
t3en senddoc to printer +from reVuirements, – if '(p))* ++ x)-, t3en F>19
•
prorammer mi3t code a predicate correctlF ormi3t maIe an error# creatin a fault.• -redicate testing7 testin to assure t3at t3ere
are no error in t3e implementation of predicates/•
J"*ectives: – to generate test cases rom predicates suc3 t3at – any ault from a given class – are guarateed to "e detected.
)ault model for Predicate testin: BJX
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
83/179
)ault model for Predicate testin: BJX#Boolean Jperator
Predicate constraints +1/2,• BX>Nt f C > DO set of #oolean 8 !elational
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
84/179
• BX>Nt"f #C#>#DO # set of #oolean 8 !elationalconstraints on boolean variables or relationale*pressions/
• predicate constraints for a predicate p wit3 n"oolean operators A+ B is a se1uence of nC4 BXsFm"ols.$%ample. p> " A r D s B u E v
F7(t+7+G) is a constraint on p• test case t satises a constraint if eac3component of p satises t3e correspondinconstraints.$%ample:
t1>C">true# r>1# s>1# u>1#v>?D satises t3e a"ove -.t2>C">true# r>1# s>1# u>1#v>2D does not satisfF -.• Uf t1# t2 satises -# t3en p+t1,>p+t2,. Qe denote
"F p+-,
t3at value +p+-,>true# in our e%ample,.•
Predicate constraints +2/2,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
85/179
Predicate constraints +2/2,
• Qe partition a set S of constraints for a iven
predicate p# S>St Y Sf.$%ample. p > aC" cDd.et us consider S>NCt"tD# Ct"f DO.Qe 3ave St>N$t"t%&" St>N$t"f%&"
Uf S>NCf"t%"$t"f%" $f"f%&" St>.
BJX predicate testin -riterion +1/2,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
86/179
• $%ample. p > aC" cDd
BJX e%ample +2/2,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
87/179
BJX e%ample# +2/2,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
88/179
Procedure for eneratin a +minimal,BJX& constraints set of a predicate
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
89/179
BJX constraints set of a predicate+1/2,
Procedure for eneratin a +minimal,BJX t i t t f di t
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
90/179
BJX& constraints set of a predicate+2/2,
$ l 1 " d
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
91/179
$%ample 1. p> aC" cDd
-riterii de alcătuire a testelor
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
92/179
-riterii de alcătuire a testelor• leerea eantioanelor ce vor face parte dintr&
un test este uvernată de un ansam"lu decondi7ii sta"ilite de cel ce face testarea+criteriu de alcătuire a testelor, i denete omul7ime +nită sau innită, de teste.
• En anumite situa7ii este convena"il săasimilăm un criteriu cu mul7imea pe care odenete. e pildă# !n ca(ul unei parti7ii adatelor de intrare !n clasele de ec3ivalen7ă
c1#...cn se poate lua drept criteriu produsulcarte(ian - > c1 %...cn9 acesta se numetecriteriu indus de parti7ie.
$ ample 2 p
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
93/179
$%ample 2. p>
-riteriu compati"il
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
94/179
• Yn criteriu - +mul7ime de teste, se numetecompatibil dacă testele din - s!nt sau
toate concludente sau toate neconcludente.• En ca(ul unui criteriu compati"il este deci
sucientă considerarea unui sinur test
• nu e%istă un aloritm eneral pentru asta"ili dacă un criteriu este sau nucompati"il +pro"lema compati"ilităiicriteriilor este nedecidabil# ca i alte
pro"leme importante precum terminareaproramelor# ec3ivalen7a lor# corectitudineaetc.,.
Xela7ii !ntre criterii
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
95/179
Xela7ii !ntre criterii• Yn criteriu - este mai tare +mai n, dec!t alt criteriu
dacă pentru orice test +mul7ime de eantioane, T ∈ - e%istă un test Y ∈ astfel că Y ⊆ T9 cu alte cuvinte#orice test din - poate adaptat# prin eliminarea unoreantioane# astfel !nc!t să satisfacă criteriul .
Observație. acă o parti7ie c1#... cn este o ranare a
parti7iei d1#... dm atunci criteriul c1 %...cn este mai taredec!t d1 %...dm.
• -riteriul - este mai bun dec!t dacă este mai ndec!t i e%istă un test Y ∈ neconcludent i un test
T ∈ - concludent cu proprietatea Y ⊆ T9 cu altecuvinte# testul Y devine concludent prin adăuarea deeantioane noi# cerute de criteriul -.
etoda cutiei transparente
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
96/179
Testare structuralaă• ceasta este o strateie de testare complementară
metodei cutiei nere.• prin această metodă testul se ela"orea(ă e%amin!nd
detaliile proramului: instruc7iuni# date etc.• $a poate utili(ată independent sau !mpreună cu
metoda cutiei nere# pentru a rana o parti7ie de*ao"7inută.+e pildă# !n implementările func7iei binar componenta
v;mi*loc< *oacă un rol important. ceasta poate sueraun criteriu nou de ranare i anume considerareaca(urilor !n care valoarea căutată * este eală# maimică sau mai mare dec!t componenta v;mi*loc
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
97/179
• icultă7ile !n aplicarea acestei strateii s!nt leate de pre(en7ainstruc7iunilor de deci(ie +if+ case etc.,# a celor iterative +!#ile+ repeat ,sau a celor de transfer +goto,. cestea determină apari7ia unui mare
număr de com"ina7ii !n care instruc7iunile elementare ale proramului+atri"uiri# instruc7iuni de intrare/ieire# apeluri de proceduri, pot e%ecutate.
• Udeal ar ca testul să solicite e%ecutarea ecărei com"ina7ii posi"ile celpu7in o dată. in punct de vedere practic acest lucru nu este reali(a"il#c3iar !n ca(ul proramelor de dimensiune relativ mică.
$%emplu. En ca(ulwhile a doif " then else 4
dacă se e%ecută n itera7ii# s!nt posi"ile 2n
com"ina7ii !n care se e%ecutăinstruc7iunile i 4. En testare e%3austivă ar tre"ui ca setul de date săcon7ină 2n eantioane. Presupun!nd că prelucrarea unui eantion ar duradoar o milisecundă# !n ca(ul n > ? ar necesari aproape ? de ani+WW,de lucru ne!ntrerupt.
-riterii de acoperire
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
98/179
-riterii de acoperire
• En realitate nu se testea(ă dec!t un numărlimitat de astfel de com"ina7ii# considerate maiimportante. En sta"ilirea acestui număr decom"ina _ii se utili(ea(ă diferite criterii deacoperire# dintre care cele mai importantes!nt: – 1, acoperirea tuturor instruc/iunilor 9 – 2, acoperirea tuturor arcelor 9
– , acoperirea tuturor condi
iilor simple9 – , acoperirea tuturor drumurilor .
coperirea tuturor instruc7iunilor +U4STX,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
99/179
• cest criteriu se "a(ea(ă pe o"serva7ia evidentă că o eroarenu va descoperită dacă nu se e%ecută deloc instruc7iunile
ce o con7in. Prin urmare# testul tre"uie să e astfel ales !nc!t pentru ecare instrucțiune elementar _ a programului săe*iste un eșantion de date care să provoace e*ecutarea sa .
• -riteriul nu arantea(ă semnalarea erorii.m > ma%+%#F,:
m :> %9if F C> % then m :> FNm > ma%+%# F,O
TestulN+% > 2# F > 2,O provoacă e%ecutarea am"elorinstruc7iuni de atri"uire iar re(ultatul o"7inut este corect
+testul este neconcludent,.ar aloritmul este incorect deoarece se calculea(ă de fapt m > min+%# F,.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
100/179
Testele ce satisfac acest criteriu s!nt !n eneral neconcludente deoareceacelai eantion de date poate provoca e%ecutarea mai multor
instruc7iuni9 este deci foarte pro"a"il să putem minimi(a număruleantioanelor din test# men7in!nd criteriul de acoperire a instruc7iunilor.i * G7 H then
!riteln (I* pozitivI) J!4K
else !riteln (I* negativI); J!5K
i % G7 H then
!riteln (I% pozitivI) J!6Kelse !riteln (I% negativI); J!LK
• pentru e%ecutarea instruc7iunilor w1 i w2 s!nt suciente clasele deec3ivalen7ă N+%# F, % ≥ ?O i N+%# F, % C ?O.
• Xan!nd această parti7ie spre a asiura e%ecutarea lui w i a lui w#o"7inem o parti7ie cu clase de ec3ivalen7ă ce corespund celor cadraneale planului carte(ian. eci un test care con7ine eantioane +c!te unul dinecare clasă, !ndeplinete criteriul de acoperire a instruc7iunilor.
• En realitate este sucient un test cu doar două eantioane:N+% > 2# F > 2,# +% > &2# F > &2,O# care este mai sla" dect primul.
coperirea tuturor arcelor+condi7iilor,: X-$+-J4,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
101/179
• gra de control al proramului +construit inductivpentru prorame ce con7in instruc7iuni elementare
+adică atri"uiri# instruc7iuni de intrare/ieire# apeluri deproceduri,# instruc7iuni de deci(ie +i # then # else# i #then, i instruc7iuni iterative +!#ile# repeat etc.,.
• Unstruc7iuni elementare:1a9 arcul repre(intăinstruc7iunea9 dacă este necesar# se etic3etea(ă univoc9
• instruc7iune de deci(ie de formaif c then else B: 1"if c then : 1c:> i :M rafurile asociate lui # B9 !n v!rful de intrare
se poate !nscrie condi7ia c9• instruc7iunea iterativăwhile c do : 1drepeat until c : 1e.
• -ompunere secven7ială# 9 B : 1f
@rafuri asociate instruc7iunilor
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
102/179
7
$%emple
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
103/179
• Unstruc7iunilor următoareread+%,9
if % > ? then F :> ?9writeln+%,9li se asocia(ă raful de control din ura 2a
• Observație. Secven7ele de forma celor din ura a cuproprietatea că sinurele arce care intră sau ies din v!rfurilen2#... nI&1 unde I ≥ s!nt cele din ură se pot !nlocui prin
secven7e de forma celor din ura "+este posi"il ca raful să devină un multiraf:pot e%ista maimulte muc3ii distincte care să lee aceeai perec3e de v!rfuri,
• instruc7iunilor din e%emplul 1 li se asocia(ă multiraful dinura 2"
• Unstruc7iunilor următoare:read+%,9while % D ? do % :> % 1li se asocia(ă multiraful din ura
i x82 oread(x n )rite%n(x
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
104/179
da
y82
i x82 oread(x n
day82
)rite%n(x
5i" /&
5i" /a
n/n3 nk-3 nk
n3 nk
5i" 0a
5i" 0&
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
105/179
xL2 oread(x n
da
i
x8x-3
5i"# =
xL2 xL;M3
A
cA
c
5i"# :
Exemple: Euclid's algorithm
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
106/179
-3. 6 1?6
begin
read (x); read (y);
while x ≠ y loop
if x > y then
x := x - y;
elsey := y - x;
end if;
end loop;
gcd : = x;end;
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
107/179
• -riteriul de acoperire a tuturor arcelor: testul să e astfelales !nc!t pentru orice arc din graf (multigraf) să e*iste
eșantioane care să provoace parcurgerea arcului lae*ecutarea programului/
0*emplu Pentru instruc7iunile din e%emplul 1.setul de dateN+% > ?,9 +% > 1,O !ndeplinete acest criteriu.
• Observație. Friteriul de acoperire a tuturor arcelor este
mai tare dec3t criteriul de acoperire a tuturorinstrucțiunilor/ ceastă rela7ie este strictă9 pentruinstruc7iunile din e%emplul 1 testul N% > ?O asiurăacoperirea tuturor instruc7iunilor# dei arcul corespun(!ndsitua7iei % ≠ ? nu este parcurs.
• Observație. -riteriul de acoperire a tuturor arcelor arecalitatea că impune aleerea unui test care să provoaceevaluarea ecărei condi7ii cel pu7in o dată at!t cu re(ultatultrue c!t i cu re(ultatul false.
$%emplu
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
108/179
• Eercițiu. )ie instruc7iunile
if % D ( then F :> else F :> 29if % D ( = 1 then w :> else w :> [email protected]ăsi7i un test cu număr minim de eantioane pentru
acoperirea tuturor arcelor. 0aria"ilele s!nt de tipulinteer.• !. )ie > N+%#(, % D (O9 c > N+%#(, % ≤ (O9
B > N+%#(, % D ( = 1O9 cB > N+%#(, % ≤ ( = 1O.Jrice test care con7ine c!te un eantion din ecaremul7ime este sucient pentru acoperirea tuturor arcelor+a se vedea ura 6,. e pildă# se poate lua testul:% > 1# ( > ?9 % > 1# ( > 19 % > 2# ( > ?9 % > ?# ( > ?.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
109/179
• ceste mul7imi nu s!nt dis*uncte. J parti7ie se poate o"7ineconsider!nd următoarele clase de ec3ivalen7ă:
∩ B > N+%#(, % D ( = 1O9 ∩ cB > N+%#(, % > ( = 1O9c ∩ cB > N+%#(, % ≤ (O+c ∩ B este vid _,.
• $ste sucient deci un test cu eantioane +c!te unul din ecareclasă de ec3ivalen7ă,. Se poate lua de pildă
% > 2# ( > ?9% > 2# ( > 19% > ?# ( > 1.
• $%istă !nsă i teste cu două eantioane+%1# (1, ∈ ∩ B# +%2# (2, ∈ c ∩ cB.
• Teste cu un sinur eantion i care să satisfacă criteriul de acoperirea tuturor arcelor nu e%istă deoarece orice eantion nu poate asiuradec!t parcurerea unui sinur arc al instruc7iunii de deci(ie.
$%emplu
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
110/179
• )ie următorul proram de căutare secven7ială a elementului v !n irul%1#...%n# unde 1 ≤ n ≤ 1?.
const dma% > 1?9var %: arra';1..dma%< of inteer9
i#n: inteer9v: inteer9asit: "oolean9be(in
read+n,9for i :> 1 to n do read+%;i false9i :> 19
while +not asit, and +i C> n, do be(inif %;i< > v then asit :> false9 NWOi :> i = 1end9
end.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
111/179
• Se consideră o variantă a acestui proram# !n careinstruc7iunea de deci(ie din instruc7iunea iterativă se
!nlocuiete cu instruc7iunea de atri"uireasit :> +%;i< CD v,răta7i că aplicarea criteriului de acoperire a tuturor arcelorconduce la teste diferite !n cele două ca(uri.!. @rafurile asociate s!nt pre(entate !n ura `. – En primul ca( s!nt necesare două eantioane# pentru ca(ul
%;i< > v i respectiv %;i< CD v. Se poate lua testul :n > 1# %;1< > 1?# v > 1?9n > 1# %;1< > 1?# v > ?.cest test este concludent +primul eantion,.
– En al doilea ca( este sucient un sinur eantion pentru
acoperirea tuturor arcelor. Jricare din cele două eantioaneconsiderate anterior semnalea(ă eroarea. – loritmul corect se o"7ine prin !nlocuirea instruc7iunii
asit :> false cu asit :> true. Unstruc7iunea de deci(ie poate !nlocuit _ prin asit:>+%;iv,.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
112/179
da
5i"# 1
xNiO8'
da
n
"asit8fa%se
a
i8iM3 da
n n
"asit8(xNiOPL'Q
i8iM3
&
coperirea arcelor# criteriuincompati"il
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
113/179
-3. 6 11
incompati"il
-onsiderăm altă variantă+iPn,:
da
not "asit
and
iPn
xNiO8'
da
n
"asit8true
i8iM3
n
T1>N+%>N1#2O# v>1,# +%>N1#2O# v>,O acoperăarcele#dar neconcludent T2>N+%>N1#2O# v>1,# +%>N1#2O# v>2,O acoperăarcele#
concludent
coperirea tuturor condi7iilor simple q+SUP&-J4=X-$+-J4,,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
114/179
+SUP -J4=X-$+-J4,,• En ca(ul c!nd !n proram e%istă condi7ii compuse de forma c
and d sau c or d# acoperirea tuturor arcelor nu conduce
totdeauna la evaluarea condi7iilor c i d at!t cu re(ultatulfalse c!t i cu re(ultatul true.• Eemplul ).*.).+.+.,. )ie instruc7iunile următoare:if +% CD ?, and +F CD ?, then ( :> ?else ( :> 1 / F
• Testul N+%>1# F>1,9 +%>?# F>1,O asiură acoperirea celordouă arce. Se o"servă !nsă că situa7ia F > ?# care ar condus la descoperirea unei erori nu a fost necesară pentru !ndeplinirea acestui criteriu.
dan
x82 x83Ry
coperirea tuturor condi7iilor simple2/2
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
115/179
• $ste util să considerăm un criteriu mai tare dec!t cel al acoperirii tuturorarcelor# prin care se cere ca testul: 1. să acopere toate arcele și 5/ săasigure evaluarea tuturor condițiilor simple at3t cu rezultatul true c3t și cu
rezultatul false.• cest criteriu este ec3ivalent cu acoperirea tuturor arcelor# dacă
proramul con7ine doar condi7ii simple# !n care nu apar operatorii loiciand sau or.
• $valuarea tuturor condi7iilor simple nu asiură i acoperirea arcelor +falseand true# true and false# acelai arc,.
• a rescrierea instruc7iunilor ce con7in condi7ii compuse prin instruc7iuni cucondi7ii simple se va 7ine seama că
if c and d then if c then if d then else B i
else Belse Bs!nt ec3ivalente doar dacă operatorul and este evaluat prinscurtcircuitare/
En ca( contrar re(ultatele s!nt diferite# după cum se poate o"serva !n ca(ulc!nd c este % CD ?# d este 1/% D ? iar % are valoarea ?.
coperire multiplă a tuturor condi7iilorsimple
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
116/179
simple+SUP&-J4&YT,• testul tre"uie să asigure evaluarea
condițiilor simple cu rezultatul true și false3n toate combinațiile cerute de structuracondi7iei compuse !n care ele apar. epildă# !n ca(ul c and d se o"7ine pentruperec3ea de condi7ii simple +c# d, patrucom"ina7ii: +false# false,# +false# true, etc.
• acest criteriu este strict mai tare dec!tacoperirea tuturor condi7iilor simple.
$%emplu
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
117/179
$%emplu
• )ie instruc7iunileif +% CD ?, and +F CD ?, then( :> 1else ( :> 1 / +%F = % = F,• Testul N+% > 1# F > ?,9 +% > ?# F >1,9 +% >1# F >1,O
acoperă toate condi7iile simple dar nu provoacevaluarea +false# false,.
• $l este de altfel neconcludent. $roarea estedescoperită c3iar prin eantionul +% > ?# F > ?, care
adăuat la testul considerat acoperă multiplu toatecondi7iile simple. Pentru acest proram# acest criteriueste mai "un dec!t acoperirea tuturor condi7iilor simple.
coperirea tuturor atri"uirilor loice:[email protected]&TX
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
118/179
[email protected] TX• Se consideră un proram P !n care e%ecutarea este
diri*ată doar prin e%presii loice +condi7ii,9 altemecanisme +precum instruc7iunea case, s!nt e%cluse.
• )ie c1#... cn toate condi7iile care apar !n P. Seconsideră toate sistemele de valori loice w >+v1#...vn,# unde vi ∈ Ntrue# falseO pe care le pot lua
aceste condi7ii.• Se formulea(ă următorul criteriu# numit acoperirea
tuturor atribuirilor logice: testul tre"uie săasigure evaluarea condițiilor astfel 3nc3t să se obținătoate sistemele !.
• acest criteriu este strict mai tare dec!t acoperireatuturor arcelor.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
119/179
$%emplu
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
120/179
• Să se arate că !n ca(ul instruc7iunilor următoareif % CD ? then F :> `else ( :> ( & %9if ( D 1 then ( :> ( / %else ( :> ?
criteriul acoperirii tuturor atri"uirilor loice asiurăsemnalarea erorii.
• !. 0om arăta că dacă testul este neconcludent atunci nuacoperă toate atri"uirile loice. )ie %?# (? valorile lui % i F
!nainte de prima instruc7iune i %1# F1 valorile dupăe%ecutarea acesteia. acă testul este neconcludent# din %1 > ? re(ultă (1 ≤ 1. ar %1 > %?9 re(ultă de aici că atri"uirea+false# true, nu poate reali(ată.
-riteriul acoperirii multiple a condi7iilorsimple i criteriul atri"uirilor loice s!nt
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
121/179
p incompara"ile.• !. )ie instruc7iunile următoare:if +% CD ?, and +F CD ?, thenNcondi7ia -Oa :> ?else a :> 19if +( CD ?, and +t CD ?, then Ncondi7ia O
a :> ?else a :> 1• $antioanele s!nt sisteme de valori +%# F# (# t,.• Testul N+?#?# ?#?,9 +?#?# 1#1,9 +1#1# ?#?,9 +1#1# 1#1,O
acoperă toate atri"uirile loice ale condi7iilor - i dar nu
acoperă multiplu condi7iile simple din care acestea s!nt formate.• Testul N+?#?# ?#?,9 +?#1# ?#1,9 +1#?# 1#?,9 +1#1# 1#1,O
acoperă multiplu condi7iile simple dar nu acoperă toateatri"uirile loice.
Xela7ii !ntre criterii# sinte(ă
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
122/179
IJSTK
AK6E([email protected]
[email protected]([email protected]
@G-ATK
c8a " +o condi7ie, T>N+a>1#">?,#
+a>1#">1,[email protected]&TX# dar nuSUP&-J4=X-$+-J4,
638a "# -2>cda " c d? ? ? ? SUP&-J4&YT? 1 1 ? dar nu1 ? ? ? [email protected]&TX
1 1 1 1
638a "# -2>cd
a " c d? ? ? ? [email protected]&TX +si SUP$&-J4=X-$+-J4,,? 1 1 1 dar nu1 1 ? ? SUP&-J4&YT1 1 1 1
$ATS
- strict mai tare dect toate
coperirea tuturor drumurilor:PTGS
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
123/179
• En conformitate cu acest criteriu# pentru ecare drum al grafuluide control testul conține eșantioane prin prelucrarea cărora
e*ecutarea programului să urmeze drumul ales/• cest criteriu este strict mai tare dec!t cele pre(entate !nainte.• )ie instruc7iunile următoare:if % CD ? then ( :> ?9else ( :> 19if F CD ? then ( :> 2else ( :> 1/+% = F,@raful asociat este cel din ura 1..1.2.2..• Testul N+%>?# F>1,9 +%>1# F>?,O acoperă toate condi7iile
simple. $l nu acoperă !nsă dec!t două drumuri din cele posi"ile# ind neli*at c3iar cel care ar dus la semnalarea uneierori +ca(ul % > ? i F > ?,.
• Yn test care satisface acest criteriu este# de e%empluN +% > ?# F > 1,9 +% > 1# F > ?,9+% > ?# F > ?,9 +% > 1# F > 1,O
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
124/179
• acest criteriu e%primă un de(iderat reu de reali(at !npractică datorită instruc7iunilor iterative.
• -riteriul poate !nsă aplicat !n forme mai sla"e#select!nd pentru testare doar anumite drumuriconsiderate critice.
• ei această selec7ie este dependentă de pro"lemă#
ea poate totui 3idată de suestia ca datele de testsă provoace parcurerea unor drumuri ce corespund: – numărului minim de itera7ii +adică nici o itera7ie !n ca(ul
!#ile i o itera7ie !n ca(ul repeat ,9 – numărului ma%im de itera7ii9
– numărului mediu de itera7ii# dacă acesta poate sta"ilit !ntr&un fel oarecare9 !n ca( contrar se acceptă o e%ecutare cu unnumăr semnicativ de itera7ii.
$%empluSă considerăm ca(ul unui aloritm de căutare secven7ială a unei valori % printre
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
125/179
Să considerăm ca(ul unui aloritm de căutare secven7ială a unei valori % printrecomponentele v;1 1??9
t'pe inde% > 1..dma%9numarcomponente > ?..dma%9element > inteer9vector > arraF;inde%< of element9
function secvential +% : element9 v : vector9n : numarcomponente , : "oolean9var asit : "oolean9
po(itie : inde%9be(in
asit :> false9 po(itie :> 19while +not asit, and +po(itie C n, do be(inasit :> +v;po(itie< > %,9po(itie :> po(itie = 1end9secvential :> asit
end9
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
126/179
• @raful asociat acestui aloritm este
pre(entat !n ura 2..1.2.2..• $ste important ca setul de date de testsă asiure: – parcurerea unui drum !n care instruc7iunea
!#ile se e%ecută !n (ero itera7ii +n > 1 saun>?,9
– parcurerea unui drum !n care instruc7iunea!#ile se e%ecută !n c!teva itera7ii# distin!nd
situa7iile !n care % face sau nu parte dinsecven7a v;1dma%.
0om considera deci testul:1.2.+,
1? 1?
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
127/179
% > 1?9 % > 1?9v > +,9 v > +1?,9n > ?9 n > 19
..% > 1?9 % > 2?9v > +1?# 2?# ?,9v > +1?# 2?# ?,9n > n >
`.+,6.% > ?% > ?9v > +1?# 2?# ?,9v > +1?# 2?# ?,9n > n >
H.
% > ?9v > +1?,9n > 1.
cesta este un test concludent# deoarece !n ca(urile 5 i N este semnalată o eroare.ceste eantioane au valoarea * pe ultima po(i7ie a vectorului. epanareaaloritmului constă !n !nlocuirea condi7iei po(itie C n prin po(itie C>n.
plicarea interată a criteriilor detestare
>l it l d t idă (O i "2 t) t
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
128/179
• >lgoritmul de sortare rapidă (Ouic"2ort). cestaloritm a fost ela"orat de -..X. Goare ;Go 62
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
129/179
p p pprocedură recursivă:
procedure Sortare +S : sir9 var X : sir,9var S1# S2# X1# X2 : sir9
be(in
if S are cel pu7in două elemente then be(in
Partitionare +S# S1# S2,9Sortare +S1# X1,9Sortare +S2# X2,9
-om"inare +X1# X2# X,endend9
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
130/179
• ceastă procedură conduce la plasarea aloritmilorde sortare !n două cateorii: – aloritmi !n care partiționarea este dicilă# dar
com"inarea uoară9 – aloritmi !n care parti7ionarea este uoară# dar
combinarea este dicilă.•
$%emplele repre(entative ale acestor cateorii s!ntaloritmii Ouic"2ort i respectiv sortarea prininterclasare. – Ouic"2ort procedura de parti7ionare este dicilă# sortarea
prin interclasare !mparte pur i simplu lista !n două.
– En compensa7ie# la aloritmul Ouic"2ort com"inarea sereali(ea(ă prin simpla alăturare a listelor sortate !n timp cela cealaltă metodă se face mai reu# prin procedeul deinterclasare.
Testare func7ională# uicISort• Presupunem ca dimensiunea ma%ima este dma%>.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
131/179
Presupunem ca dimensiunea ma%ima este dma% .• etoda cutiei nere conduce la considerarea unor
eantioane care să cuprindă:• iruri vide9 +din afara domeniului,• iruri cu un sinur element9 +marinea domeniului,• iruri de dimensiune ma%ima9 +marinea domeniului,• iruri cu cteva elemente +două, elemente9
poi# ranare:• iruri constante9• iruri strict descrescătoare9• iruri strict crescătoare.
• vem deci 11 clase de ec3ivalen7ă i se poate utili(a testulurmător:
1. I>?9 %>+,9
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
132/179
1. I ?9 % +,92. I>19 %>+1?,9
. I>29 %>+1?#1?,9 . I>29 %>+1?#2?,9 `. I>29 %>+2?#1?,9
6. I>9 %>+1?#1?#1?,9 H. I>9 %>+1?#2?#?,9 . I>9 %>+?#2?#1?,9
. I>9 %>+1?#1?#1?#1?,91?. I>9 %>+1?#2?#?#?,911. I>9 %>+?#?#2?#1?,.
Testare structurală# uicISortpro(ram sort9
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
133/179
pro(ram sort9const Ima% > 1?9 Nnumarul ma%im de elemente ale siruluiOt'pe indice > ? .. Ima%=19
element > inteer9var %: arra';indice< of element9
I: indice9 Nnumarul real de elemente ale siruluiO
procedure Partitionare +m#n : indice9 var i#* :indice,9var t# pivot: element9
be(ini:> m9 *:> n9 pivot:> %; +m=n, div 2 * do be(in while %;i< C pivot do i:> i=19while %;*< D pivot do *:> *&19if i C> * then be(int:> %;i *1end
end
end9
procedure uicISort +m#n: indice ,9var i *: indice9
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
134/179
var i#*: indice9be(in
if m C n then be(inPartitionare+ m#n#i#*,9uicISort +m# *,9uicISort +i# n,end
end9
var i:indice9be(in
write+j dati numarul de elemente ale sirului j,9readln+I,9write+j dati elementele sirului j,9
for i:> 1 to I do read +%;i 1 to I do write + %;i< : ` ,9writeln
end.
• Te%tul procedurii Partitionare# preluat din ;lr H< este at!t
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
135/179
e u p ocedu a o a e# p e ua d ; < es e ade "ine conceput !nc!t aproape orice modicare !i afectea(ăcorectitudinea.
• e pildă# s&ar putea !ncerca !nlocuirea condi7iei %;i< C pivotprin %;i< C> pivot i a condi _iei %;*< D pivot prin %;*< D>pivot9 această tentativă este *usticată prin inten7ia de asări i peste elementele eale cu pivotul pentru a acceleraprocesul de parcurere. Spre e%emplu# !n ca(ul irului1# 2# 2# 2# 2# 2# 2# `s&ar a*une la situa7ia nală1 *# 2# 2# 2# 2# 2# 2# `i !ntr&o sinură itera7ie.+!n forma ini7ială# procedura -artitionare a*une la forma
nală1# 2# 2# 2 *# 2i# 2# 2# ` !n trei itera7ii.
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
136/179
• J altă propunere de optimi(are s ar putea face
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
137/179
• J altă propunere de optimi(are s&ar putea facerelativ la instruc7iunea
if i C> *then ...
unde se o"servă că !n ca(ul i > *#intersc3im"area valorilor lui %;i< i %;*< este
inutilă. – Se constată !nsă destul de uor că sc3im"area condi7iei
i C> * prin i C * face ca procedura modicată să eincorectă. Entr&adevăr# dacă % > +1?# 2?,# atunci pivot >1? i după prima itera7ie se a*une la situa7ia:
1?i *# 2? – in acest moment# instruc7iunea while i C> * ...
ciclea(ă deoarece dacă i > *# atunci i i * nu mai s!ntmodicate.
• Pentru a remedia acest nea*uns# se poate propune !nlocuirea instruc7iunii
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
138/179
* p p p 7if i C> * ...prin următoarele trei instruc7iuni:
if i C * then be(int :> %;i %;* t
end9i :> i = 19 * :> * 1• )a7ă de propunerile anterioare# aceasta are anse mari de a acceptată ca indcorectă.
• 4ici unul din eantioanele testului anterior nu semnalea(ă vreo eroare.• Totui# se poate constata că !n ca(ul c!nd% > +2# # 1# 1# 2# # 2# `# 6,i deci pivot > 2# după prima itera7ie se a*une la2# i# 1# 1# 2# *# 2# `# 6
e aici se o"7ine situa7ia nală2# 2# 1 *# 1# # i# 2# `# 6
Se o"servă !nsă că elementele din su"irul % *=1#... %i&1 nu s!nt eale !ntre ele# deciprocedura modicată nu mai reali(ea(ă func7ia pentru care a fost creată.
• Tre"uie recunoscut că dacă te%tul ini7ial al
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
139/179
Tre"uie recunoscut că dacă te%tul ini7ial alprocedurii Partitionare ar fost cel propus prin
ultima modicare# eroarea ar avut pu7ineanse de a descoperită prin teste.• ai mult# sensi"ilitatea te%tului acestei
proceduri la modicări ce păreau plau(i"ile +cel
pu7in la prima vedere, ne face să ne !ndoim decorectitudinea sa i să resim7im nevoia unei *usticări riuroase a "unei sale func7ionări.
• ceasta poate o"7inută prin metode statice
de vericare +metode formale de demonstrarea corectitudinii proramelor,.
$%ercise: Xussian ultiplication+oa Ao3ansson# Qolfan 3rendt# 0ladimir Rle"anov: Testin# e"uin#
and 0erication,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
140/179
, Testin docs 2?1`Testin.pdf
Xussian ultiplication# control Mowrap3
http://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Testing3.pdfhttp://var/www/apps/conversion/tmp/scratch_4/Testing%20docs%202015/Testing3.pdf
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
141/179
Xussian ultiplication# coveraecriteria
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
142/179
$valuarea testelor prin mutan7i utation testin +mutation analFsis,+curs )lorentin Upate,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
143/179
+curs )lorentin Upate,
• Te3nica de evaluare a unui set de teste pentru unproram +avand un set de teste enerat# putemevalua cat de ecient este# pe "a(a re(ultateloro"tinute de acest test asupra mutantilorproramului,
• utation > modicare f. mica +din punct de vederesintactic, a unui proram
• Pentru un proram P# un mutant al lui P este unproram o"tinut modicand f. usor P9 tre"uie sae corect din punct de vedere sintactic.
$%empluro(ram
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
144/179
ro(ram "ein
int %# F9read+%# F,9if +% D ?,write+%=F,elsewrite+%F,
end/utant /)"ein
int %# F9read+%# F,9if +% % 012
write+%=F,elsewrite+%F,
end
/utant /+
" i
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
145/179
"einint %# F9
read+%# F,9if +% D ?,write+3'2elsewrite+%F,
end/utant /,
"einint %# F9read+%# F,9if +% D ?,
write+4'4)2elsewrite+%F,
end
Te3nica utation testin
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
146/179
• &@enerarea mutantilor pentruproramul P +folosind o multime deoperatori de mutatie,
• &Xularea setului de teste asupraproramului P si setului de mutanti9daca un test distine intre P si un
mutant spunem ca - omoarămutantul R/
utanti de primul ordin / mutanti de ordinmai mare +rst&order/3i3er&order mutants,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
147/179
•
)irst&order mutants > mutanti o"tinuti facand o sinura modicare inproram• n&order mutants > mutanti o"tinuti facand n modicari in proram• n&order mutant > rst&order mutant of a +n&1,&order mutant# n D 1• n&order mutant# n D 1# sunt numiti 3i3er&order mutantsutant de ordin 2
"einint %# F9read+%# F,9if + %0 12 write+3'2else write+%F,
endUn eneral# in practica sunt folositi doar mutantii de ordin 1. otive:& 4umarul mare de mutanti de ordin 2 sau mai mare& -ouplin&eect
Principiile de "a(a ale mutation testin• -ompetent prorammer 3Fpot3esis +-PG,:
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
148/179
• -ompetent prorammer 3Fpot3esis +-PG,: – Pentru o pro"lema data# proramatorul va scrie un proram
care se aMa in vecinatatea unui proram care re(olva incorect pro"lema +si deci# erorile vor detectate folosindmunati de ordinul 1,
• -ouplin eect – atele de test care distin orice proram care difera cu
putin de proramul corect sunt sucient de puternicepentru a distine erori mai comple%e.
– Xe(ultate e%perimentale arata ca un set de teste caredistine un proram de mutantii sai de ordin 1 este faproape de a distine proramul de mutantii de ordin 2
– $%plicatie intuitiva: in eneral erorile simple sunt mai reude detectat. $rorile comple%e pot detectate de aproapeorice test
Stron mutation/ weaI mutation
• Yn test t omoara mutantul +distine fata de P,
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
149/179
• Yn test t omoara mutantul +distine fata de P,daca cele doua se comporta diferit pentru testul t.
• Untre"are: cand o"servam comportamentul celordoua prorame W – Testul t aduce pe P si in stari diferite & se o"serva starea
proramului +valorile varia"ilelor afectate, dupa e%ecutia
instructiunii mutate. – Sc3im"area starii se propaa la sfarsitul proramului & seo"serva valoarile varia"ilelor returnate si alte efecte+sc3im"area varia"ilelor lo"ale# siere# "a(a de date,#imediat dupa terminarea proramului
• Sea" mutation prima conditie este satisfacuta
• 2trong mutation ambele conditii sunt satisfacute
$%empluro(ram
"ein
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
150/179
int %# F9read+%# F,9F :> F=19
if +% D ?, write+%,else write+F,
end
/utant /
"ein
int %# F9read+%# F,9F :> F&19if +% D ?, write+%,else write+F,
end
• Testul +1# 1, distine intre P si d.p.d.v. weaI mutation# dar nudistine intre P si d.p.d.v. stron mutation
• Testul +?# 1, distinre intre P si d.p.d.v. stron mutation• Stron mutation: mai puternica. Se asiura ca testul t detectea(a cu
adevarat pro"lema• QeaI mutation: necesita mai putina putere de calcul9 strans leata de
ideea de acoperire
utanti ec3ivalenti
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
151/179
• Yn mutant a lui P se numeste ec3ivalent daca el se
conporta identic cu proramul P pentru orice date deintrare/ >ltfel + se spune ca R poate distins de -/• in punct de vedere teoretic: in eneral# pro"lema
determinarii daca un mutant este ec3ivalent cuproramul pari nte este nedecida"ila +este ec3ipaventa
cu 3altin pro"lem,• Un practica: determinarea ec3ivalentei se face prin
anali(a codului +formal met3ods,• eterminariea mutantilor ec3ivalenti poate un proces
foarte comple% principala pro"lema practica a te3niciimutation testin +avem neoie sa decidem daca mutantiisunt sau nu ec3ivalenti pentru a putea evalua efeicientatestelor,
Ytilitatea mutation testin• $valuarea unui set de date e%istent +si construirea de noi
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
152/179
$valuarea unui set de date e%istent +si construirea de noiteste# daca testele e%istente nu omoara toti mutantii,
• etectarea unor erori in cod• Evaluarea unui set de date eistent 5eemplu2
"einint %# F9
read+%# F,9if +% D ?, write+%=F,else write+%F,
end• -onsideram urmatorii operatori de mutatie:• = inlocuit de • inlocuit de /• o varia"ila sau o constanta % este inlocuita de %=1
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
153/179
"einint %# F9read+%# F,9if +% D ?, 1 if +%=1 D ?,2 if +%D ?=1,
write+%=F, write+%=1=F, write+%=F=1,` write+%&F,elsewrite+%F, 6 write++%=1,F,H write+%+F=1,, write+%/F,
end
• Set de teste T > Nt1 t2 t tO
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
154/179
Set de teste T Nt1# t2# t# tOt1 > +?# ?,# t2 > +?# 1,# t > +1# ?,# t > +&1# &1,
t) t+ t, t6 /utant distinsP+t, ? ? 1 11+t, ? ) NE NE 72+t, ? ? 1 NE 7+t, ? ? + NE 7
+t, ? ? + NE 7`+t, ? ? 1 1 N6+t, ? 1 4$ 4$ H+t, ? ? 1 1 7+t, 4 4$ 4$ 4$ • utanti nedistinsi +alive, > N`O• Untre"are: $ste ` mutant ec3ivalent W
Xaspuns: 4u. +1# 1, distine intre P si `
utation score
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
155/179
• /utation score: /85T2 0 95;492"unde
• numarul de mutanti distinsi
• numarul de mutanti nedistinsi+live mutants, neec3ivalenti• Pentru e%emplu: S+T, > H/
etectarea erorilor folosind mutatia +e%emplu,ro(ram
"ein
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
156/179
"einint %# F
read+%,F > 1F > 2 C&&& $roare: instructiune lipsaif +% C ?, F > if +%D2, F > write+F,
end/utant /
...if +% C 1, F >
...• ratam ca mutantul enerea(a teste care detectea(a eroarea• Pentru ca un test t sa distina intre P si tre"uie ca:
– &Xeac3a"ilitF: Unstructiunea mutata sa e e%ecutata la aplicarea lui t – &State infection: Unstructiunea mutata sa afecte(e statea proramului – &State propaation: Sc3im"area de state sa se propae in e%terior
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
157/179
• Pentru e%emplul dat# pentru ca un test t sadistina intre P si :• & Xeac3a"ilitF: TXY$• & State infection: +% C 1 +%C?,,• & State propaation: +% D 2,
• -onditia re(ultata: +% >?, +% C>2, x % > ?
• Pentru % > ? proramul corect intoarce 2 intimp ce proramul resit returnea(a
Jperatori de muta7ie• Operator de mutatie
– Jperator de mutatie > Xeula care se aplica unui
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
158/179
p pproram pentru a crea mutanti +e..
inlocuirea/adauarea/stererea unor operan(i# sterereaunor instructiuni# etc., – Proramul nou o"tinut tre"uie sa e valid din punct de
vedere sintactic• Operator de mutatie din
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
159/179
• T3e class mutation operators are classied into fourroups# "ased on t3e lanuae features t3at areaected.
1. $ncapsulation2. Un3eritance
. PolFmorp3ism. Aava&Specifc )eatures• @enerallF# all t3e "e3aviors of mutation operators fall
under one of t3e t3ree cateories:+1, delete#+2, insert# and+, c3anea taret sFntactic element.
u&Seun a$lectronics and Telecommunications Xesearc3Unstitute# Rorea
%smaTetri/re/"r
Ae JuttUnformation and Software $nineerin# @eore ason YniversitFo
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
160/179
$ncapsulation
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
161/179
• - N ccess modier c3ane: T3e -operator c3anes t3e access level forinstance varia"les and met3ods to ot3eraccess levels. T3e purpose of t3e -operator is to uide testers to eneratetest cases t3at ensure t3at accessi"ilitF iscorrect.
UG
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
162/179
UG N Gidin varia"le deletion: T3e UG operator deletes a 3idinvaria"le# a varia"le in a su"class t3at 3as t3e same name andtFpe as a varia"le in t3e parent class.
UGU• UGU N Gidin varia"le insertion: T3e UGU operator inserts a 3idin
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
163/179
• UGU N Gidin varia"le insertion: T3e UGU operator inserts a 3idinvaria"le into a su"class. Ut is a reverse case of UG.
• T3e a"ilitF of a su"class to override a met3od declared "F anancestor allows a class to modifF t3e "e3avior of t3e parent class.
• Q3en t3ere are overridin met3ods# it is important for testers toensure t3at a met3od invocation actuallF invoIes t3e intendedmet3od.
UJ• UJ N Jverridin met3od deletion: T3e UJ
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
164/179
operator deletes an entire declaration of an over&
ridin met3od in a su"class so t3at references tot3e met3od uses t3e parentjs version. T3e mutantact as if t3ere is no overridin met3od for t3emet3od.
UJP• UJP N Jverridden met3od callin position c3ane:
Sometimes# an overridin met3od in a c3ild class needs tocall t3e met3od it overrides in t3e parent class T3is maF
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
165/179
call t3e met3od it overrides in t3e parent class. T3is maF3appen if t3e parentjs met3od uses a private varia"le v+!#ic# means t#e met#od in t#e c#ild class ma% not modif%v directl%/
• Gowever# an easF mistaIe to maIe is to call t3e parentjsversion at t3e wron time# w3ic3 can cause incorrect state"e3avior.
• T3e UJP operator moves calls to overridden met3ods to t3erst and last statements of t3e met3od and up and downone statement.
UJX
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
166/179
• UJX N Jverridden met3od rename: T3e UJX operator is desined to c3ecIif an overridin met3od adverselF aects ot3er met3ods. -onsider amet3od m() t#at calls anot#er met#od f()+ bot# in a class ist. )urt3er#assume t3at m() is in#erited !it#out c#ange in a c#ild class 2tac"+ but f()is overridden in StacI. Q3en m() is called on an ob$ect of t%pe 2tac"+ itcalls 2tac"Is version of f() instead of ?istIs version. Un t3is case# StacIjsversion of f() ma% #ave an interaction !it# t#e parentIs version t#at #as
unintended conseVuences.• T3e UJX operator renames t3e parentjs versions of t3ese met3ods so t3at
t3e overridin cannot aect t3e parentjs met3od. Ut models t3e situationt3at t3e overridin met3od is declared as a new met3od wit3 dierentname in t3e c3ild class.
• T3e super IeFword is used to access parentjs mem"ers +varia"les or
met3ods, wit3in t3e c3ild class. Q3en t3ere is varia"le s3adowin ormet3od overridin# use of t3e super IeFword s3ould "e careful "ecause itc3ane t3e reference to varia"les or met3ods from t3e c3ild class tosuper class.
UJX
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
167/179
USU• USU N super IeFword insertion: T3e USU operator
i t t3 I d t3 t f t
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
168/179
inserts t3e super IeFword so t3at a reference to
t3e varia"le or t3e met3od oes to t3e overriddeninstance varia"le or met3od.• T3e USU operator is desined to ensure t3at
3idin/3idden varia"les and overridin/overridden
met3ods are used appropriatelF.
US• US N super IeFword deletion: T3e US operator
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
169/179
• US N super IeFword deletion: T3e US operator
deletes occurrences of t3e super IeFword so t3ata reference to t3e varia"le or t3e met3od oes tot3e overridin instance varia"le or met3od. Ut is areverse case of t3e USU.
•
lt3ou3 constructors are not in3erited t3e waFot3er met3ods are# a constructor of t3esuperclass is invoIed w3en su"classes areinstantiated.
• Q3en we create new o"*ects of a derived class#t3e default constructor +no aruments, for t3eparent class is automaticallF called rst# t3en t3econstructor of t3e derived class is called.Gowever# t3e su"class can use t3e super IeFword
t ll i t l t t T3i i
US
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
170/179
UP-• UP- : $%plicit call of a parentjs constructor deletion
8/15/2019 Testarea Sistemelor Software (din Cap1, TB).pptx
171/179
p p• T3e UP- operator deletes super constructor calls# causin
t3e default constructor of t3e parent class to "e called. ToIill mutants of t3is tFpe# it is necessarF to nd a test casefor w3ic3 t3e parentjs default constructor creates an initialstate t3at is incorrect.
PolFmorp3ism• J"*ect references can 3ave dierent tFpes wit3
dierent e ecutions T3at is o"*ect