Sunteți pe pagina 1din 8

Introducere n testarea automat

Data : 25 Martie 2002 Autori : Despina Eftimescu (de@secure-net.de), Alexandru Ilioiu (ai@secure-net.ro)

Introducere
n noua economie, productorii de soluii IT sunt confruntai cu o nou cerin care i oblig s schimbe total modul de construcie a unui produs, fr a face compromisuri de calitate. A fi primul pe pia cu ultimele tehnologii este mai important ca oricnd. Lucrnd cu o infrastructura software i hardware din ce n ce mai complex, confruntai cu creterea continu a cerinelor de calitate i cu necesitatea reducerii costurilor, firmele de software ncep s preuiasc tot mai mult soluii solide, inginereti, de dezvoltare de software. Testarea produsului este n software o component major n procesul de dezvoltare. n limbaj de specialitate se discut despre asigurarea calitii (Quality Assurance). Firmele din industria tradiional de ex. industria de maini, de construcii, de produse electronice sau alimentare au de zeci de ani departamente de testare i verificare a calitii. 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 vzut ca singura soluie de a descoperi eventualele defecte, ntrzie foarte mult lansarea pe pia a produsului i induce cheltuieli semnificative mai ales n cazul descoperirii efectelor laterale att n procesul dezvoltrii unei aplicaii ct i n cazul de schimbri ulterioare. Totodat procedurile de testare manual, prin natura lor limitat, nu reuesc s descopere toate defectele i nu au nici o ans s simuleze condiii de utilizare simultan, intensiv, a unei aplicaii. Exist numeroase ci de a mbunti procesul de testare, una dintre cele mai eficiente fiind testarea automat. Testele automate execut o secven de aciuni fr intervenie uman i pot simula utilizarea unei aplicaii n condiii 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 schimbrile ulterioare sau la lansarea unei noi versiuni de produs. Prin folosirea testrii automate, costurile testrilor repetate se reduc aproape la zero. Cele mai importante beneficii sunt: acoperirea tuturor etapelor de testare de la concepie pn la lansare posibilitatea simulrii testrii cu mai muli utilizatori posibilitatea repetrii testelor creterea siguranei n produs. Un sistem de testare automat trebuie s aib la baz dou caracteristici principale: module reutilizabile ntreinerea i urmrirea activitii dintr-un singur punct de control De aceea una din calitile care trebuie s le aib un astfel de sistem este capabilitatea de a fi uor configurat i adaptat n acelai 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, mrirea longevitii produsului i reducerea procesului de ntreinere. Testarea automat nseamn mai mult dect o simpl captur de ecran i rspunsul la cteva scripturi : ea trebuie s nceap cu planificarea i design-ul procedurii de testare, s conin 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 testrii. 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 cerinelor i a funcionalitilor 2. gruparea acestora n condiii de test 3. crearea cazurilor de test pentru aceste condiii 2. design
1/8

1. construcia scripturilor de test 2. generarea testelor de rulare 3. execuie 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 cteva din problemele care pot fi ndeprtate. Scopul acestui test este mrirea performanei aplicaiei i a lizibilitii codului. 2. funcional (black-box testing) se definesc ateptrile clientului de la aplicaie i se verific automat dac software-ul se comport conform acestor ateptri. Prin testele ce se execut se observ comportamentul aplicaiei, evideniat prin datele de ieire, fr a se face referire la funciile interne. 3. regresiv (regression testing) - se verific dac s-a modificat neateptat comportamentul aplicaiei n urma implementrii unor noi cerine/schimbri (change requests). 4. negativ (negative testing) - se solicit aplicaia, producnd deliberat cazuri complicate, neobinuite sau particulare pentru a fora apariia erorilor. 5. de solicitare (stress testing) - se determin capabilitile absolute ale aplicaiei i ale infrastructurii pe care este implementat; cu ajutorul acestui tip de test se dezvluie caracteristicile de performan ale unui sistem meninut n condiii de ncrcare 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 performana aplicaiei este adecvat pentru cerinele stabilite, n termeni de vitez de acces, resurse de sistem utilizate i procesarea cererilor de acces. 7. de ncrcare (load testing) - se determin punctele slabe ale aplicaiei i dac sunt necesare mbuntiri ale infrastructurii hardware sau software prin msurarea caracteristicilor de performan i scalabilitate a principalelor componente ale aplicaiei web; de regul aceasta se realizeaz prin creterea numrului de sesiuni utilizator sau a conexiunilor TCP/IP.

Limitele testrii automate


Sunt multe lucruri pe care uneltele de testare automat nu le pot face i este important s se cunoasc aceste limitri pentru a alege pe cea mai potrivit. Un sistem de testare automat nu poate spune cnd ceva "arat bine" pe ecran sau cnd o poz sau fereastr nu este bine ncadrat. De asemenea un test automat nu poate decide dac logica programului are lipsuri funcionale dect n msura n care au fost definite complet cerinele aplicaiei respective. Unele teste, mai ales pentru aplicaii mici i pentru aplicaii care se concentreaz mai ales pe grafic i nu pe business logic, sunt mult mai uor realizabile de ctre operatorul uman dect de ctre un computer. De aceea trebuie alctuit un plan bine definit al procedurii de testare, cnd, unde i n ce condiii este fiabil introducerea automatizrii.

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 depirea memoriei alocate, suprascrieri n zone nealocate i zone rmase nedealocate testare de solicitare/performan - pentru testarea aplicaiilor 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 documentaiei, raportrii bug-urilor, configuraiei, etc.

