Documente Academic
Documente Profesional
Documente Cultură
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
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.
Platforms
Windows NT
Sun
ERP/CRM/SCM
HP
IBM Middleware Oracle Apps.
CORBA Commerce Apps SAP
Linux Ariba
Microsoft (COM) Siebel
Intel BroadVision
BEA (Tuxedo, Jolt) PeopleSoft
IBM MQSeries Blue Martini Baan
Calico
Selectica
Vignette
Internet/Intranet
Clienţi
Web Server
Application
Accelerators Web Server
WAP Database
nCipher Servers
Gateway TimesTen MS IIS Application
CacheFlow Netscape NAS Databases
PeakStone
Servers
Allaire Oracle
Wireless Alteon SQLServer
Arrowpoint SilverStream
Nokia Haht Sybase
OpenWave Resonate Informix
Tower Technology IBM WebSphere
Everypath.com BEA WebLogic IBM DB2
Brience Fireclick EMC
Akamai Sun NetDynamics
Wapforum.Org
AvantGo Hydraweb
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
4. Rational - www.rational.com
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
ai@secure-net.ro
8/8