Sunteți pe pagina 1din 12

Testarea e procesul prin care se execut un program cu intenia de a gsi erori

De ce este nevoie de testare ?


-

Satisfacerea cerinelor clientului este cheia reuitei oricrei afaceri.


Obinerea ncrederii clientului prin oferirea un soft bun, de calitate.

Principii ale testarii


-

P1: Un caz de test trebuie sa defineasc neaprat ieirea sau rezultatul


dorit.
P2: Un programator ar trebui sa evite sa-i testeze propriul program.
P3: Companiile de programare nu ar trebui s-i testeze produsele proprii.
P4: Fiecare rezultat al testului trebuie examinat foarte minuios.
P5: Cazurile de test trebuie s fie scrise att pentru condiii de intrare
valide ct i pentru cele invalide i neateptate.

Etapele dezvoltarii sistemelor:


-

Analiza;
Proiectare;
Implementare;
Testare;

Etapele procesului de testare:


1.
2.
3.
4.
5.
6.

Planificare;
Analiza;
Proiectare;
Implementare;
Executie;
Evaluare;

Planul de testare este o colecie logic de cazuri de testare. Ex : presupunem c


avei unele cazuri de test care testeaz funcionalitatea de autentificare a unui
site web, atunci putei grupa toate aceste cazuri de testare n conformitate cu un
Authentication_Test_Plan.
Suita de testare pe de alt parte, este o unitate de execuie, cum ar fi testarea
funcionala, usability testing ,Acceptance Testing (UAT), Integration testing sau
de regresion testing. Acestea Suite de testare pot avea orice combinaie de
cazuri de testare, care sunt necesare pentru faza de testare corespunztoare.
Deci 2 suite de testare pot avea cazurile de test identice sau foarte diferite .
Test suite = o colecie de cazuri de testare, care sunt destinate a fi utilizate
pentru a testa un program, pentru a demonstra c acesta are un anumit set
specific de comportamente. O suit de test conine adesea instruciuni detaliate
sau obiective pentru fiecare colecie de cazuri de test i informaii cu privire la
configuraia sistemului pentru a fi folosite n timpul testrii.
Test case = Un caz de test, este un set de condiii sau variabile n care un tester
va determina dac o aplicaie, lucreaza(se comporta) aa cum a fost stabilit

iniial. Cazuri de test sunt adesea denumite scripturi de testare, n special atunci
cnd scris - atunci cnd acestea sunt de obicei colectate n seriile de testri.
Metode de testare: - Functionala - se refer la cerinele funcionale ale
aplicaiei i ct de bine sistemul execut funciile sale. Acesta include comenzi de
utilizare, manipulare de date, cutri i procese de afaceri, integrri.

- Non-functionala- testarea aplicaiei fa de cerinele


non-funcionale i este conceput pentru a evalua pregtirea unui sistem n
funcie de mai multe criterii care nu sunt acoperite prin teste funcionale.

Tehnici de testare:
Black box tehnica de testare software care se baseaza in intregime pe
cerintele software si specificatii;
-

Ne axam in intregime asupra intrarilor si iesirilor ale sistemului(Nu


suntem interesati de structura interna a codului)

White box- tehnica de creare a cazurilor de test asupra codului programului


pentru a detecta orice scenariu cu potential esec;
Unit testing - (white box) testarea celor mai mici uniti testabile (clase, pagini
web) independent una de alta.
Integration testing - (black & white box) evaluarea iteraciunii ntre unitile
testate distinct i separat dup ce au fost integrate.

System testing - (black box) testarea complet a sistemului.


Regresive testing - reprezint procesul de re-testare dupa remedieri sau
modificri ale produsului sau ale mediului su
Acceptance testing - evalueaz sistemul n cooperare cu clientul sau sub
patronajul acestuia ntr-un mediu apropiat mediului de producie.

Usability testing (black box) se verifica daca aplicatia este sau nu este
user friendly (adica cat de usor este de folosit/manevrat , cate clickuri trebuie
date pt a ajunge la obiectul/produsul dorit);
Load testing(non functional) verificarea comportamentului unei aplicatii
intr-un mod specific/asteptat de incarcare(ne ajuta sa identificam capacitatea
maxima de operare a aplicatiei);