Comparaie ntre testarea manual i automat


Testarea manual i testarea automat sunt mai degrab dou procese diferite, dect dou ci diferite de a executa acelai proces : dinamica lor este diferit precum i modul de a releva bug-urile. Testarea manual este mai folositoare n situaiile n care este nevoie urgent de rezultatele unor tipuri de teste specifice i limitate, cnd se dorete ca timpul de feedback s fie foarte scurt, iar costurile s fie relativ mici. Cum mbuntirea calitii produsului implic costuri adiionale pentru gsirea bugurilor i gestionarea acestora pn 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 iniial mai mare pentru planificarea, organizarea i producerea testului, criteriul principal n obinerea de rezultate bune fiind planificarea atent, amnunit i precis a acestuia. O alternativ interesant este aa-numita "testare parial". Aceast soluie este combinaie de jumtate testare manual i jumtate testare automat, aceasta din urm fiind folosit numai acolo unde se pot obine beneficii maxime. Testarea automat se dorete a fi soluia 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, execuia i crearea de rapoarte n activitatea de testare. Majoritatea acestor unelte necesit cunotine de specialitate pentru a le implementa i utiliza corespunztor. De asemenea, este bine de tiut, c suitele profesionale de unelte specializate n asigurarea calittii ofer ntotdeauna un produs de sine stttor 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 calitii. 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 aa fel, nct rapoartele automate create de uneltele de testare i/sau monitorizare a aplicaiilor s fie preluate automat n sistemul de ticketing, astfel c citirea i interpretarea manual a rapoartelor de testare nu mai este necesar. Bugurile sunt parsate de ctre TestDirector, care genereaz pe baza rapoartelor de testare email-uri, sms sau alte modaliti de atenionare a echipei de implementare. Este de menionat c un sistem ca TestDirector poate fi folosit pentru partea de management de proiect i ticketing i n combinaie cu testarea manual, caz n care informaiile despre ceea ce trebuie testat se formalizeaz drept scripturi sau scenarii de testare, iar rezultatele testului manual trebuiesc introduse de ctre tester manual n sistem. Soluiile elegante pentru testarea sistemelor sofisticate sunt adesea limitate numai de imaginaia testerilor. Cteva dintre avantajele utilizrii testrii automate sunt: a) avantaje privind eficiena i costurile prevenirea erorilor prin abordarea structurat a procesului de dezvoltare a proiectului detecia erorilor care au ajuns pn n faza de producie (prin teste de regresie automat) reutilizarea informaiei acumulate (condiii de test, scripturi) reducerea crerii de noi scripturi (refolosindu-le i adaptndu-le pe cele vechi)
3/8

execuia 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 redirecionat ctre alte necesiti b) avantaje privind economia de timp analiz rapid i exact n cazul schimbrii parametrilor sistemului durat scurt a ciclurilor de testare estimri mai exacte pentru procesul de planificare a testului posibilitatea efecturii mai multor teste (scripturile de testare pot fi rulate i dup orele de program economisind astfel timp) generarea rapid a condiiilor de testare c) avantaje privind calitatea o mai bun nelegere a scopului testrii o acoperire mai mare a elementelor de testat rezultate mai consistente datorit repetabilitii testelor compararea automat a rezultatelor

Procesul testrii automate


Majoritatea uneltelor de testare automat sunt compatibile cu entitile software ce intervin pe traseul de la clieni la furnizorul de aplicaii. n orice punct de pe traseu se pot face teste si evaluri 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 Clieni

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 aplicaiei i continu n toate etapele de dezvoltare. n diagrama urmtoare se pot observa etapele procesului, ordinea i frecvena acestora, precum i locul central pe care l ocup managementul defectelor i serviciile. Un factor important este meninerea central a comunicrii ntre etape pentru managementul bug-urilor.

Ce exist pe pia
Exist numeroase soluii pentru implementarea unui sistem de testare automat, majoritatea companiilor din acest domeniu oferind att pachete software ct i servicii. Market leader este firma Mercury Interactive a crei concuren direct este firma Rational. Ambele firme ofer att produse de testare automat ct i pentru organizarea centralizat a procesului de testare, management de proiect i monitorizare de reele, baze de date i aplicaii n timpul utilizrii productive a acestora. Alte firme (Compuware, Segue, etc) ofer o gam de produse similare, de obicei incomplet. Preurile produselor de testare i monitorizare profesionale sunt deseori foarte mari (preuri de 250.000 USD nu sunt neobinuite). De aceea firmele productoare ofer i servicii, cu ajutorul crora se pot testa / monitoriza aplicaiile dumneavoastr fr s fie nevoie de achiziionarea programelor i/sau licenelor 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 testrii automate este extrem de vast i complex, asemenea firme nu dezvolt propriile lor programe pentru aceste funcionaliti ci se bazeaz pe colaborari cu firme specializate (n cazul SAP Compuware pentru testare i Mercury Interactive pentru monitorizare), crend doar interfeele de integrare ctre produsele respective.

