Introducere în Testarea Automată
Introducere în testarea automată
Data : 25 Martie 2002
Autori : Despina Eftimescu ([anonimizat]), Alexandru Ilioiu ([anonimizat])
Introducere
În noua economie, producătorii de soluții IT sunt confruntați cu o nouă cerință care îi obligă să
schimbe total modul de construcție a unui produs, fără a face compromisuri de calitate. A fi primul pe
piață cu ultimele tehnologii este mai important ca oricând. Lucrând cu o infrastructura software și
hardware din ce în ce mai complexă, confruntați cu creșterea continuă a cerințelor de calitate și cu
necesitatea reducerii costurilor, firmele de software încep să prețuiască tot mai mult soluții solide,
inginerești, de dezvoltare de software.
Testarea produsului este în software o componentă majoră în procesul de dezvoltare.
În limbaj de specialitate se discută despre asigurarea calității (Quality Assurance). Firmele din industria
tradițională – de ex. industria de mașini, de construcții, de produse electronice sau alimentare au de zeci
de ani departamente de testare și verificare a calității. În materie de software, organizarea și automatizarea
muncii de testare și verificare a produselor a început din motive istorice evidente abia în anii '80.
Testarea manuală, mult timp văzută ca singura soluție de a descoperi eventualele defecte, întârzie
foarte mult lansarea pe piață a produsului și induce cheltuieli semnificative mai ales în cazul descoperirii
efectelor laterale – atât în procesul dezvoltării unei aplicații cât și în cazul de schimbări ulterioare.
Totodată procedurile de testare manuală, prin natura lor limitată, nu reușesc să descopere toate
defectele și nu au nici o șansă să simuleze condiții de utilizare simultană, intensivă, a unei aplicații.
Există numeroase căi de a îmbunătăți procesul de testare, una dintre cele mai eficiente fiind testarea
automată.
Testele automate execută o secvență de acțiuni fără intervenție umană și pot simula utilizarea unei
aplicații în condiții de simultaneitate ridicată. În general, majoritatea produselor necesită să fie testate de
mai multe ori, pe mai multe platforme software și hardware, ca și după schimbările ulterioare sau la
lansarea unei noi versiuni de produs. Prin folosirea testării automate, costurile testărilor repetate se reduc
aproape la zero.
Cele mai importante beneficii sunt:
• acoperirea tuturor etapelor de testare de la concepție până la lansare
• posibilitatea simulării testării cu mai mulți utilizatori
• posibilitatea repetării testelor
• creșterea siguranței în produs.
Un sistem de testare automată trebuie să aibă la bază două caracteristici principale:
• module reutilizabile
• întreținerea și urmărirea activității dintr-un singur punct de control
De aceea una din calitățile care trebuie să le aibă un astfel de sistem este capabilitatea de a fi ușor
configurat și adaptat în același ritm cu software-ul ce se testează .
Sistemele de testare automată sunt o tehnologie în plină dezvoltare care au ca scop descoperirea și
raportarea eventualelor defecte, mărirea longevității produsului și reducerea procesului de întreținere.
Testarea automată înseamnă mai mult decât o simplă captură de ecran și răspunsul la câteva scripturi : ea
trebuie să înceapă cu planificarea și design-ul procedurii de testare, să conțină o serie de teste repetabile, o
interfață de management al scenariilor de test și un mecanism de raportare și gestionare a bug-urilor
descoperite în urma testării. Un sistem de test evoluat sprijină utilizatorii printr-un sistem de documentare
pe tot parcursul acestui proces.
Într-o abordare mai detaliată testarea automată înseamnă:
1. planificare
1. identificarea cerințelor și a funcționalităților
2. gruparea acestora în condiții de test
3. crearea cazurilor de test pentru aceste condiții
2. design
1/8
1. construcția scripturilor de test
2. generarea testelor de rulare
3. execuție
1. crearea scenariului de rulare a scripturilor
2. rularea uneltelor monitor pentru înregistrarea datelor
3. înregistrarea rezultatelor pentru fiecare rulare
4. raportarea și gestionarea bug-urilor
4. management
1. generarea rapoartelor și graficelor
2. controlul dintr-un singur punct de comandă
3. documentarea permanentă a stadiului curent al proiectului
Tipuri de testare automată :
1. structurală (white-box testing) – se verifică structura software-ului și necesită acces complet la
codul sursă. Acest tip de testare verifică dacă structura codului este eficientă: bucle complicate,
zone de date comune, mii de linii de cod încurcate sunt numai câteva din problemele care pot fi
îndepărtate. Scopul acestui test este mărirea performanței aplicației și a lizibilității codului.
2. funcțională (black-box testing) – se definesc așteptările clientului de la aplicație și se verifică
automat dacă software-ul se comportă conform acestor așteptări. Prin testele ce se execută se
observă comportamentul aplicației, evidențiat prin datele de ieșire, fără a se face referire la
funcțiile interne.
3. regresivă (regression testing) – se verifică dacă s-a modificat neașteptat comportamentul aplicației
în urma implementării unor noi cerințe/schimbări (change requests).
4. negativă (negative testing) – se solicită aplicația, producând deliberat cazuri complicate,
neobișnuite sau particulare pentru a forța apariția erorilor.
5. de solicitare (stress testing) – se determină capabilitățile absolute ale aplicației și ale infrastructurii
pe care este implementată; cu ajutorul acestui tip de test se dezvăluie caracteristicile de
performanță ale unui sistem menținut în condiții de încărcare totale, adică sunt pornite și rulate
toate serviciile care în mod normal ar fi fost rulate separat în timp și independent.
6. de performanță (performance testing) – în urma acestui tip de testare se verifică dacă performanța
aplicației este adecvată pentru cerințele stabilite, în termeni de viteză de acces, resurse de sistem
utilizate și procesarea cererilor de acces.
7. de încărcare (load testing) – se determină punctele slabe ale aplicației și dacă sunt necesare
îmbunătățiri ale infrastructurii hardware sau software prin măsurarea caracteristicilor de
performanță și scalabilitate a principalelor componente ale aplicației web; de regulă aceasta se
realizează prin creșterea numărului de sesiuni utilizator sau a conexiunilor TCP/IP.
Limitele testării automate
Sunt multe lucruri pe care uneltele de testare automată nu le pot face și este important să se
cunoască aceste limitări pentru a alege pe cea mai potrivită. Un sistem de testare automată nu poate spune
când ceva "arată bine" pe ecran sau când o poză sau fereastră nu este bine încadrată. De asemenea un test
automat nu poate decide dacă logica programului are lipsuri funcționale decât în măsura în care au fost
definite complet cerințele aplicației respective. Unele teste, mai ales pentru aplicații mici și pentru
aplicații care se concentrează mai ales pe grafică și nu pe business logic, sunt mult mai ușor realizabile de
către operatorul uman decât de către un computer. De aceea trebuie alcătuit un plan bine definit al
procedurii de testare, când, unde și în ce condiții este fiabilă introducerea automatizării.
Tipuri de unelte pentru testarea automată
Sistemele de testare automată pot include unelte de genul :
• GUI , prin folosirea metodei "înregistrare/redare"
• analizoare de cod – analizează complexitatea codului scris, respectarea unor standarde de scriere
a codului
2/8
• analizoare de memorie – detectează depășirea memoriei alocate, suprascrieri în zone nealocate și
zone rămase nedealocate
• testare de solicitare/performanță – pentru testarea aplicațiilor web și client/server în diferite
scenarii de solicitare
• testare servere web – verifică validitatea și integritatea link-urilor, a codului html, programe
client-side și server-side, securitatea transmiterii datelor
• alte unelte – pentru managementul documentației, raportării bug-urilor, configurației, etc.
Comparație între testarea manuală și automată
Testarea manuală și testarea automată sunt mai degrabă două procese diferite, decât două căi
diferite de a executa același proces : dinamica lor este diferită precum și modul de a releva bug-urile.
Testarea manuală este mai folositoare în situațiile în care este nevoie urgent de rezultatele unor
tipuri de teste specifice și limitate, când se dorește ca timpul de feedback să fie foarte scurt, iar costurile
să fie relativ mici. Cum îmbunătățirea calității produsului implică costuri adiționale pentru găsirea bug-
urilor și gestionarea acestora până la repararea lor definitivă, testarea manuală s-a dovedit a fi în timp
extrem de costisitoare. Testarea manuală pe scară largă presupune alocarea de resurse hardware și umane
destul de mari, iar riscul să apară erori este amplificat de factorul uman.
Testarea automată necesită un efort inițial mai mare pentru planificarea, organizarea și producerea
testului, criteriul principal în obținerea de rezultate bune fiind planificarea atentă, amănunțită și precisă a
acestuia.
O alternativă interesantă este așa-numita "testare parțială". Această soluție este combinație de
jumătate testare manuală și jumătate testare automată, aceasta din urmă fiind folosită numai acolo unde se
pot obține beneficii maxime.
Testarea automată se dorește a fi soluția ideală pentru reducerea timpului de dezvoltare și a
costurilor. O echipă de testeri poate să pornească uneltele de testare automată, să le lase să ruleze și în
final să colecteze și analizeze rezultatele. Timpul este astfel mai bine organizat și poate fi petrecut pentru
izolarea și raportarea bug-urilor.
În zilele noastre sunt multe unelte pe piață care pot ajuta la planificarea, execuția și crearea de
rapoarte în activitatea de testare. Majoritatea acestor unelte necesită cunoștințe de specialitate pentru a le
implementa și utiliza corespunzător. De asemenea, este bine de știut, că suitele profesionale de unelte
specializate în asigurarea calitătii oferă întotdeauna un produs de sine stătător care preia partea de
management de proiect și pe cea de bug reporting/ticketing. Un asemenea produs este de exemplu
TestDirector de la firma Mercury Interactive – market leader în materie de produse pentru asigurarea
calității. Acest produs poate fi imaginat ca un summum între un program de management de proiect de
nivelul lui MS Projects și a unui sistem de ticketing profesional. El poate fi corelat cu diverse sisteme de
versionare folosite în implementare (de ex. CVS) și poate fi configurat în așa fel, încât rapoartele
automate create de uneltele de testare și/sau monitorizare a aplicațiilor să fie preluate automat în sistemul
de ticketing, astfel că citirea și interpretarea manuală a rapoartelor de testare nu mai este necesară. Bug-
urile sunt parsate de către TestDirector, care generează pe baza rapoartelor de testare email-uri, sms sau
alte modalități de atenționare a echipei de implementare.
Este de menționat că un sistem ca TestDirector poate fi folosit pentru partea de management de proiect și
ticketing și în combinație cu testarea manuală, caz în care informațiile despre ceea ce trebuie testat se
formalizează drept scripturi sau scenarii de testare, iar rezultatele testului manual trebuiesc introduse de
către tester manual în sistem.
Soluțiile elegante pentru testarea sistemelor sofisticate sunt adesea limitate numai de imaginația tester-
ilor.
Câteva dintre avantajele utilizării testării automate sunt:
a) avantaje privind eficiența și costurile
• prevenirea erorilor prin abordarea structurată a procesului de dezvoltare a proiectului
• detecția erorilor care au ajuns până în faza de producție (prin teste de regresie automată)
• reutilizarea informației acumulate (condiții de test, scripturi)
• reducerea creării de noi scripturi (refolosindu-le și adaptându-le pe cele vechi)
3/8
• execuția automată a testelor de performanță în fazele de început ale proiectului poate evita
eforturile de redesign în fazele ulterioare
• odată ce scripturile de testare automată sunt implementate, o parte din personal poate fi
redirecționat către alte necesități
b) avantaje privind economia de timp
• analiză rapidă și exactă în cazul schimbării parametrilor sistemului
• durată scurtă a ciclurilor de testare
• estimări mai exacte pentru procesul de planificare a testului
• posibilitatea efectuării mai multor teste (scripturile de testare pot fi rulate și după orele de
program economisind astfel timp)
• generarea rapidă a condițiilor de testare
c) avantaje privind calitatea
• o mai bună înțelegere a scopului testării
• o acoperire mai mare a elementelor de testat
• rezultate mai consistente datorită repetabilității testelor
• compararea automată a rezultatelor
Procesul testării automate
Majoritatea uneltelor de testare automată sunt compatibile cu entitățile software ce intervin pe
traseul de la clienți la furnizorul de aplicații. În orice punct de pe traseu se pot face teste si evaluări de
performanță. În diagrama de mai jos sunt prezentate cele mai cunoscute și utilizate componente software
ce intervin într-un astfel de proces.
Platforms
Windows NT
Sun
HP
IBM
Linux
Intel
ERP/CRM/SCM
Middleware
CORBA
Microsoft (COM)
BEA (Tuxedo, Jolt)
IBM MQSeries
Commerce Apps
Ariba
BroadVision
Blue Martini
Calico
Selectica
Vignette
Oracle Apps.
SAP
Siebel
PeopleSoft
Baan
Internet/Intranet
Clienți
Web Server
WAP
Gateway
Accelerators
nCipher
TimesTen
CacheFlow
PeakStone
Alteon
Arrowpoint
Resonate
Tower Technology
Fireclick
Akamai
Hydraweb
Web
Servers
MS IIS
Netscape NAS
Application
Server
Application
Servers
Allaire
SilverStream
Haht
IBM WebSphere
BEA WebLogic
Sun NetDynamics
Database
Databases
Oracle
SQLServer
Sybase
Informix
IBM DB2
EMC
Wireless
Nokia
OpenWave
Everypath.com
Brience
Wapforum.Org
AvantGo
4/8
Procesul de testare automată presupune un efort de management deosebit. Acest proces începe
încă din faza de analiză a aplicației și continuă în toate etapele de dezvoltare. În diagrama următoare se
pot observa etapele procesului, ordinea și frecvența acestora, precum și locul central pe care îl ocupă
managementul defectelor și serviciile. Un factor important este menținerea centrală a comunicării între
etape pentru managementul bug-urilor.
Ce există pe piață
Există numeroase soluții pentru implementarea unui sistem de testare automată, majoritatea
companiilor din acest domeniu oferind atât pachete software cât și servicii. Market leader este firma
Mercury Interactive a cărei concurență directă este firma Rational. Ambele firme oferă atât produse de
testare automată cât și pentru organizarea centralizată a procesului de testare, management de proiect și
monitorizare de rețele, baze de date și aplicații în timpul utilizării productive a acestora.
Alte firme (Compuware, Segue, etc) oferă o gamă de produse similare, de obicei incompletă.
Prețurile produselor de testare și monitorizare profesionale sunt deseori foarte mari (prețuri de 250.000
USD nu sunt neobișnuite). De aceea firmele producătoare oferă și servicii, cu ajutorul cărora se pot testa /
monitoriza aplicațiile dumneavoastră fără să fie nevoie de achiziționarea programelor și/sau licențelor
respective.
Există de asemenea și produse freeware sau open source ca de exemplu Cactus de la Jakarta.
Firme importante ca de exemplu SAP au de obicei pentru produsele lor tool-uri de testare și monitorizare
integrate. Dat fiind ca domeniul testării automate este extrem de vast și complex, asemenea firme nu
dezvoltă propriile lor programe pentru aceste funcționalități ci se bazează pe colaborari cu firme
specializate (în cazul SAP – Compuware pentru testare și Mercury Interactive pentru monitorizare),
creând doar interfețele de integrare către produsele respective.
5/8
1. Mercury Interactive – www.mercuryinteractive.com
Domeniul
Applicationperformance
management
Produse
Topaz
soluție pentru managementul performanței din perspectiva
utilizatorului : recepționare alerte în timp real, corelarea
problemelorutilizatoruluicudatelesistemului,
managementul nivelelor de service
Servicii
Active watch
serviciupentru
performanțeidin
utilizatorului
managementul
perspectiva
Production tunning
Enterprise testing
– test management
Active tune
serviciu special creat pentru calibrarea
procesului de dezvoltare și producție
TestDirector
soluție globală pentru managementul procesului de testare;
conține patru module : Requirements, Test Plan, Test Lab
și Defects Manager
Astra FastTrack
unealtă pentru managementul defectelor unei aplicații Web
– functional testing
Astra QuickTest
unealtă care permite atât testerilor începători cât și
experților să testeze aplicațiile Web dinamice
WinRunner
soluție pentru testarea funcțională a aplicațiilor cu interfață
grafică
QuickTest professional
unealtă pentru automatizarea testării
regresive a aplicațiilor Web dinamice
funcționale
și
XRunner
unealtă pentru automatizarea
aplicațiile tip X-Window
testării
funcționale
la
– load testing
LoadRunner
soluție pentru managementul testării de solicitare și
performanță
ActiveTest
serviciu prin care se poate testa și
calibra infrastructura și aplicațiile Web în
dezvoltare
Astra LoadTest
soluție rapidă pentru testarea scalabilității și performanțelor
aplicațiilor Web.
ActiveTest SecureCheck
serviciugăzduitcaretestează
securitatea aplicațiilor Web și a
infrastructurilor
LoadRunner TestCenter
soluție completă care permite managementul testării
multiple, concurente din mai multe locații geografice. Toate
resursele sunt centralizate și accesibile dintr-un singur
punct de control
2. Compuware Corporation – www.compuware.com
Domeniul
Application performance
management
Produse
Abend-AID
unelte pentru rezolvarea situațiilor de eșuare a aplicațiilor supuse testelor
Servicii
File-AID
unealtă pentru găsirea, extracția, convertirea și managementul datelor
PointForward
soluție pentru testarea și monitorizarea de la distanță
QACenter
pachet complet pentru testarea aplicațiilor
XPEDITER
soluție pentru analiza și testarea aplicațiilor pe mai multe platforme
Production readiness
Quality Assurance
Abend-AID
File-AID
PointForward
QACenter
Abend-AID
NuMega
unelte pentru îmbunătățirea productivității începând de la aplicații simple până
la cele distribuite și orientate Web
Development
integration
and
QACenter
Abend-AID
File-AID
OptimalJ
unealtă pentru accelerarea dezvoltării aplicațiilor Java
UNIFACE
mediu pentru dezvoltarea aplicațiilor mari și complexe
Vantage
unealtă pentru managementul aplicației : utilizator, rețea, bază de date, server
6/8
3. Segue – www.segue.com
Domeniul
Application performance management
Produse
SilkVision
soluție pentru monitorizarea comportamentului aplicației
Servicii
SilkTest
soluție pentru testarea scalabilității și solicitării aplicației
SilkPerformer V
soluție pentru simularea de performanță și solicitare
SilkPlan
pachet de management pentru procese
4. Rational – www.rational.com
Domeniul
Application performance management
Produse
Rational Suite TestStudio
pachet complet pentru testarea automată funcțională,
regresivă, modulară și de încărcare a aplicațiilor Web, ERP
și client/server
Servicii
Rational Test RealTime
pachet complet pentru testarea automată în timp real a
sistemelor în dezvoltare
Enterprise testing
– test management
– load testing
– runtime analysis
– functional testing
Rational TestManager
permite controlul, managementul și raportul
activităților dintr-un singur punct de control
tuturor
Rational TeamTest
automatizează testele funcționale, regresive, funcțional-
distribuite pentru aplicații Web, ERP și client/server
Rational PurifyPlus
automatizează testarea modulelor asigurând performanță și
calitate
Rational Robot
automatizează testarea funcțională și include teste regresive
pentru aplicații Web, ERP și client/server
5. Cactus – produs gratuit jakarta.apache.org
Domeniul
Enterprise testing
– integration testing
– code logic unit testing
– functional unit testing
Produse
Cactus
include teste regresive pentru obiectele server-side de tip
Servlet, TagLib, EJB
Servicii
Cactus
permite efectuarea de teste asupra codului.
Cactus
permite testarea funcțională
returnate de server.
prin
verificarea
valorilor
O atenție deosebită este îndreptată către produsul free Cactus, proiect open source dezvoltat de
organizația jakarta.apache.org. Cactus este un framework destinat testării codului java server-side
(Servlet, EJB, TagLibs, etc ). Modulul de bază al produsului este JUnit.
Utilizarea produsului presupune programarea în Java a scenariilor de testare, Cactus neoferind o interfață
grafică pentru înregistrarea workflow-ului ce urmează a fi testat. De aceea acest produs se adresează unor
utilizatori cu pregătire solidă în informatică.
Concluzii
Testarea automată nu va putea înlocui în întregime testarea manuală și nici nu trebuie. Tester-ii
pot să observe cum un utilizator poate interacționa cu produsul, în timp ce un sistem de testare automată
nu poate întotdeauna să prevadă aceste acțiuni sau să găsească cea mai bună cale de a le testa. Dacă sunt
bine folosite, programele de testare automată măresc considerabil productivitatea QA, economisesc
costuri, măresc semnificativ consistența și calitatea produsului și ajută la optimizarea și accelerarea
procesului de dezvoltare al unei aplicații. Deja în țările cu tradiție în dezvoltarea de software există cerința
7/8
ca toate produsele software din sectorul militar, medical, guvernamental și financiar să fie testate cu unul
din sistemele recunoscute de testare automată, iar rapoartele automate asupra felului cum a decurs testarea
constituie baza acceptării unei aplicații de către client.
Resurse :
1. Herbert M. Isenberg – The practical organization of automated software testing (http://www.automated-
testing.com/PATfinal.htm)
2. Brett Pettichord – Success with test automation (http://www.io.com/~wazmo/succpap.htm)
3. Elisabeth Hendrickson – Test automation advice (http://www.qualitytree.com/autotest/autotest.htm)
4. Elfriede Dustin, Jeff Rashka – Automated Software Testing (Addison Wesley Longman Inc., ISBN: 0201432870 )
5. *** – Mercury Interactive – white papers (http://www.mercuryinteractive.com)
6. *** http://jakarta.apache.org
Prezentare autori
Despina Eftimescu a terminat informatica la Universitatea de Vest din Timișoara în 1994 și a lucrat din
1995 ca inginer software în München, între altele pentru firma Siemens si Technische Universität
München. Din 1997 ea lucrează la firma SecureNet GmbH iar din iunie 2001 conduce ca Chief Executive
Officer filiala română a acesteia, firma SecureNet SRL din Craiova.
Alexandru Ilioiu este director tehnic la SecureNet SRL, din Craiova. Poate fi contactat pe email la adresa
[anonimizat]
8/8
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Introducere în Testarea Automată (ID: 117044)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
