Sunteți pe pagina 1din 6

Universitatea Tehnică a Moldovei

Facultatea Calculatoare, Informatică și Microelectronică

Departamentul Informatică și Ingineria Sistemelor

RAPORT
la lucrarea de laborator nr. 4

la Testarea software

Temă : Testarea unitară

A efectuat: st. gr.

A verificat: lect. univ. Adrian Prisăcaru

Chişinău – 2021
Sarcina: 
Creați un proiect cu clasa CustomMath dată în indicațiile metodice. Asigurați-vă că testarea funcției
sum trece pentru datele de intrare curente. Adăugați în raport codul funcției testSum și rezultatul testării
(rezultatele testelor PrtSc al ferestrei).
Porniți testarea pentru y=0 și y!=0 (manual, schimbînd secvențial valorile inițiale a lui y). Plasați în
raport codul testării și rezultatele testului testDivisionByZero pentru diferite valori ale lui y.
Modificați metoda de testare pentru divizare, astfel încât funcția să verifice împărțirea la zero, și de
asemenea să furnizeze date de intrare corecte.
Extindeți clasa de testare, astfel încât să utilizeze metoda assertTrue și / sau assertFalse.
Considerații teoretice:
Testele scrise stabilizează și permite reducerea timpul de depanare a codul programului. Testarea
sistemului ca un întreg (sistem de testare), nu este întotdeauna posibil să detecteze erorile din componentele
individuale. Corectarea erorilor în stadiile incipiente de dezvoltare sunt mai puțin costisitoare.
Tratarea excepțiilor
Excepțiile pot fi un comportament normal al unei metodei în anumite condiții (de exemplu, excepție
în cazul absenței unui fișier). Tratarea excepțiilor într-un test are loc prin intermediul unui bloc try ... catch (),
sau să le transmită mai departe cu ajutorul cuvântului cheie throws în corpul metodei. Vom schimba metoda
testDivision, astfel încât să verifice comportamentul corect atunci când are loc împărțirea la 0.
Comportamentul corect în acest caz este de a genera o excepție.
Teste parametrice
Pentru a testa logica aplicației este necesar să se creeze teste în mod regulat, numărul testelor poate
varia de la caz la caz.
Implementare, rezultate practice:
Pentru realizarea testelor unitare, a fost utilizată biblioteca nUnit din .NET, și de asemenea a fost
utilizată extensia de la Visual Studio pentru teste unitare.
Figura 1.1 – Realizarea testului unitar pentru testarea sumării

Un mare ajutor ne va fi explorer-ul pentru testele unitare oferite de extensia pentru testele scrise de
programator.

Figura 1.2 – Exploratorul de teste cu rezultatul execuției lor

După adăugarea și testării funcționalității de împărțire, putem verifica dacă aceste trece vor trece sau nu
în dependență de datele indicate.

Figura 1.3 – Execuția testării pentru divizare la 0


Figura 1.4 – Execuția testării pentru divizarea la un număr diferit de 0

De asemenea putem să specificăm o metodă care returnează o colecție de obiecte noi de tipul
TestCaseDate, cu specificarea datelor de intrare pentru execuția testului. Astfel, va fi mai simplu să realizăm
testarea pentru date diferite.

Figura 1.5 – Adăugarea colecțiilor de date pentru execuția testelor cu date de intrare diferite
Listing-ul clasei extinse Tests.cs

using MathLogic;
using NUnit.Framework;
using System;
using System.Collections.Generic;

namespace TestareLab4
{
public class Tests
{
[SetUp]
public void Setup()
{
}

public static IEnumerable<TestCaseData> dataProvider()


{
yield return new TestCaseData(10, 90);
yield return new TestCaseData(10, 0);
}

[Test]
[TestCaseSource("dataProvider")]
public void TestSum(int x, int y)
{
int a = x, b = y;
var expected = a + b;

var actual = CustomMath.sum(a, b);

Assert.AreEqual(expected, actual);
}

[Test]
[TestCaseSource("dataProvider")]
public void TestDivision()
{
int a = 10, b = 10;
var expected = a / b;

var actual = CustomMath.division(a, b);


try
{
int result = CustomMath.division(a, b);
Assert.AreEqual(expected, actual);
Assert.IsTrue(expected == actual);
Assert.IsFalse(expected != actual);
if (b == 0) Assert.Fail("A fost posibila impartirea");
}
catch (Exception)
{
if (b != 0) Assert.Fail("Imposibil de impartit la 0");
}
}
}
}

