This shows you the differences between two versions of the page.
mps:laboratoare:laborator-09 [2020/09/28 17:55] iulia.stanica [Exerciții (50 min)] |
mps:laboratoare:laborator-09 [2022/12/13 11:18] (current) iulia.stanica [Test Cases] |
||
---|---|---|---|
Line 248: | Line 248: | ||
== Stubs == | == Stubs == | ||
- | O problemă des întâlnită în testarea proiectelor este testarea unei părți a proiectului înainte ca alte părți să fie gata. Se pot folosi pentru asta interfețe, numite **Stubs**, care simulează funcțiile de bază ale obiectului respectiv fără să efectueze și teste de integritate a datelor sau ale fluxului logic al problemei. Ele sunt des folosite în cursul dezvoltării unităților proiectului care depind de obiectul simulat. | + | O problemă des întâlnită în testarea proiectelor este testarea unei părți a proiectului înainte ca alte părți să fie gata. Se pot folosi pentru asta interfețe, numite **Stubs**, care simulează funcțiile de bază ale obiectului respectiv fără să efectueze și teste de integritate a datelor sau ale fluxului logic al problemei. Ele sunt des folosite în cursul dezvoltării unităților proiectului care depind de obiectul simulat. Accentul este pus pe verificarea răspunsului dorit / schimbării de stare. |
== Mockup == | == Mockup == | ||
- | **Mockups** sunt tot implementarea unor interfețe care testează mai aprofundat funcțiile necesare. Ele simulează spre exemplu funcționarea unui server pentru a putea testa facilitățile clientului și testează de asemenea autentificarea clientului înainte ca acesta să poată efectua anumite tranzacții. Pentru o utilizare mai facilă se recomandă folosirea interfețelor și utilizarea lor în funcția de testare. O implementare pentru testare este o implementare care conține numai cod de test și imită cât mai bine funcționarea viitorului obiect. Mockup-urile sunt utile în multe situații precum: | + | **Mockups** sunt tot implementarea unor interfețe care testează mai aprofundat funcțiile necesare. Ele simulează spre exemplu funcționarea unui server pentru a putea testa facilitățile clientului și testează de asemenea autentificarea clientului înainte ca acesta să poată efectua anumite tranzacții. Pentru o utilizare mai facilă se recomandă folosirea interfețelor și utilizarea lor în funcția de testare. O implementare pentru testare este o implementare care conține numai cod de test și imită cât mai bine funcționarea viitorului obiect. Accentul este pus pe verificarea comportamentului. Mockup-urile sunt utile în multe situații precum: |
* cazul când obiectul în sine nu există | * cazul când obiectul în sine nu există | ||
* obiectul real/funcția reală ia foarte mult timp să ruleze | * obiectul real/funcția reală ia foarte mult timp să ruleze | ||
Line 539: | Line 539: | ||
=====Exerciții (50 min)===== | =====Exerciții (50 min)===== | ||
- | - Se dau următorul patch: [[https://curl.haxx.se/CVE-2016-8616.patch|patch]] și următorul tweet: [[https://i.imgur.com/KHaCdxA.png|tweet]]. Studiati-le timp de 5 minute. Vor fi importante pentru testul nostru Kahoot :) | + | - Se dau următorul patch: [[https://curl.haxx.se/CVE-2016-8616.patch|patch]] și următorul tweet: [[https://i.imgur.com/KHaCdxA.png|tweet]]. Studiati-le timp de 5 minute. Vor fi importante pentru testul nostru [[https://kahoot.com/schools-u/|Kahoot]] :) |
**Nota**: fiecare răspuns corect valorează un punct, se acordă un punct pentru prezență. Punctajul total aferent laboratorului curent este de **11p**. | **Nota**: fiecare răspuns corect valorează un punct, se acordă un punct pentru prezență. Punctajul total aferent laboratorului curent este de **11p**. | ||
<hidden> | <hidden> | ||
- | Link Kahoot: [[https://create.kahoot.it/share/mps-lab-9-testare/7094976f-b95e-4841-af8b-c4f08e6d7f12|Kahoot]] | + | Link Kahoot: [[https://create.kahoot.it/v2/share/mps-lab-9-testare/7094976f-b95e-4841-af8b-c4f08e6d7f12|Kahoot]] |
- | * Câte modificări s-au făcut în acest patch? | + | - Câte modificări s-au făcut în acest patch? |
- | * Câte fișiere au fost modificate de patch? | + | - Câte fișiere au fost modificate de patch? |
- | * Ce bug ar putea rezolva acest patch? | + | - Ce bug ar putea rezolva acest patch? |
- | * Ce fel de testare realizeaza platforma VMChecker: Boundary testing / White Box / Black Box Testing / Regression? | + | - Ce fel de testare realizeaza platforma VMChecker: Boundary testing / White Box / Black Box Testing / Regression? |
- | * Ce fel de testare este ilustrata [[http://i.imgur.com/KHaCdxA.png|aici]] ? | + | - Ce fel de testare este ilustrata [[http://i.imgur.com/KHaCdxA.png|aici]] ? |
- | * Modificarea unei linii de cod din "a++" in "a+=2" pentru a vedea efectele survenite constituie un exemplu de: Regression / Black box / Stubs / Fault injection. | + | - Modificarea unei linii de cod din "a++" in "a+=2" pentru a vedea efectele survenite constituie un exemplu de: Regression / Black box / Stubs / Fault injection. |
- | * NU permite managementul bug-urilor urmatorul program: GitHub, diff, Bugzilla, Trac. | + | - NU permite managementul bug-urilor urmatorul program: GitHub, diff, Bugzilla, Trac. |
- | * Care este diferența dintre "regression testing" și "re-testare"? | + | - Care este diferența dintre "regression testing" și "re-testare"? |
- | * Alegeți afirmația corectă referitoare la costul fixării unui defect / bug: scade / creste odată cu apropierea de data lansării / nu este important / nu poate fi determinat. | + | - Alegeți afirmația corectă referitoare la costul fixării unui defect / bug: scade / creste odată cu apropierea de data lansării / nu este important / nu poate fi determinat. |
- | - **[Bonus]** De unde vine denumirea de bug? | + | **[Bonus]** - (10) De unde vine denumirea de bug? |
Rezolvari: | Rezolvari: | ||
- 3 modificari (se vad in 3 locuri --/++) | - 3 modificari (se vad in 3 locuri --/++) | ||
- | - un singur fisier afectat. Bug: functie pasibila de erori la verificare username si parola (context: calcula un hash si il verifica sa semene cu unul existent din memorie, insa functia aia existenta nu era case-sensitive). | + | - un singur fisier afectat. |
+ | - Bug: functie pasibila de erori la verificare username si parola (context: calcula un hash si il verifica sa semene cu unul existent din memorie, insa functia aia existenta nu era case-sensitive). | ||
- Black box - evident (considera tema trimisa ca un black box si ruleaza testele). Poate si Boundary acceptat, daca se aduce ca exemplu o tema precum tema 0 de la SO, care verifica sa ruleze tema si pe o lista vida de cuvinte. Sigur nu Regression. | - Black box - evident (considera tema trimisa ca un black box si ruleaza testele). Poate si Boundary acceptat, daca se aduce ca exemplu o tema precum tema 0 de la SO, care verifica sa ruleze tema si pe o lista vida de cuvinte. Sigur nu Regression. | ||
- Boundary testing | - Boundary testing | ||
Line 575: | Line 576: | ||
- Descrieți sumar conținutul unui SQAP pentru proiectul vostru. | - Descrieți sumar conținutul unui SQAP pentru proiectul vostru. | ||
* Parcurgeți secțiunea [[https://ocw.cs.pub.ro/courses/mps/laboratoare/laborator-09#sqap_software_quality_assurance_plan|Software Quality Assurance Plan]] | * Parcurgeți secțiunea [[https://ocw.cs.pub.ro/courses/mps/laboratoare/laborator-09#sqap_software_quality_assurance_plan|Software Quality Assurance Plan]] | ||
- | - Pregătiți un checklist pentru terminarea proiectului vostru. Argumentați! | + | - Pregătiți un checklist pentru terminarea proiectului vostru. Argumentați! |
* Parcurgeți secțiunea Terminarea unui proiect | * Parcurgeți secțiunea Terminarea unui proiect | ||
- | - Răspundeți la întrebările de la procesul PPA pentru proiectul vostru. | + | - Răspundeți la întrebările de la procesul PPA pentru proiectul vostru. |
* Parcurgeți secțiunea Post-Performance Analysis. | * Parcurgeți secțiunea Post-Performance Analysis. | ||
Stabiliti ce mai aveti de facut pentru finalizarea proiectelor. | Stabiliti ce mai aveti de facut pentru finalizarea proiectelor. | ||