Exemple: Descrcarea o serie de fiiere mari de pe internet .

Rularea mai multor aplicatii de pe un calculator sau pe un server n


acelai timp .
Supunerea un server de la o cantitate mare de trafic .
Scrierea i citirea datelor ctre i de la un hard disk n mod
continuu .
Stress testing(non functional) ajuta la identificarea stabilitatii
intregului system. Aceasta implic teste dincolo de capacitatea normal
de funcionare , de multe ori la un punct de rupere , cu scopul de a
observa rezultatele (exemplu multe click-uri de refresh la o pagina sau
spatiu de memorie redus);
Performance testing(non-functional) - pentru a determina ct de
repede un anumit aspect al unui sistem lucreaza sub un anumit volum de
munc .
Se poate compara dou sisteme pentru a afla care se comporta mai bine .
Sau poate masura ce parte a sistemului sau volumul de lucru determin
ca sistemul s funcioneze prost (tool Fiddler)
Efficiency testing
Maintainability testing
Verification - Acesta se asigur c produsul este proiectat pentru a oferi
toate functionalitatile dorite de client.Verificarea se face la inceperea
procesului de dezvoltare. Acesta include comentarii i ntlniri,
walkthroughs, control, etc pentru a evalua documente, planuri, cod,
cerine i specificaii.
Validation - Determinarea dac sistemul respect cerinele i
ndeplinete funciile pentru care acesta este destinat i ndeplinete
obiectivele organizaiei i a nevoilor utilizatorilor.
Validarea se face la sfritul procesului de dezvoltare i are loc dup toate
verificrile finalizate.

Ciclul de viata a bugului( bug -life cycle)

Software development life cycle - Procesul de proiectare a testelor de la


nceputul ciclului de via poate ajuta la prevenirea defectelor. Uneori este

menionat ca "verificarea n baza de test, prin intermediul designtestare".


Ciclul de viata al unui bug ncepe n momentul in care este gsit/detectat i se
termin dup ce s-a asigurat c nu mai poate fi reprodus. Ciclului de via al
bugului este legat de bug-ul gsit n timpul testrii.

1. New- cand testerul a detectat/gasit prima oara bug-ul;


2. Assigned: dupa ce testerul a postat bugu-ul si testerului sef il aproba si il asigneaza
echipei de development;
3. Open : developerul a inceput sa analizeze si sa fixeze bug-ul;
4. Fixed: dupa ce developer-ul face toate schimbarile de cod necesare si paseaza catre
echipa de test;
5. Retest : dupa fixarea bugului, testerul re-testeaza schimbarile de cod facute de
developer pt a vedea daca bugul a fost sau nu fixat(rezolvat);
6. Verified : testerul verifica daca bagul e fixat de developer. Daca bugul e fixat atunci trece
in stadiul Verified;
7. Reopen: daca bugul inca exista chiar daca el a fost fixat de developer, atunci trece in
reopened si bagul re-trece prin intreg ciclu de viata;
8. Closed: daca bagul este fixat, verificat si validat atunci trece in statusul closed;
9. Duplicate: daca bugul se repeat de 2 ori la acelasi concept, atunci statusul devine
Duplicate;

10. Rejected: daca developerul crede ca bugul nu este original,atunci il respinge si trece in
statusulrejected;
11. Not a bug: daca nu sunt schimbari de functionalitate a aplicatiei;

Watterfall - model

Avantajele:
-

Acest model este simplu i uor de neles i de utilizat .


Este uor de gestionat din cauza rigiditatii modelului - fiecare faz
are rezultate specifice i un proces de revizuire .
In acest model fazele sunt prelucrate i completate pe rnd . Fazele
nu se suprapun .
Modelul Watterfall funcioneaz bine pentru proiecte mai mici n
cazul n care cerinele sunt foarte bine nelese .

Dezavantaje:

Odat ce o cerere este n faza de testare , este foarte dificil dea


