Тематический план
OBIECTIVE CURSULUI TESTAREA SOFTWARE
1. Identificarea și definirea conceptelor, teoriilor, metodelor și principiilor de elaborare a documentației pentru testare în baza interviurilor cu clientul și a specificației cerințelor clientului.
2. Explicarea conceptelor, teoriilor și metodelor de planificare și proiectare a scenariilor de testare.
3. Aplicarea conceptelor, teoriilor și metodelor de planificare și proiectare a scenariilor de testare.
4. Însușirea conceptelor, principiilor și metodelor de proiectare a testelor în baza specificației cerințelor software.
5. Înțelegerea etapelor ciclului de viața a unui produs software și rolul asigurării și controlului calității pe parcursul acestor etape;
6. Formarea capacităților de a putea aplica metodele și tehnicile proiectare a testelor în baza specificației cerințelor software;
7. Cunoașterea și înțelegerea etapelor ciclului de viață a erorilor software;
8. Înțelegerea etapelor procesului de testare;
9. Familiarizarea cu elementele de management a testării software.
Tema 1. Noțiuni de baza despre testare
În secolul XXI nu ne putem imagina viaţa fără produse software. Tehnologiile informaționale s-au infiltrat în toate domeniile activităţii umane. Mergând la cumpărături putem primi împreună cu o cutie de margarină sau de cereale un CD-ROM gratis cu un joc video sau cu muzică. Mulţi dintre noi nu pot petrece o zi fără Internet. Aplicaţiile software au înlocuit funcţionarii în diverse ramuri, astfel având un impact enorm asupra vieţii şi activităţii umane. Pentru a asigura calitatea şi siguranţa aplicaţiilor software se pune un accent deosebit pe testarea acestora. Testarea software a devenit o profesie tehnică foarte importantă.
TEMA 2. Termeni și definiții ale testării
“Testarea e procesul prin care se execută un program cu intenția de a găsi erori” (Myers)Calitatea proastă a produsului soft poate fi inclusiv din cauza definirii incorecte a procesului de testare.TEMA 3. Principiile și axiomele testării
Cea mai importantă problemă în testare este totuși cea psihologică. Cunoașterea unor principii generale ale testării poate aduce beneficii esențiale tuturor activităților de testare.
TEMA 4. Definiții ale erorii software
Este extrem de importantă înțelegerea noțiunii de eroare software și care este diferența între un defect și eșecul sistemului software.TEMA 5. Ciclul de viață al unui defect. Caracteristicile de bază a defectelor
Ciclul de viață al unui defect începe atunci când se depistează defectul și se termină când un defect este închis, după ce se asigură că nu se va reproduce. Ciclul de viață a defectului este strict legat de faptul că defectul a fost găsit în timpul procesului de testare. Defectul se poate afla în diferite stări pe parcursul ciclului de viață. Defectele depistate sunt clasificate după anumite caracteristici.
TEMA 6. Descrierea efectivă și eficientă a defectelor
Rapoartele defectelor sunt printre cele mai importante rezultate obținute din teste. Ele sunt la fel de importante ca și planul de test și au un impact mai mare asupra calității produsului decât celelalte rezultate ale testării. Merită efortul de a învăța cum se scriu rapoarte efective ale defectelor.
TEMA 7. Ciclul de viață a produselor software (SDLC)
În timpul dezvoltării produselor software s-a constatat că există anumite tipuri de activități care trebuie făcute la un moment dat:
Analiza cerințelor; Proiectarea arhitecturală; Proiectarea detaliată; Implementarea (Scrierea codului); Integrarea componentelor;Verificarea și Validarea (Testarea); Mentenanța (Întreținerea)
Aceste activități sunt în strânsă legătură cu cele patru faze ale ingineriei programării: analiza, proiectarea, implementarea și testarea.
TEMA 8. Modele de dezvoltare a produselor software
Modelul cascadă, propus de Barry Boehm, este unul din cele mai cunoscute exemple de modele din ingineria programării.Modelul spirală, propusă tot de Boehm, este un alt exemplu bine cunoscut de model a ingineriei programării. Acest model încearcă să rezolve problemele modelului în cascadă, păstrând avantajele acestuia: planificare, faze bine definite, produse intermediare.Numele Modelului V înseamnă Verificare și Validare și corespondent metodologiei secvențiale de dezvoltare a softului. Dezvoltat pentru reglementarea dezvoltării de software în administraţia federală germană. Evidenţiază testarea pe tot parcursul ciclului de dezvoltare.
O problemă generală care apare la dezvoltarea unui program este să ne asigurăm că utilizatorul obţine exact ceea ce vrea. Prototipizarea vine în sprijinul rezolvării acestei probleme. Încă din primele faze ale dezvoltării, clientului i se prezintă o versiune funcţională a sistemului.
TEMA 9. Testarea în ciclul de dezvoltare a produselor software
În procesul de dezvoltare software testarea ocupă cea mai mare parte din timpul alocat pentru proiect. Un mare dezavantaj în proiectele IT este acela că dezvoltatorii subestimează testarea software, o neglijează. Ca urmare sunt puse în funcţiune aplicaţii care în loc să uşureze munca utilizatorului mai mult o îngreunează datorită erorilor generate de aplicaţie.
În dezvoltarea unui produs software testarea este un proces, care se desfăşoară în mai multe etape şi pe mai multe nivele.
TEMA 10. Tipuri generice de testare
Scopurile și obiectivele sunt diferite pentru diferite nivele de testare ce vor fi prezentate în lecțiile următoare. Din această cauză pentru fiecare nivel de testare sunt relevante diferite tipuri de testare.
Pot fi distinse următoarele tipuri generice de testare:
- Testarea funcțională
- Testarea non-funcțională
- Testarea structurală
- Testarea statică
- Testarea dinamică
LUCRARE DE LABORATOR NR. 1
Instrumente de testare
Note: Foloseste un IDE diferit pentru fiecare lucrare de laborator
Obiective:- Familiarizarea cu Selenium.
- Testarea functionalitatii de logare intr-o aplicatie la alegere.
Sarcini de lucru:
Note: - Respectarea UX - Manipularea eventurilor de input gresit de catre utilizator
-
Basic Level (nota 5 || 6):
- Realizeaza un simplu GUI calculator care suporta functiile de baza: +, -, /, *.
-
Normal Level (nota 7 || 8):
- Realizeaza un simplu GUI calculator care suporta urmatoare functii: +, -, /, *, putere, radical, InversareSemn(+/-).
-
Advanced Level (nota 9 || 10):
- Realizeaza un simplu GUI calculator care suporta urmatoare functii: +, -, /, *, putere, radical, InversareSemn(+/-), operatii cu numere zecimale.
- Divizare proiectului in doua module - Interfata grafica(Modul GUI) si Modulul de baza(Core Module).
Instrumente utile:
- Aplicatie cu modul de logare functional.
- IDEs: Visual Studio, QTCreator, Xcode, Code::Blocks
- Limbaje de programare: C/C++, C#, Objective C, Python, etc
- Technologii si Frameworks: Forms, wxWidgets, Win32 API, WinRT API, PyQt or others (depinde de IDE si limbajul de programare ales)
- Timp de lucru: 4-8 hours
References:
LUCRARE DE LABORATOR NR.2
Instrumente de testare. Selenium
Note: Foloseste un IDE diferit pentru fiecare lucrare de laborator
Obiective:
- Testarea interfetei grafice a unui web site (GUI) utilizand Selenium.
Sarcini de lucru:
Note: - Respectarea UX - Manipularea eventurilor de input gresit de catre utilizator
-
Basic Level (nota 5 || 6):
- Realizeaza un simplu GUI calculator care suporta functiile de baza: +, -, /, *.
-
Normal Level (nota 7 || 8):
- Realizeaza un simplu GUI calculator care suporta urmatoare functii: +, -, /, *, putere, radical, InversareSemn(+/-).
-
Advanced Level (nota 9 || 10):
- Realizeaza un simplu GUI calculator care suporta urmatoare functii: +, -, /, *, putere, radical, InversareSemn(+/-), operatii cu numere zecimale.
- Divizare proiectului in doua module - Interfata grafica(Modul GUI) si Modulul de baza(Core Module).
Instrumente utile:
- IDEs: Visual Studio, QTCreator, Xcode, Code::Blocks
- Limbaje de programare: C/C++, C#, Objective C, Python, etc
- Technologii si Frameworks: Forms, wxWidgets, Win32 API, WinRT API, PyQt or others (depinde de IDE si limbajul de programare ales)
- Timp de lucru: 4-8 hours
References:
LUCRARE DE LABORATOR 3
Tehnici black-box de proiectare a testelor
SCOPUL LUCRĂRII:
1. Formarea deprinderilor de testare a funcţionalităţilor unui produs.
2. Formarea abilităţilor de partiţionare în clase de echivalenţă a datelor de intrare.
3. Utilizarea tabelelor de decizie și diagrama stărilor și tranzițiilor pentru a crea cazuri de test
SARCINA DE BAZĂ:
1. De elaborat un scenariu de testare pentru 2-3 funcționalități a unei aplicații software
2. De determinat criteriile de organizare a claselor de echivalenţă şi a tabelelor de decizie.
3. De alcătuit un test concludent conform acestor criterii inclusiv testarea valorilor de la limite.
4. De evidenţiat cazurile de test pe care se pot obţine rezultate eronate.
5. De alcătuit un raport despre îndeplinirea lucrării cu concluziile respective.
Referințe bibliografice:
Software Testing by Ron Patton
LUCRARE DE LABORATOR 4
Metode white-box de testareCerinte :
- proiectarea cazurilor de testare.
- algoritmul McCabe.
- criteriile de acoperire.
- controlul fluxului de date.
- tehnica White-Box.
Obiective :
- ințelegerea noțiunii de cazuri de testare.
- ințelegerea metodologiei de dezvoltare a aplicației:
o Dezvoltare condusă de test
o Dezvoltare bazată pe cod
- formarea competențelor de partiționare în criteriile de acoperire.
- utilizați graficul fluxului de date.
LUCRARE DE LABORATOR 6
Scopul lucrării:
Formarea deprinderilor de a descrie defectele depistate la testarea unui produs soft.
Formarea abilităților de a raporta defectele depistate eficient și clar pentru dezvoltatori.
Sarcini de bază:
Explorarea unei aplicații software pentru depistarea defectelor.
Identificarea defectelor și descrierea eficientă a lor.
Completarea unui raport eficient despre defectele identificate.
REFERINȚE BIBLIOGRAFICE
1. Marnie L. Hutcheson, Software Testing Fundamentals: Methods and Metrics, John Wiley & Sons, 2003, 408 p.
2. Lee Copeland, A Practitioners Guide to Software Test Design, Artech Hous, 2004, 294 p.
3. Ron Patton, Software Testing, Sams Publishing, 2005, 408 p.
4. Glenford J. Myers, The Art of Software Testing, John Wiley & Sons, 2004.
5. Сэм Канер, Джек Фолк, Тестирование ПО : Перевод с английского Ент Кек Нгуен – К.: Изд. ”Диасофт”, 2000 –544 с.
6. Pocatilu P. Costurile testării software. Editura ASE, Bucureşti, 2004.
7. Andrew Hunt, David Thomas. Pragmatic Unit Testing in C#.
8. Jeff Tian. Software Quality Engineering. John Wiley & Sons, 2005
9. Hung Q. Nguyen, Testing Applications on the Web, John Wiley & Sons, 2001
10. Жуков Д.Ю. Методы верификации программ. 2001
Adrese utile:
http://www.ionivan.ro/books-title.php
http://www.securenet.ro/ro/publications/doc/
http://www.ace.tuiasi.ro/~fleon/bvia.htm
http://www.io.com/~wazmo/qa/#test_automation%23test_automation
http://www.aptest.com/resources.html