You are on page 1of 19

UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin

FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II


MASTER – MODELARE SI TEHNOLOGII INFORMATICE

Modelare stochastică şi simulare în


fiabilitatea softului
Proiect

Profesor coordonator, Student,


Lect. Dr. Cristina Serban Sîrbu Gheorghe-Florin
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

1. Descrierea problemei
O scoala generala organizeaza un concurs de admitere, pentru care are nevoi de o aplicatie care
sa gestioneze candidaţii.
Un candidat se caracterizează prin următoarele atribute: CNP, nume şi prenume. El va primi un
număr de legitimaţie atunci când se înscrie la concursul de admitere. Pentru a înscrie un
candidat, programul afişează interfaţa grafică „Inscrierea unui candidat nou”.
Fiecare candidat participă la două probe de concurs la care va primi câte o notă. Pentru a
memora notele primite de fiecare candidat, programul cere introducerea numărului legitimaţiei
unui candidat într-o fereastră, după care afişează următoarea interfaţă grafică „Inregistreaza
note”.
Având cele două note, programul calculează media lor. Toţi candidaţii concursului de admitere
sunt memoraţi într-o colecţie de obiecte (la alegere) ce permite efectuarea următoarelor operaţii:
- căutarea şi afişarea datelor despre un candidat după numărul de legitimaţie;
- retragerea unui candidat;
- afişarea tuturor candidaţilor în ordine descrescătoare după media obţinută (fereastra
„Lista candidatilor”).
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

2. Cerințe funcționale și nefuncționale ale sistemului


Descrierea sistemului: Sistemul gestionează un concurs de admitere.
Actorii software ai sistemului: angajații școlii, responsabili cu înregistrarea candidaților, cautarea
și eliminarea acestora si afișarea listei de candidați.
Cerințe funcționale:
F1: Inregistrare
F1.1 Ofera posibilitatea completarii unui formular
F2: Afișare listă candidați
F2.1 Afișează numele candidaților înregistrați
F3: Căutare candidat
F3.1 Permite deschiderea unui formular, in care se introduce nr. legitimatiei candidatului
F3.2 Se deschide un formular pentru introducerea notelor unui candidat, gasit dupa
legitimatie
F4: Eliminare candidat
F4.1 Permite deschiderea unui formular, in care se introduce nr. legitimatiei
F4.2 Elimina un candidat, cautat in functie de nr, legitimatiei

Cerințe nefuncționale:
C1: Suport care să asigure persistența datelor
C2: Utilizare:
- Utilizatorul nu trebuie sa urmeze un instructaj pentru a folosi aplicatia. El va avea la dispozitie
manual utilizatorului.
- Aplicația folosește interfețe grafice
- Aplicația trebuie sa ruleze pe orice sistem de operare Windows
C3: Siguranța:
- Aplicația trebuie sa fie disponibilă 24 de ore din 24, în mediul on-line.
C4: Robustețe:
- Aplicația trebuie sa verifice datele introduse de utilizator. Dacă nu sunt corecte, aplicația
trebuie să afișeze mesaje de eroare și sa permită utilizatorului sa introducă datele din nou
- Aplicația trebuie să valideze datele referitoare la modalitatea de plata cu cardul sau prin cont
bancar
C5: Limbaj de programare: Java
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

3. Cazuri de utilizare software

I. Nume: Inregistrare (CU1)


Descriere: Descrie interacțiunea sistemului cu clientul care accesează aplicația și dorește să
înregistreze candidați în cadrul acesteia;
Actori: Client;
Eveniment declanșator: Clientul dorește să inregistreze candidati, în vederea introducerii
notelor pe care le va obtine;
Referințe încrucișate: F1.1->F1.4
Flux principal:
Client Sistem
1. Accesează aplicația și dorește să înregistreze 2. Permite introducerea datelor de inregistrare
candidatul
3. Introduce și trimite datele 4. Afișează mesaj corespunzător

II. Nume: Afișare lista candidati (CU2)


Descriere: Descrie interacțiunea sistemului cu clientul care selecteaza lista cu candidatii
Actori: Client;
Postcondiții: Sistemul afișează lista cu candidatii;
Referințe încrucișate: F3.1
Flux principal:
Client Sistem
1. Selecteaza butonul pentru afisarea 2. Afișează lista candidatilor
listei candidatilor
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

