Introducere pentru a-?i perfec?iona solu?iile software, ?inta acestor tipuri

Introducere

 

Testarea
este unul dintre cei mai importan?i pa?i în dezvoltarea de software,
identificarea majorit??ii problemelor ce apar pe parcursul dezvolt?rii
produsului software ap?rând în decursul acestui procedeu ce este de obicei efectuat
de testeri în mod manual.

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

Exist?
mai multe tipuri de test?ri care în func?ie de avantajele/dezavantajele lor
sunt utilizate în prezent de multe companii pentru a-?i perfec?iona solu?iile
software, ?inta acestor tipuri de teste nefiind doar end-userul ci ?i dezvoltatorul,
acest procedeu, testarea fiind foarte util? în procesul de dezvoltare prin
detec?ia de erori în aplica?ie înainte de a preda produsul utilizatorului.

Îns?
într-o întreprindere unde produsul software trebuie livrat într-un timp scurt
este necesar? adoptarea unui tip de testare specific ce va satisface nevoile
firmei.

În
func?ie de tipul de solu?ie dezvoltat într-o companie se va alege un anumit tip
de testare al solu?iei respective pentru a ob?ine rezultatele dorite astfel încât
procesul de dezvoltare s? nu fie întrerupt.

Exist?
mai multe tipuri de teste ce pot fi utilizate, una dintre cele mai utilizate
metode este testarea manual? îns? aceasta nu va satisface pe deplin nevoile
dezvoltatorilor c? prin alegerea unei astfel de test?ri va implica costuri, atât
monetare, de timp dar ?i de eficient?, monetare pentru c? va fi necesar?
angajarea de personal nou ce se va ocupa de acest lucru ?i de timp pentru c?
aceste teste sunt lente ?i în func?ie de complexitatea lor se vor strecura ?i
erori de natur? uman?.

O
alt? metod? mult mai eficient? ar fi testarea automat?, care la rândul ei este
de mai multe tipuri (pe interfa??, testarea claselor,etc), acest tip de testare
fiind o investi?ie bun? pentru o firm? ce  î?i va dori eficientizarea solu?iei software
pe care o produce. Testarea automat? este o unealt? puternic?, utilizat? în mod
inteligent  se vor identifica problemele
aplica?iei ?i ulterior vor fi corectate de c?tre dezvoltatori, ce vor avea la
dispozi?ie informa?ii clare, concise ?i corecte puse la dispozi?ie de c?tre
aplica?ia de testare.

Testarea
automat? este de obicei aleas? pentru aplica?iile complexe ?i pentru care
testarea manual? nu ar aduce nici-un rezultat, în plus prin investi?ia depus?
pentru a pune la punct acest tip de testare este bine-venit? având în vedere
faptul c? odat? realizat? investi?ia într-o astfel de aplica?ie se va dispune
de o unealt? puternic? ce va ajuta dezvoltatorii s? elimine rapid erorile ?i s?
continue dezvoltarea aplica?iei lor, costurile pentru testarea manual?
incluzând pierderile suferite din cauza erorilor neprev?zute

 

 

 

Necesitatea de testare ?i alegere
a tipului de testare vin în func?ie de complexitatea aplica?iei, de obicei se
apeleaz? la testeri, care se ocup? de testarea propriu-zis?, mai exact de
producerea de scenarii pozitive/negative, de completarea unor fi?e tehnice în
care sunt specifica?i pa?ii efectua?i, de rezultatele ob?inute la fiecare
rezultat si de rezultatul final ce va fi pus pe un server,  de 
exemplu TFS (Team Foundation Server).

 