Listing-ul fișierului CustomMath.cs


using System;

namespace MathLogic
{
public class CustomMath
{
public static int sum(int x, int y)
{
return x + y;
}
public static int division(int x, int y)
{
if (y == 0)
{
throw new ArithmeticException("devider is 0");
}
return (x / y);
}
}
}

Concluzie:
În concluzie, putem să afirmăm cu certitudine, că comoditatea de a realiza teste unitare este mult mai
mare decât adăugarea blocurilor de condiție if în cadrul codului clasei. Astfel codul desigur că devine mai
ușor de citit, de înțeles și de modificat pe viitor.

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

  • Lab 1 Somipp
    Lab 1 Somipp
    Document7 pagini
    Lab 1 Somipp
    TîmburŞtefan
    Încă nu există evaluări
  • PAm Examen-1
    PAm Examen-1
    Document12 pagini
    PAm Examen-1
    Eric Semeniuc
    Încă nu există evaluări
  • Lab 2 Pam
    Lab 2 Pam
    Document5 pagini
    Lab 2 Pam
    Augusta Bucataru
    Încă nu există evaluări
  • Lab1 Pam
    Lab1 Pam
    Document9 pagini
    Lab1 Pam
    Ion Popescu
    100% (2)
  • Lab 1 PAD Braga Eugen
    Lab 1 PAD Braga Eugen
    Document7 pagini
    Lab 1 PAD Braga Eugen
    Alexandru Kirika
    Încă nu există evaluări
  • Lab. 1. BDC Utm Fcim
    Lab. 1. BDC Utm Fcim
    Document15 pagini
    Lab. 1. BDC Utm Fcim
    Fernando Epic Costa
    0% (1)
  • SOMIPP Lab1
    SOMIPP Lab1
    Document6 pagini
    SOMIPP Lab1
    violina
    Încă nu există evaluări
  • Amoo 1
    Amoo 1
    Document8 pagini
    Amoo 1
    Liliana Condrea
    Încă nu există evaluări
  • Amoo 2
    Amoo 2
    Document8 pagini
    Amoo 2
    AlionaCrigan
    Încă nu există evaluări
  • Lab 2 AMOO
    Lab 2 AMOO
    Document6 pagini
    Lab 2 AMOO
    Gheorghe Felicia
    Încă nu există evaluări
  • Lab2 (TS)
    Lab2 (TS)
    Document7 pagini
    Lab2 (TS)
    Zeul Hriscei
    Încă nu există evaluări
  • Somipp Linux 2 UTM
    Somipp Linux 2 UTM
    Document7 pagini
    Somipp Linux 2 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • Examen TIDPP
    Examen TIDPP
    Document3 pagini
    Examen TIDPP
    Rosca Doinita
    Încă nu există evaluări
  • Examen PW
    Examen PW
    Document71 pagini
    Examen PW
    DorinRotaru
    Încă nu există evaluări
  • BDC 9b
    BDC 9b
    Document5 pagini
    BDC 9b
    Victor Noroc
    Încă nu există evaluări
  • PS TS
    PS TS
    Document14 pagini
    PS TS
    Victor Turculet
    Încă nu există evaluări
  • Lab 10,11,12,13 BDC
    Lab 10,11,12,13 BDC
    Document19 pagini
    Lab 10,11,12,13 BDC
    Oleg Chian
    Încă nu există evaluări
  • Pad LP 01
    Pad LP 01
    Document7 pagini
    Pad LP 01
    Andrei Guritanu
    Încă nu există evaluări
  • Pam Exam
    Pam Exam
    Document2 pagini
    Pam Exam
    Culea Constantin
    Încă nu există evaluări
  • LL3 (Amoo)
    LL3 (Amoo)
    Document6 pagini
    LL3 (Amoo)
    Eric Semeniuc
    Încă nu există evaluări
  • Vasilachi Igor Lab.5 BDC v1
    Vasilachi Igor Lab.5 BDC v1
    Document8 pagini
    Vasilachi Igor Lab.5 BDC v1
    VadimPlasiciuc
    Încă nu există evaluări
  • Vasilachi Igor Lab 5 BDC v1
    Vasilachi Igor Lab 5 BDC v1
    Document8 pagini
    Vasilachi Igor Lab 5 BDC v1
    Fil Gorea
    Încă nu există evaluări
  • Lab 2 BD
    Lab 2 BD
    Document19 pagini
    Lab 2 BD
    Augusta Bucataru
    Încă nu există evaluări
  • SQL Lab1
    SQL Lab1
    Document27 pagini
    SQL Lab1
    Ion Şuiu
    Încă nu există evaluări
  • Lab 2 Somipp
    Lab 2 Somipp
    Document5 pagini
    Lab 2 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • BDC Lab1
    BDC Lab1
    Document11 pagini
    BDC Lab1
    Radu Madiudin
    Încă nu există evaluări
  • Vasilachi Igor Lab.6 BDC v1
    Vasilachi Igor Lab.6 BDC v1
    Document5 pagini
    Vasilachi Igor Lab.6 BDC v1
    VadimPlasiciuc
    Încă nu există evaluări
  • Somipp Linux 1 UTM
    Somipp Linux 1 UTM
    Document10 pagini
    Somipp Linux 1 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • Lab 1 Somipp
    Lab 1 Somipp
    Document5 pagini
    Lab 1 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document4 pagini
    Lab 3
    Rosca Doinita
    Încă nu există evaluări
  • Laborator NR.2
    Laborator NR.2
    Document9 pagini
    Laborator NR.2
    Daniil
    Încă nu există evaluări
  • BDC Lucrare de Curs
    BDC Lucrare de Curs
    Document37 pagini
    BDC Lucrare de Curs
    Vladislav Crivenco
    Încă nu există evaluări
  • Examen, TS, Bilet 75
    Examen, TS, Bilet 75
    Document1 pagină
    Examen, TS, Bilet 75
    Никита Баранов
    Încă nu există evaluări
  • Lab 1 BD
    Lab 1 BD
    Document7 pagini
    Lab 1 BD
    Augusta Bucataru
    Încă nu există evaluări
  • TW Atestare
    TW Atestare
    Document4 pagini
    TW Atestare
    yamahahohnerc70
    Încă nu există evaluări
  • Somipp SOMIPP5
    Somipp SOMIPP5
    Document6 pagini
    Somipp SOMIPP5
    Damean Alexandra
    Încă nu există evaluări
  • Lucrare de Curs BDC
    Lucrare de Curs BDC
    Document17 pagini
    Lucrare de Curs BDC
    Petru Voloceai
    Încă nu există evaluări
  • Lab2 PAM
    Lab2 PAM
    Document12 pagini
    Lab2 PAM
    Ion Popescu
    Încă nu există evaluări
  • Lab2 TMPS
    Lab2 TMPS
    Document4 pagini
    Lab2 TMPS
    Ion Cornea
    Încă nu există evaluări
  • Proiect de Curs BDC
    Proiect de Curs BDC
    Document27 pagini
    Proiect de Curs BDC
    Ion Boika
    Încă nu există evaluări
  • Lab 1 Tmps
    Lab 1 Tmps
    Document5 pagini
    Lab 1 Tmps
    Victor Turculet
    Încă nu există evaluări
  • Iepuras Daniel Lab 1 TS
    Iepuras Daniel Lab 1 TS
    Document4 pagini
    Iepuras Daniel Lab 1 TS
    DanuIepuras
    Încă nu există evaluări
  • Lab.6 FC
    Lab.6 FC
    Document3 pagini
    Lab.6 FC
    Cristina Florea
    Încă nu există evaluări
  • Lab 4 BDC PDF
    Lab 4 BDC PDF
    Document8 pagini
    Lab 4 BDC PDF
    Fil Gorea
    Încă nu există evaluări
  • Curs Sabloane Proiectare
    Curs Sabloane Proiectare
    Document169 pagini
    Curs Sabloane Proiectare
    freestyla
    Încă nu există evaluări
  • PSI Lab 3
    PSI Lab 3
    Document10 pagini
    PSI Lab 3
    Nicolae
    Încă nu există evaluări
  • Examen SAV
    Examen SAV
    Document24 pagini
    Examen SAV
    Vitalie Nastasiu
    Încă nu există evaluări
  • Lab7 AMOO
    Lab7 AMOO
    Document11 pagini
    Lab7 AMOO
    Сергей Борта
    Încă nu există evaluări
  • SOMIPP Lab6
    SOMIPP Lab6
    Document4 pagini
    SOMIPP Lab6
    Dan
    Încă nu există evaluări
  • Somipp Linux 4 UTM
    Somipp Linux 4 UTM
    Document4 pagini
    Somipp Linux 4 UTM
    Cristi Poselețchi
    Încă nu există evaluări
  • SOMIPP7
    SOMIPP7
    Document3 pagini
    SOMIPP7
    Damean Alexandra
    Încă nu există evaluări
  • SOMIPP Lab 5
    SOMIPP Lab 5
    Document5 pagini
    SOMIPP Lab 5
    Augusta Bucataru
    Încă nu există evaluări
  • Teoria Sistemelor Nr2
    Teoria Sistemelor Nr2
    Document10 pagini
    Teoria Sistemelor Nr2
    liveplayer
    Încă nu există evaluări
  • BDC Laborator 13
    BDC Laborator 13
    Document5 pagini
    BDC Laborator 13
    Vladislav Crivenco
    Încă nu există evaluări
  • Proiect de An AMOO
    Proiect de An AMOO
    Document39 pagini
    Proiect de An AMOO
    Raducan Alina
    100% (1)
  • TI205 LescoStanislav laborator4TS
    TI205 LescoStanislav laborator4TS
    Document9 pagini
    TI205 LescoStanislav laborator4TS
    Eliza Caraman
    Încă nu există evaluări
  • Raport
    Raport
    Document13 pagini
    Raport
    Алина Амв
    Încă nu există evaluări
  • Model de Subiect Programare Avansata Pe Obiecte
    Model de Subiect Programare Avansata Pe Obiecte
    Document3 pagini
    Model de Subiect Programare Avansata Pe Obiecte
    Calin Popescu
    Încă nu există evaluări
  • ! Help Java
    ! Help Java
    Document50 pagini
    ! Help Java
    Mircea Tirziu
    Încă nu există evaluări
  • 09-Testarea Unitara
    09-Testarea Unitara
    Document10 pagini
    09-Testarea Unitara
    Andreea Oprea
    Încă nu există evaluări
  • Lab3 (TS)
    Lab3 (TS)
    Document7 pagini
    Lab3 (TS)
    Zeul Hriscei
    Încă nu există evaluări
  • Fişa de Activitate (V - Săptămînă)
    Fişa de Activitate (V - Săptămînă)
    Document1 pagină
    Fişa de Activitate (V - Săptămînă)
    Zeul Hriscei
    Încă nu există evaluări
  • Fişa de Activitate (Ii - Săptămînă)
    Fişa de Activitate (Ii - Săptămînă)
    Document1 pagină
    Fişa de Activitate (Ii - Săptămînă)
    Zeul Hriscei
    Încă nu există evaluări
  • Fişa de Activitate (I Săptămînă) (Dumbrava George Ti183)
    Fişa de Activitate (I Săptămînă) (Dumbrava George Ti183)
    Document1 pagină
    Fişa de Activitate (I Săptămînă) (Dumbrava George Ti183)
    Zeul Hriscei
    Încă nu există evaluări
  • Fişa de Activitate (Vi - Săptămînă)
    Fişa de Activitate (Vi - Săptămînă)
    Document2 pagini
    Fişa de Activitate (Vi - Săptămînă)
    Zeul Hriscei
    Încă nu există evaluări
  • Fişa de Activitate (Iii - Săptămînă)
    Fişa de Activitate (Iii - Săptămînă)
    Document1 pagină
    Fişa de Activitate (Iii - Săptămînă)
    Zeul Hriscei
    Încă nu există evaluări
  • FIŞA DE ACTIVITATE VII - Săptămînă
    FIŞA DE ACTIVITATE VII - Săptămînă
    Document1 pagină
    FIŞA DE ACTIVITATE VII - Săptămînă
    Zeul Hriscei
    Încă nu există evaluări
  • Dabija Marin Marketing 1
    Dabija Marin Marketing 1
    Document9 pagini
    Dabija Marin Marketing 1
    Zeul Hriscei
    Încă nu există evaluări
  • Laborator1 IDWeb
    Laborator1 IDWeb
    Document3 pagini
    Laborator1 IDWeb
    Di No
    Încă nu există evaluări
  • Reguli de Redactare
    Reguli de Redactare
    Document4 pagini
    Reguli de Redactare
    Zeul Hriscei
    Încă nu există evaluări
  • Fcim Evaluarea 1
    Fcim Evaluarea 1
    Document3 pagini
    Fcim Evaluarea 1
    Catalina Bucur
    Încă nu există evaluări
  • Fişa de Activitate (Vi - Săptămînă)
    Fişa de Activitate (Vi - Săptămînă)
    Document2 pagini
    Fişa de Activitate (Vi - Săptămînă)
    Zeul Hriscei
    Încă nu există evaluări
  • Lecția 4 FCIM Microclimatul
    Lecția 4 FCIM Microclimatul
    Document19 pagini
    Lecția 4 FCIM Microclimatul
    Zeul Hriscei
    Încă nu există evaluări
  • Lab2 SAV
    Lab2 SAV
    Document4 pagini
    Lab2 SAV
    Zeul Hriscei
    Încă nu există evaluări
  • IDWeb Laborator 2
    IDWeb Laborator 2
    Document1 pagină
    IDWeb Laborator 2
    Zeul Hriscei
    0% (1)
  • Fisa de Post Manager General
    Fisa de Post Manager General
    Document4 pagini
    Fisa de Post Manager General
    RalucaȘerbănoiu
    Încă nu există evaluări
  • Lecţia 2 SAV FCIM
    Lecţia 2 SAV FCIM
    Document32 pagini
    Lecţia 2 SAV FCIM
    Nastea13
    Încă nu există evaluări
  • Lab1 SAV
    Lab1 SAV
    Document5 pagini
    Lab1 SAV
    Zeul Hriscei
    Încă nu există evaluări
  • Model de Fisa de Post Pentru Contabil Sef
    Model de Fisa de Post Pentru Contabil Sef
    Document4 pagini
    Model de Fisa de Post Pentru Contabil Sef
    Lucia Burduja
    Încă nu există evaluări
  • Lab1 SAV
    Lab1 SAV
    Document5 pagini
    Lab1 SAV
    Zeul Hriscei
    Încă nu există evaluări
  • Lab4 SAV
    Lab4 SAV
    Document3 pagini
    Lab4 SAV
    Zeul Hriscei
    Încă nu există evaluări
  • Lab3 SAV
    Lab3 SAV
    Document4 pagini
    Lab3 SAV
    Zeul Hriscei
    Încă nu există evaluări
  • Lecţia 2 SAV FCIM
    Lecţia 2 SAV FCIM
    Document32 pagini
    Lecţia 2 SAV FCIM
    Nastea13
    Încă nu există evaluări
  • Lab4 SAV
    Lab4 SAV
    Document3 pagini
    Lab4 SAV
    Zeul Hriscei
    Încă nu există evaluări
  • Laborator Mecanica nr2
    Laborator Mecanica nr2
    Document15 pagini
    Laborator Mecanica nr2
    Zeul Hriscei
    Încă nu există evaluări
  • Lab2 SAV
    Lab2 SAV
    Document4 pagini
    Lab2 SAV
    Zeul Hriscei
    Încă nu există evaluări
  • Lab3 SAV
    Lab3 SAV
    Document4 pagini
    Lab3 SAV
    Zeul Hriscei
    Încă nu există evaluări
  • Laborator NR 6 Mecanica
    Laborator NR 6 Mecanica
    Document13 pagini
    Laborator NR 6 Mecanica
    Zeul Hriscei
    Încă nu există evaluări