3. Cazuri de test

1. Clasele de test PersoanaTest, MyTest, pentru clasa Persoana.


Date de
Id Metoda Obiectiv Date de Intrare Iesire
1 getError() Camp gol! "","","" "Camp gol!"
2 getError() Camp gol! "","p2","p2" "Camp gol!"
3 getError() Camp gol! p3,"","p3" "Camp gol!"
4 getError() Camp gol! p4,"p4","" "Camp gol!"
5 getError() CNP gresit! p5,"p5","p5" CNP gresit!
6 getError() Camp gol! p6,"","" Camp gol!
7 getError() Camp gol! "","p7","" Camp gol!
8 getError() Camp gol! "","","p8" Camp gol!
9 getError() "" "1234567890123","p9","p9" ""
10 getError() CNP gresit! "123456789012A","p9","p9" ""

2. Clasele de test CandidatTest, CandidatMyTest, pentru clasa Candidat.


Date de
Id Metoda Obiectiv Date de Intrare Iesire
1 calculeazaMedie() -1 -1, -3 -1
2 calculeazaMedie() -1 0, 0 -1
3 calculeazaMedie() 7.5 7, 8 7.5
4 calculeazaMedie() -1 10, 11 -1

3. Clasele de test ColectieCandidatiTest, ColectieCandidatiMyTest, pentru clasa


ColectieCandidat.

Id Metoda Obiectiv Date de Intrare Date de Iesire


1 cautaCandidat () Nr. Legitimatie invalid! 0 “”
2 cautaCandidat () Nr. Legitimatie invalid! 8 Nr. Legitimatie invalid!
3 cautaCandidat () Nr. Legitimatie invalid! -1 Nr. Legitimatie invalid!
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

4. Software Test Report (STR)

a) Rezultate teste:
Cazul 1: trecut 90%
Teste trecute: 9 din 10
Teste picate: 1 din 10

Cazul 2: trecut 100%


Teste trecute: 10 din 10

Cazul 3: trecut 66.67%


Teste trecute: 2 din 3
Teste picate: 1 din 3
Bug rezolvat: trecut 100% - (nrLeg<=0, nu doar nrLeg<0)

b) Valoarea unor indicatori de testare:


a) Media notelor este cuprinsă între 0 și 10. Clasele de echivalență sunt:
1) Valori<0
2) Valori între 0 și 10
3) Valori >10
Se pot alege ca date de test: -1, 2, 11
b) Numărul legitimației este mai mare decât 0.

1) Valorile limită sunt -1, 0, 1


UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

5. Rezultatele modelării și interpretării rezultatelor


testelor cu SMERFS3

Modelul Jelinski/Moranda
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

Modelul Musa
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

package concurs;

import static junit.framework.Assert.assertEquals;

import junit.framework.TestCase;

import static junit.framework.TestCase.assertEquals;

import org.junit.*;