În articolul s?u despre necesitatea test?rii automate,
Elisa Gabbert, Associate Site Editor citeaz? comentariile lui John Scarpino,
director de QA si University instructor in Pittsburgh, Pa în leg?tura cu
testarea automat? ?i necesitatea ei , Costul, timpul ?i calitatea nu sunt
independente, nu po?i avea succes cu una f?r? cealalt?.
Scopul principal este acela de a sc?dea costurile în permanen?? ?i
timpul alocat obiectivului men?inând în acela?i timp ?i un output al efortului
de calitate 1. Aceste solu?ii de testare automat?
implic? ?i costuri, conform lui John Overbaugh, senior Software Development
Engineer in Test (SDET) .Tool-urile de testare automat? sunt utile atunci când
costurile de ob?inere a tool-ului ?i mentenan?a testelor sunt mai mici decât eficien?a
ob?inut? din efort1 .

Acest tip de test?ri aduc foarte multe beneficii, printre
care atunci când : rularea testelor manuale este foarte dificil? ( precum în
cazurile de testare a performan?ei unde testerii trebuie s? simuleze sute sau
mii de utilizatori concomiten?i) sau cazuri complexe unde preg?tirea
informa?iei necesare consum? foarte mult timp 1  sau atunci când, testele trebuie rulate de
foarte multe ori 1

Utilitatea acestor tipuri de teste este în special
vizibil? atunci când rezultatele testelor sunt scrise într-un log, în detaliu,
cu datele de intrare ?i ie?ire, testele e?uate fiind procesate mai târziu de
c?tre testeri / developeri .

Tool-urile ?i framework-urile utilizate pentru a ob?ine
automatizarea nu sunt obiectivul real al test?rilor automate, adev?ratul
obiectiv fiind de a sus?ine eforturile de developement prin furnizarea de feedback
în mod rapid echipei2,
rolul acestor tool-uri fiind doar informativ

Exist? mai multe tipuri de testare automat?, cele mai
generale fiind : Code-driven testing,
Graphical user interface testing ?i API driven testing3. În aceast?
lucrare se va utiliza Graphical User Interface Testing, mai exact Coded UI Tests.

Testarea automat? poate ad?uga mult? complexitate ?i cost
efortului unei echipe dar poate aduce un sprijin valoros dac? este efectuat? de
c?tre persoanele potrivite în mediul potrivit ?i unde-?i are rostul. 4

 

 

Efortul ob?inerii test?rii automate este o investi?ie 4 pentru c? timpul alocat preg?tirii unei
astfel de solu?ii este destul de mare fiind necesar un studiu al sistemului
existent ?i determinarea locurilor unde testarea automat? ?i-ar face efectul
cel mai eficient.

Testarea automata nu este singurul
r?spuns pentru furnizarea de software de calitate4.Testarea
automat? nu înlocuie?te celelalte proceduri ce trebuie efectuate, analiza
atent? a ceea ce se dore?te a fi îmbun?t??it, efectuarea unui plan atent, etc

Cazurile cele mai benefice pentru a beneficia de automatizare sunt :

–         
Teste
repetitive ce sunt rulate pe mai multe build-uri

–         
Teste
ce tind s? cauzeze erori de natur? uman?

–         
Teste
ce necesit? mai multe seturi de date

–         
Func?ionalitate
utilizat? în mod frecvent ce introduce condi?ii riscante

–         
Teste
ce sunt imposibil de efectuat manual

–         
Teste
ce ruleaz? pe mai multe platforme ?i configura?ii de hardware ?i software

–         
Testele
ce consum? mult timp ?i efort când testarea manual? este efectuat?.5

În cadrul acestei lucr?ri se va prezenta o solu?ie pentru
cazurile în care se dore?te implementarea unei solu?ii de testare automate în
fluxul de testare manual? deja existent în cadrul firmei doritoare, dorindu-se
îmbun?t??irea acestuia ?i nu înlocuirea, aplica?ia destinat? acestei nevoi
având în spate un flux automatizat ce respect? pattern-ul workflow-ului de
testare manual?.