merge napoi i de a schimba ceva ce nu a fost bine gndit n
stadiul de concept .
Cantiti mari de risc i incertitudine .
Nu este un model bun pentru proiecte complexe i orientate-obiect .
Nu este adecvat pentru proiectele n care cerinele sunt la un risc
moderat pn la mare de schimbare .

Cnd s utilizeze modelul cascad :


-

Acest model este utilizat numai atunci cnd cerinele sunt foarte
bine cunoscute , clare i fixe;
Tehnologia este neleasa;
Nu exist cerine ambigue;
Resurse ample cu expertiza necesare sunt disponibile gratuit;
Proiectul este scurt .

Agile model

Bug tracking Jira


-

Acesta ofer bug tracking, issue tracking i funcii de management de


proiect;
Dezvoltat de Atlassian;(cei care au facut bitbucket);
Software commercial

Configurare Jira pt bug tracking:


-

Creare proiect -> Creare issues -> Creare Users -> Configurare Permisiuni

Creare proiect

Din meniu Projects -> buton add project (managerul de proiect)

Linux vs MAC vs Windows


Windows :
Pro:
Compatibilitate: Aproape fiecare aplicaie, driver sau joc va funciona pe
Windows.
Suport tehnic: Avnd att de muli utilizatori, putei gsi ntotdeauna pe cineva
(fie online sau offline), care te poate ajuta cu Windows.
Cantitate foarte mare de funcii: Cnd ajungi s tii Foarte bine, vei afla c
exist att de multe funcii pe care le putei face aproape orice destul de uor.

Contra:
Virusi: Ar putea fi necesar pentru a cumpara un program antivirus, dei exist
unele gratuite.
Slow: Windows, mai ales Vista i 7, necesit o mulime de resurse de calculator
(memorie, procesor, spatiu pe disc), i astfel, ruleaza mai lent.
Pret: Cost uor peste o 100 de dolari.
Linux
Pro:
Pret: Linux este F-R-E-E. Putei s-l descrcai, instalai-l, s-l utilizai, modificail ...
Varietate: Linux nu este un sistem de operare complet. Acesta este doar un
kernel. Pentru a folosi kernel-ul, software-ul suplimentar trebuie s fie cuplat cu
Linux. Sute de astfel de pachete (numite "distribuii") exist. Cele mai populare
sunt printre cele Ubuntu, Mint si Fedora.
Virusi: Dei e mai vulnerabil la virusi decat Mac (pentru c este open source),
Linux are nc foarte, foarte puini virui.
Contra:
Complicat: Dei unele distributii sunt destul de uor de utilizat, cele mai multe
dintre ele vor cere o bune cunostinte de calculator, n scopul de a-i fac s
funcioneze.
Compatibilitate: Ca Mac, reprezentnd doar cteva procente din cota de pia,
Linux nu are mai multe programe fata de Windows.

Furnizori: Nu vei gsi o mulime de furnizori de vnzare calculatoare Linux. De


obicei, vei termina doar prin a avea de a cumpra computer cu Windows,
reformatarea hard disk, i instalarea Linux.

2. Tool-uri testare automata


In realizareascripturilor de testare automata, amutilizaturmatoarele
tool-uri:
-

Selenium IDE plugin Firefox;


o Inregistreazasiredainteractiuneauserului cu browserul;
o E utilizat in creareascripturilor;
o Cazul de test se poateexporta in diferiteformate,
celutilizat de noiva fi Java/jUnit/Webdriver;

Selenium Server
o Acest tool estenecesarpentru a rulascripturile(partea
de server);

Selenium Client
o Principalulscop al acestui tool estecrearea de scripturi
care interactioneaza cu Selenium Server;
o Limbajul de programareutilizat de Java;

Eclipse framework pentru dezvoltare cod in Java;

Suita
Senium
se
poatedownloada
http://docs.seleniumhq.org/download/ .
Framework-ul Eclipse se
https://www.eclipse.org/.

poatedownloada

de

peurmatorul
de

peurmatorul

site:
site:

Script
// import librarii java;
importjava.util.regex.Pattern;
importjava.util.concurrent.TimeUnit;
importjavax.swing.JOptionPane;
importorg.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
importorg.openqa.selenium.*;
importorg.openqa.selenium.chrome.ChromeDriver;
importorg.openqa.selenium.firefox.FirefoxDriver;
importorg.openqa.selenium.support.ui.Select;

public class Test1 {


privateWebDriver driver;
private String baseUrl;

@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();//deschidere browser Firefox
baseUrl = "http://photoart.mediaswitch.ro/";//inserareurl in browser
driver.manage().timeouts().implicitlyWait(10,
TimeUnit.SECONDS);//
specificatimpulmaxim de astepare al driver-uluicand se cauta un element, daca
elemental nu esteprezentimediat.
driver.manage().timeouts().setScriptTimeout(1,
TimeUnit.MINUTES);//seteazatimpul
maxim de asteptarepentruincarcareapaginii, inaintesaafiseze o eroare.
driver.manage().timeouts().pageLoadTimeout(5,
TimeUnit.MINUTES);//seteazatimpul
maxim de asteptarepentruca un script asincron flash sa-sitermineexecutia, inainte de a
afisa o eroare.

@Test
public void testTest1() throws Exception {
driver.get(baseUrl + "/customer/account/create/");
driver.findElement(By.id("firstname")).sendKeys(""); //
driver.findElement(By.id("lastname")).sendKeys("");
driver.findElement(By.id("email")).sendKeys("");
driver.findElement(By.id("telephone")).sendKeys("");
driver.findElement(By.id("street_1")).sendKeys("");
driver.findElement(By.id("oras")).sendKeys("");
driver.findElement(By.id("postcode")).sendKeys("");
driver.findElement(By.id("password")).sendKeys("");
driver.findElement(By.id("confirmation")).sendKeys("");
driver.findElement(By.cssSelector("div.buttons-set
>button.button")).click();//trimitereformularcampurigoale

JOptionPane.showMessageDialog(null, " All fields are required!", "Error",


JOptionPane.ERROR_MESSAGE);//Validari(alerta)

driver.findElement(By.id("firstname")).sendKeys("!@#");
driver.findElement(By.id("lastname")).sendKeys("!@#");
driver.findElement(By.id("email")).sendKeys("!@#");
...

Testarea Software mai poate fi definit ca un proces de validare si verificare a


unui produs (corespunde cerinelor care au determinat proiectarea si
implementarea lui si se comport corespunztor asteptrilor).
Testare Software poate fi implementata in orice etap a procesului de dezvoltare,
desi partea considerabil a efortului de testare de obicei este aplicat dup
formalizarea cerinelor si finalizarea implementrii.

Testarea automatizat reprezint o testare dinamic i analitic,care presupune


utilizarea a unui program pentru executarea procedurilor (test case) sau a
ntregilor scenarii de testare.n ultimul timp pentru testarea automatizatase
folosesc tot mai des asa numitele xUnit, din care fac parte , din care fac parte

JUnit si NUnit. Ele permit testarea codului de program pentru a verifica programul
n circumstane diferite. De exemplu, aceleai proceduri de testare se folosesc
pentru a testa comportamentul programului n
diferite diferite sisteme de operare.
1. 1. xUnit
2. 2. CPPUnit (C++ Unit)
3. 3. JUnit (Java Unit)
4. 4. NUnit (for .NET)
5. 5. HtmlUnit
6. 6. HttpUnit
JUnit - JUnit este un framework de testare pentru limbajul de programare Java,
JUnit a fost scris n alte limbi, inclusiv:
ActionScript (FlexUnit)
Ada (AUnit)
C (Cunit)
C # (NUnit)
C ++ (CppUnit)
ColdFusion (MXUnit)
Erlang (EUnit)
Fortran (fUnit)
Delphi (Dunit)
Free Pascal (FPCUnit)
Haskell (HUnit)
JavaScript (JSUnit)
Microsoft NET (NUnit)
Obiectiv-C (OCUnit)
OCaml (OUnit)
Perl (Test :: Class i de testare :: unitate)
PHP (PHPUnit)

Python (PyUnit)

S-ar putea să vă placă și