public class CandidatTest extends TestCase{

private Candidat c1, c2, c3, c4;

@Before

public void setUp() {

c1 = new Candidat(" "," "," ");

c2 = new Candidat(" "," "," ");

c3 = new Candidat(" "," "," ");


UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

c4 = new Candidat(" "," "," ");

c1.setPrimaNota(-1);

c1.setADouaNota(-3);

c2.setPrimaNota(0);

c3.setADouaNota(0);

c3.setPrimaNota(7);

c3.setADouaNota(8);

c4.setPrimaNota(10);

c4.setADouaNota(11);

@org.junit.Test

public void testCandidat1() {

double expResult = -1;

double result = c1.calculeazaMedie();

assertEquals(expResult, result);

public void testCandidat2() {

double expResult = -1;

double result = c2.calculeazaMedie();

assertEquals(expResult, result);

public void testCandidat3() {


UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

double expResult = 7.5;

double result = c3.calculeazaMedie();

assertEquals(expResult, result);

public void testCandidat4() {

double expResult = -1;

double result = c4.calculeazaMedie();

assertEquals(expResult, result);

package concurs;

import junit.framework.*;

public class CandidatMyTest{

public static TestSuite suite() {

return new TestSuite(CandidatTest.class);

public static void main(String[] args) {

junit.textui.TestRunner.run(suite());

}
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

package concurs;

import static junit.framework.Assert.assertEquals;

import junit.framework.TestCase;

import static junit.framework.TestCase.assertEquals;

import org.junit.*;

import java.util.TreeSet;

public class ColectieCandidatiTest extends TestCase{

private ColectieCandidati cc;

private Candidat c1, c2, c3;

private int nr1, nr2, nr3;

@Before

public void setUp() {

nr1 = 0;

nr2 = 8;

nr3 = -1;

cc = new ColectieCandidati();

cc.adaugaCandidat("cnp1","nume1","prenume1");

cc.adaugaCandidat("cnp3","nume3","prenume2");

cc.adaugaCandidat("cnp3","nume3","prenume3");

@org.junit.Test

public void testCautaCandidat1() {

String expResult="Nr. Legitimatie invalid!";


UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

Candidat candidat = cc.cautaCandidat(nr1);

String result = cc.getError();

assertEquals(expResult, result);

public void testCautaCandidat2() {

String expResult="";

Candidat candidat = cc.cautaCandidat(nr2);

String result = cc.getError();

assertEquals(expResult, result);

public void testCautaCandidat3() {

String expResult="Nr. Legitimatie invalid!";

Candidat candidat = cc.cautaCandidat(nr3);

String result = cc.getError();

assertEquals(expResult, result);

package concurs;

import junit.framework.*;

public class ColectieCandidatiMyTest{

public static TestSuite suite() {

return new TestSuite(ColectieCandidatiTest.class);

}
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

public static void main(String[] args) {

junit.textui.TestRunner.run(suite());

package concurs;

import static junit.framework.Assert.assertEquals;

import junit.framework.TestCase;

import static junit.framework.TestCase.assertEquals;

import org.junit.*;

public class PersoanaTest extends TestCase{

private Persoana p1, p2, p3, p4, p5, p6, p7, p8, p9, p10;

private String nume, prenume, cnp;

@Before

public void setUp() {

nume="p9";

prenume="p9";

cnp="1234567890123";

p1 = new Persoana("","","");

p2 = new Persoana("","p2","p2");

p3 = new Persoana("p3","","p3");

p4 = new Persoana("p4","p4","");

p5 = new Persoana("p5","p5","p5");

p6 = new Persoana("p6","","");

p7 = new Persoana("","p7","");
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

p8 = new Persoana("","","p8");

p9 = new Persoana(cnp,nume,prenume);

p10 = new Persoana("123456789012A", nume, prenume);

@org.junit.Test

public void testPersoana1() {

String expResult="Camp gol!";

String result = p1.getError();

assertEquals(expResult, result);

public void testPersoana2() {

String expResult="Camp gol!";

String result = p2.getError();

assertEquals(expResult, result);

public void testPersoana3() {

String expResult="Camp gol!";

String result = p3.getError();

assertEquals(expResult, result);

public void testPersoana4() {

String expResult="Camp gol!";

String result = p4.getError();

assertEquals(expResult, result);
UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

public void testPersoana5() {

String expResult="CNP gresit!";

String result = p5.getError();

assertEquals(expResult, result);

public void testPersoana6() {

String expResult="Camp gol!";

String result = p6.getError();

assertEquals(expResult, result);

public void testPersoana7() {

String expResult="Camp gol!";

String result = p7.getError();

assertEquals(expResult, result);

public void testPersoana8() {

String expResult="Camp gol!";

String result = p8.getError();

assertEquals(expResult, result);

public void testPersoana9() {

String expResult="";

String result = p9.getError();


UNIVERSITATEA OVIDIUS DIN CONSTANTA Sîrbu Gheorghe-Florin
FACULTATEA DE MATEMATICA SI INFORMATICA Anul: II
MASTER – MODELARE SI TEHNOLOGII INFORMATICE

assertEquals(expResult, result);

assertEquals(p9.getNume(), nume);

assertEquals(p9.getPrenume(), prenume);

assertEquals(p9.getCNP(), cnp);

public void testPersoana10() {

String expResult="CNP gresit!";

String result = p10.getError();

assertEquals(expResult, result);

package concurs;

import junit.framework.*;

public class MyTest{

public static TestSuite suite() {

return new TestSuite(PersoanaTest.class);

public static void main(String[] args) {

junit.textui.TestRunner.run(suite());

You might also like