Aplica?ia
de automatizare a testelor prezint? o suit? de beneficii atât testerilor cât ?i
managementului firmei deoarece aplica?ia este u?or de utilizat, ?i compacteaz?
toate activit??ile din cadrul test?rii manuale într-un singur domeniu
(aplica?ie + configurare teste), eliminându-se astfel mul?imea de documente
Excel ce trebuiau scrise atât înaintea efectu?rii testelor cât ?i dup?
(TestCases).

De
asemenea aplica?ia este construit? astfel încât s? fie eliminate posibilit??ile
apari?iilor erorilor umane, în special pe partea de logare a rezultatelor,
logarea f?cându-se atât în baza de date cât ?i într-un fi?ier Text.

În
plus aceast? aplica?ie reduce necesitatea unui num?r mare de testeri deoarece
testele automate deja înregistrate pot fi recreate ?i customizate în diverse
scenarii de un num?r infinit de ori din punct de vedere al datelor de intrare
în zonele de testare dorite prin urmare costurile cu personalul fiind drastic
reduse ?i testerii ce vor lucra pe o astfel de zon? î?i vor dezvolta
capacit??ile de testing curente printr-o viziune orientat? c?tre programare,
acest lucru f?când depistarea bug-urilor din aplica?ia testat? într-un mod mult
mai eficient.

 

Cap. 1 STUDIUL ?I ANALIZA SISTEMULUI EXISTENT

 

1.1  Prezentarea succint? a unit??ii
economico-sociale

            Sistec SBSol  SRL este o companie înfiin?at? în decembrie
1994, ca parte a grupului RTC, grupul Sistec este ast?zi unul dintre cei mai
importan?i integratori de sisteme IT&C.

            Firma are codul unic de
înregistrare : 6549700, num?rul de
înmatriculare este J40/23127/1994 .

            Obiectul de activitate al
firmei Sistec SBSol este “Activit??i
de servicii in tehnologia informa?iei”, codul CAEN al acesteia fiind 6209.

Bilan?ul firmei între anii 2007-20013
este urm?torul :

Figur? 1 – Bilan? – Surs?  : https://membri.listafirme.ro/sistec-sbsol-srl-6549700/

                 Firma a cunoscut o cre?tere a cifrei de
afaceri semnificativa începând din 2008, aceasta fiind aproape dubla fata de
anul anterior, firma reinvestind mare parte din profit in propria dezvoltare,
astfel men?inându-?i cifra de afaceri la un nivel ridicat

 

1.2  Principalele activit??i desf??urate în
unitatea economic?

 

Principalele activit??i ale firmei sunt :

 

1.Solu?ii software

Implementarea de solu?ii software diverse precum solu?ii ERP pentru
întreprinderile mici ?i mijlocii dar ?i pentru companiile de produc?ie, solu?ii
de BI ( Business Intelligence ) pentru analiza de business-uri, Document
management ?i arhivare electronica pentru clien?ii ce necesita stocarea într-un
mediu sigur al documentelor atât in format fizic cât ?i digital dar dezvoltarea
de software la cererea clien?ilor.

2.Infrastructura Hardware

Firma pune la
dispozi?ie diverse solu?ii de infrastructura hardware pentru clien?ii ce
necesita diverse solu?ii de interconectare intre unit??ile lor ?i serviciile
puse la dispozi?ie de firma, de securitate ?i management al cl?dirilor dar ?i
de procesarea ?i stocarea datelor.

Solu?iile de
interconectare sunt cele de sisteme cablare structurate, instala?ii electrice,
setup de LAN (Local Area Network) /WAN (Wide Area Network) ?i sisteme de
comunica?ii.

Serviciile de
procesare ?i stocare a  serverelor,
notebook-urilor, PC-urilor, licen?elor software ?i a perifericelor, clien?ii
necesitând în mare parte securitatea ?i posibilitatea de backup a datelor.

3.Consultan?? de business

Sunt oferite ?i
servicii de consultan?? business, process re-engineering ?i management de
proiecte pentru clien?ii ce necesita un sprijin consultativ pe partea de
afaceri.

4.Outsourcing

