Sunteți pe pagina 1din 37

Facultatea de Informatic

Universitatea Al.I.Cuza - Iai

Ingineria Programrii
Laborator 3
Adrian Iftene
adiftene@infoiasi.ro
Adrian Iftene - IP

Introducere n Testare

Cuprins

Unde ne aflm?
Definiia i Scopurile
Testrii Software
Fapte i Numere

Dilema Calitii Software


Calitate

Timp

Pre

Cuprins

Unde ne aflm?
Definiia i Scopurile
Testrii Software
Fapte i Numere

Testare Software - Definiie


The process of exercising or evaluating
a system by manual or automated
means to verify that it satisfies specified
requirements or to identify differences
between expected and actual results.
(IEEE Standard Glossary, 1983)

Testare Software
Testarea Software NU este o faz
Este un proces care trebuie integrat n
toate fazele construciei produsului
software
Exist documente de testare asociate la
fiecare faz a dezvoltrii

Care sunt Scopurile Testrii?


De a localiza i preveni bugs ct mai
curnd posibil
De a efectua toate Testele corespunztor
Cerinelor, ntr-un mod ct mai eficient i
mai economic
De a aduce produsul software la un nivel
de calitate ct mai ridicat (pentru client)
Toate acestea se execut folosind
Metodologile de Implementare

De ce avem Bugs n Software?


Comunicarea deficitar sau Blocajele de
comunicare
nelegerea deficitar
Presiunea Timpului
Nivelul Programatorului este Sczut

Comunicare Deficitar

Comunicare Deficitar n
tratarea Cerinelor

Cuprins

Unde ne aflm?
Definiia i Scopurile
Testrii Software
Fapte i Numere

De unde vin Problemele


Software?
Cerine definite Incomplet
50%
Modelare Ambigu sau Insuficient 30%
Erori de Programare
20%

Bugs - Costul Fixrii

Cerine Modelare

Impl.

Test. Int. Test.sist.

Client

Atenie
Gsirea trzie a bugs un
cost ct mai mare pentru a
le fixa

Erori? Trebuie fixate ct mai


Devreme Posibil

CERINE

MODELARE IMPLEM.

TESTARE CLIENT

Testare Profesional
Profesionalismul n testare const n
abilitatea de a selecta numrul minim
de cazuri de testare eficient ce va fi
capabil s verifice numrul maxim de
funcii ale sistemului.

Cnd Oprim Testarea?


Niciodat
Cnd numrul de erori gsite ntr-un ciclu
de testare este mai mic dect un numr
stabilit
Cnd nu mai sunt gsite defecte critice i
majore
Cnd timpul a expirat

Schema unui Sistem de Testare


Mediul de Testare

Designs
Acquires
Configures
Utilizes
Support

Determine the
usage of

Procese
de Test

Create
Articulates
Trains
Applies
Internalize

Echipa
de Test

Provides a
Platform
for the
operation of
Designs
Acquires
Configures
Utilizes
Support

Testware

Metodologii de Testare

Adrian Iftene - IP

Coninut
Diferena dintre testare SW i debug SW
Nivele de Test
Clase de Test
Coninutul Testrii
Testare i Dezvoltare SW

Diferena dintre Testare


SW & Debug
Testare

Debug

Verificarea
respectrii cerinelor

Verificarea
validitii seciunilor

De regul e fcut
de o entitate extern
i neutr

E fcut de
programator

Este un proces

E un proces aleator

Nivele de Test
Unitate sau Debug.
Modul/Sub-Sistem.
Integrare.
Sistem.
Acceptare.

Clase de Test
Regresie.
Efecte Laterale.
Redundan.
Stres i Suprancrcare.
Refacere.

BLACK BOX
Input

Output

Spec

WHITE

BOX

IF

END

DO

Coninutul Testrii
STP
STP

TRD
TRD
STD
STD

Execu
Execuie
ie
STR
STR

STP
- Software Test Plan.
TRD
- Test Requirement Definition.
STD
- Software Test Description.
Tests Execution or Test Cycles.
STR
- Software Test Report.