5/8

1. Mercury Interactive - www.mercuryinteractive.com


Domeniul Application performance management Produse Topaz
soluie pentru managementul performanei din perspectiva utilizatorului : recepionare alerte n timp real, corelarea problemelor utilizatorului cu datele sistemului, managementul nivelelor de service

Servicii Active watch


serviciu pentru performanei din utilizatorului managementul perspectiva

Production tunning Enterprise testing - test management

Active tune
serviciu special creat pentru calibrarea procesului de dezvoltare i producie

TestDirector
soluie global pentru managementul procesului de testare; conine patru module : Requirements, Test Plan, Test Lab i Defects Manager

Astra FastTrack
unealt pentru managementul defectelor unei aplicaii Web

- functional testing

Astra QuickTest
unealt care permite att testerilor nceptori ct i experilor s testeze aplicaiile Web dinamice

WinRunner
soluie pentru testarea funcional a aplicaiilor cu interfa grafic

QuickTest professional
unealt pentru automatizarea testrii regresive a aplicaiilor Web dinamice funcionale i

XRunner
unealt pentru automatizarea aplicaiile tip X-Window testrii funcionale la

- load testing

LoadRunner
soluie pentru managementul testrii de solicitare i performan

ActiveTest
serviciu prin care se poate testa i calibra infrastructura i aplicaiile Web n dezvoltare

Astra LoadTest
soluie rapid pentru testarea scalabilitii i performanelor aplicaiilor Web.

ActiveTest SecureCheck
serviciu gzduit care testeaz securitatea aplicaiilor Web i a infrastructurilor

LoadRunner TestCenter
soluie complet care permite managementul testrii multiple, concurente din mai multe locaii 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 situaiilor de euare a aplicaiilor supuse testelor

Servicii

File-AID
unealt pentru gsirea, extracia, convertirea i managementul datelor

PointForward
soluie pentru testarea i monitorizarea de la distan

QACenter
pachet complet pentru testarea aplicaiilor

XPEDITER
soluie pentru analiza i testarea aplicaiilor pe mai multe platforme

Production readiness

Quality Assurance

Abend-AID File-AID PointForward QACenter Abend-AID NuMega


unelte pentru mbuntirea productivitii ncepnd de la aplicaii simple pn la cele distribuite i orientate Web

Development integration

and

QACenter Abend-AID File-AID OptimalJ


unealt pentru accelerarea dezvoltrii aplicaiilor Java

UNIFACE
mediu pentru dezvoltarea aplicaiilor mari i complexe

Vantage
unealt pentru managementul aplicaiei : utilizator, reea, baz de date, server 6/8

3. Segue - www.segue.com
Domeniul Application performance management Produse SilkVision
soluie pentru monitorizarea comportamentului aplicaiei

Servicii

SilkTest
soluie pentru testarea scalabilitii i solicitrii aplicaiei

SilkPerformer V
soluie 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 funcional, regresiv, modular i de ncrcare a aplicaiilor 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 activitilor dintr-un singur punct de control tuturor

Rational TeamTest
automatizeaz testele funcionale, regresive, funcionaldistribuite pentru aplicaii Web, ERP i client/server

Rational PurifyPlus
automatizeaz testarea modulelor asigurnd performan i calitate

Rational Robot
automatizeaz testarea funcional i include teste regresive pentru aplicaii 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 funcional returnate de server. prin verificarea valorilor

O atenie deosebit este ndreptat ctre produsul free Cactus, proiect open source dezvoltat de organizaia jakarta.apache.org. Cactus este un framework destinat testrii 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 pregtire 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 interaciona cu produsul, n timp ce un sistem de testare automat nu poate ntotdeauna s prevad aceste aciuni sau s gseasc cea mai bun cale de a le testa. Dac sunt bine folosite, programele de testare automat mresc considerabil productivitatea QA, economisesc costuri, mresc semnificativ consistena i calitatea produsului i ajut la optimizarea i accelerarea procesului de dezvoltare al unei aplicaii. Deja n rile cu tradiie n dezvoltarea de software exist cerina
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 acceptrii unei aplicaii de ctre client.

Resurse :
1. Herbert M. Isenberg - The practical organization of automated software testing (http://www.automatedtesting.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 Timioara n 1994 i a lucrat din 1995 ca inginer software n Mnchen, ntre altele pentru firma Siemens si Technische Universitt Mnchen. Din 1997 ea lucreaz la firma SecureNet GmbH iar din iunie 2001 conduce ca Chief Executive Officer filiala romn a acesteia, firma SecureNet SRL din Craiova. Alexandru Ilioiu este director tehnic la SecureNet SRL, din Craiova. Poate fi contactat pe email la adresa ai@secure-net.ro

8/8