Firma ofer? ?i
servicii de Outsourcing precum mentenan?a de hardware ?i software, instalare ?i
administrare de re?ele (LAN,VPN), Help-Desk, Service ?i între?inere IT ?i
tehnica de birou.

1.3  Studiul sistemului de conducere

Figur? 2 – Organigram?

Detaliere organigrama

CEO-ul companiei are multiple responsabilit??i precum
coordonarea tuturor departamentelor si a managerilor asocia?i acestora,
management-ul angaja?ilor, rol de decizie in privin?a strategiilor pe care
firma le urmeaz?. In subordinea CEO-ului si a celorlal?i membrii cu rol
decizional la nivel de firma nu se afla doar centrul din Bucure?ti dar si
centrele din toat? ?ara, o responsabilitate mare fiind asigurarea unei
comunic?ri eficiente între toate departamentele ?i centrele din ?ara, astfel
asigurând calitatea serviciilor puse la dispozi?ie clien?ilor. Acesta comunic?
în strâns? leg?tura cu celelalte departamente.

Suport IT-ul este unul dintre departamentele esen?iale ale firmei,
rolul de asigurare a serverelor, data-centerelor din toat? ?ara dar ?i a
bazelor de date sa func?ioneze în parametrii normali. Managerul departamentului  de
hosting are rolul de a asigura în mod eficient administrarea eficient? a
serverelor ?i a data-centerelor de c?tre departamentul pe care-l conduce,
problemele din cadrul departamentului ?i de a înainta diverse cereri precum noi
posibilit??i de extinderi de servere, noi upgrade-uri, noi data-centere. Managerul
departamentului de baze de date este
un DBA( Data base administrator ) 
experimentat ce are în subordine o echipa de DBA, rolul acestuia si în
acela?i timp obiectivul continuu este de a asigura func?ionarea corect? a
bazelor de date ?i prevenirea problemelor de conexiune, rela?ia acestuia cu
CEO-ul dar ?i cu ceilal?i manageri, în special cei ce se ocupa cu
development-ul de software fiind foarte strâns?, orice schimb?ri/modific?ri ale
bazelor de date fiind comunicate în prealabil celorlal?i  manageri de departamente pentru prevenirea
problemelor.

 

 

Managerul departamentului de Networking
are rolul de a asigura func?ionalitatea în parametrii normali a tuturor
proiectelor derulate în cadrul departamentului s?u, acesta comunicând activ cu
toate celelalte departamente în privin?a conect?rilor la re?ea dar ?i alte
setup-uri.

Managerul departamentului Cogito are
rolul de a asigura func?ionalitatea modulelor Cogito de POS, WMS acest
departament fiind unul dintre cele mai active ?i importante departamente, aici
development-ul solu?ii software având loc. Acesta are o strâns? leg?tura cu
majoritatea departamentelor dar ?i cu CEO-ul, fiecare schimbare fiind critic?,
acesta consultându-se cu toate celelalte departamente. Un rol asem?n?tor îl are
?i managerul departamentului Abas.

Managerii departamentelor de Arhivare
fizic? ?i Arhivare electronic? au
rolul de asigurare a func?ion?rii corecte a workflow-urilor de arhivare fizic?
respectiv arhivare electronic?, respectare a confiden?ialit??ii.

Managerul departamentului Administrativ
are rolul de asigurare a func?ion?rii eficiente a departamentelor cu scop
financiar, contabil fiind extrem de conectat de toate departamentele,
funding-ul departamentelor (dar ?i managementul pl??ilor) efectuându-se de
c?tre acest departament în rela?ie cu CEO-ul. O alt? leg?tura o are cu
departamentul de HR.

1
Elisa Gabbert – When to use manual vs. automated software testing tools

2 Rajneesh
Namta – Thoughts on Test Automation in Agile

3
Wikipedia – Test automation

4 Kerry
Zallar – Practical Experience in Automated Testing

5
SmartBear – Automated Testing Best Practices