Coninutul Testrii - Detalii

STP - Un plan ce detaliaz: scopul testrii,


planificarea n timp, cerinele ce se testeaz
TRD - Specific ce cazuri trebuie testate
pentru fiecare cerin (TC - Test Case)
STD - Specific step-by-step ce se execut i
ce rezultat se ateapt pentru fiecare TC
STR - Sumarizeaz rezultatele ciclurilor de
testare i concluziile despre calitatea
sistemului testat

Unit Testing

Testarea unei funcii, a unui program, a unui


ecran, a unei funcionaliti
Se face de ctre programatori
Predefinit.
Rezultatele trebuie documentate
Se folosesc simulatoare pentru Input i Output

Testare la Integrare

Testarea funcionrii unor module n acelai


timp
Testarea coexistenei
Se execut de ctre programatori sau de
ctre testri analiti
Testare pre-planificat
Rezultatele se documenteaz

Testare Manual - Scenariu de Test

STP:

TRD:

Definirea structurii testrii, Se mparte sistemul ntr-o


structur ierarhic, Se descriu resursele necesare
pentru testare, Se planific testarea
mprirea n pai se face innd cont de cerine, Se
descrie ce va fi testat pentru componente i funcii,
Include o mulime de cerine de testare ntr-un format
stabilit

STD:

Descrie CUM s testm sistemul

Testare Automat
Presupunea s crem n paralel clase de test
pentru a testa clasele de baz
void CElevatorTest::GoToFloorTest1()
{
CElevator Elevator;
Elevator.GoToFloor( 5 );
assert( Elevator.GetFloor() == 5 );
Elevator.GoToFloor( 0 );
assert( Elevator.mFloor == 0 );
}

Testare Automat vs Testare Manual

Se gsesc rapid
problemele
Se ctig timp cnd e
nevoie s repetm testele
Procesul de scriere a
codului e mult mai flexibil
Reduce volumul de testare
manual
Dezvoltarea software
devine previzibil i
repetabil

Rezolv problemele de
interfa: scrierea corect
a textelor, mesajelor,
aranjarea corect n
pagin, n ordinea care
trebuie, sunt vizibile, etc.
Realizarea Scenariilor de
test poate fi o treab de
durat i anevoioas i
implic o cunoatere
temeinic a ntregului
sistem

Links

http://www.automatedqa.com/techpapers/testing.asp
http://www.codeproject.com/tools/tilo.asp
http://www.parasoft.com/jsp/products/home.jsp?
product=Cpp
http://www.verifysoft.com/en_ctapp.html
http://msdn.microsoft.com/library/default.asp?
url=/library/en-us/dncdev00/html/vc00f6.asp
http://www.codeproject.com/gen/design/autp5.asp
http://www.codeproject.com/cpp/UnitTestsReporter.asp
http://www.codeproject.com/gen/design/onunittesting.asp
http://www.code-agazine.com/Article.aspx?
quickid=0411031

Coding Style Motivaie

Conveniile de programare sunt importante


deoarece:
80% din timpul alocat unei componente
software este ntreinere
Foarte rar un produs software este ntreinut
pe toat durata folosirii lui de ctre aceeai
persoan
Conveniile de cod mbuntesc lizibilitatea
produsului, i permite inginerilor software s
neleag rapid un program nou

Coding Style - Cerine

Folosirea fr rezerve a Comentariilor: ce


fac procedurile, ce reprezint variabilele,
explicarea pailor algoritmului, etc.

Folosirea numelor sugestive pentru


variabile si proceduri

Scrierea modulara a proiectului

Folosirea perechilor de tip set/get,


start/stop, adauga/sterge, salvare/incarcare

Coding Style - Links

C++:

http://www.chris-lott.org/resources/cstyle/
http://geosoft.no/development/cppstyle.html

Java:

http://java.sun.com/docs/codeconv/
http://geosoft.no/development/javastyle.html

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