Software Quality & Testing

Information for English students

Students from the English Economic Informatics course can get this information from the English version of this page

Inregistrare spatiu de lucru Slack 

  • Pentru a permite o comunicare in timp real eficienta, schimbul de mesaje se va face prin intermediul platformei Slack
  • Studentii care participa la acest curs/seminar sunt rugati sa se inregistreze folosind adresa de email institutionala (@stud.ase.ro) https://join.slack.com/t/iects2024/signup
  • Dupa inregistrare studentii sunt rugati sa se aboneze la canalele create pentru cursul/seminarul la care vor participa (Optiunea Channels -> Browse Channels si apoi Join pe canalul dorit)

CTS 2023-2024

Atentie ! Conform regulilor anuntate in cadrului primului curs (reguli prezente si in fisa disciplinei), sustinerea examenului in sesiunea normala este posibila doar daca studentii au acumulat 2.5 puncte din 5 pe parcursul semestrului.

Software necesar:

  • un mediu preferat de dezvoltare Java ( Eclipse, NetBeans, VS Code, IntelliJ, etc)
  • Open JDK minim 11
  • JUnit 3, 4 sau 5 - https://junit.org/ (este deja instalat in anumite medii de dezvoltare
  • un client de Git integrat in mediul de dezvoltare

Cunostinte necesar:

  • Dezvoltare aplicatii Java de tip consola: utilizare mediu de dezvoltare (IDE), compilare, build si debug
  • Programare Orientata Obiect in Java: clase, clase abstracte si interfete, derivare, mecanismul de tratare a exceptiilor (try-catch) si colectii standard

Studentii care refac activitatile de la seminar

Studentii din anul suplimentar sunt rugati sa treaca pe la seminar (cel putin o data) pentru a se inregistra pe platforma online.ase.ro la grupa cu care vor recupera seminarul. Codul de inregistrare va fi introdus de profesorul coordonator in timpul seminarului si nu va fi publicat online.

Studentii din anul 3 (reinmatriculati) si anul suplimentar care refac activitatile de la disciplina de Calitate si Testare Software în anul universitar 2023-2024 sunt rugati sa isi aleaga o grupa si un curs la care vor participa si sa anunte profesorul de seminar pentru a fi inregistrati pe online.ase.ro

Suplimentarstudentii din ani suplimentar care refac cursul, trebuie

  • sa se inregistreze la un curs pe platforma online.ase.ro: Cursul coordonat de Alin Zamfiroiu (cod ), Cursul in Engleza coordonat de Catalin Boja (cod 8193), Cursul coordonat de Bogdan Iancu (cod ), , Cursul coordonat de Doinea Madalina (cod )
  • sa participati la seminar si sa solicitati inregistrarea pe online.ase.ro la acel seminar

 

Fisa disciplina

Fisa disciplinei poate fi consultata la adresa https://fisadisciplina.ase.ro/Default.aspx?IDD=81200&IDF=7&IDL=RO

The course curricula cand be verified at https://fisadisciplina.ase.ro/Default.aspx?IDD=81200&IDF=7&IDL=EN

Echipa curs si seminar in 2023-2024

Evaluare seminar

  • testele de la seminar (2 teste practice) se desfasoara in saptamanile 6 - 8 din semestru, respectiv 10 - 12; 
  • implementarea de design pattern-uri pentru un scenariu dat
  • scopul testului este de a evalua gradul de intelegere privind utilitatea si modalitatea de implementare a design pattern-urilo. Subiectul se va implementa in Java utilizand mediul Eclipse, NetBeans, VS Code sau IntelliJ.
  • Creationale: Simple Factory si Factory Method, Builder,Singleton, Prototype (testul 1)
  • Structurale: Adapter, Composite, Decorator, Façade, Flyweight, Proxy (testul 2)
  • Comportamentale: Strategy, Observer, Chain of Responsibility, Command, Memento, State, Template (testul 2)
  • teste grila sustinut in cadrul seminariilor ; testele se sustin online in cadrul seminarului programat pentru fiecare grupa

Evaluare curs

Modalitatea de calcul a notei finale este:

SEMINAR (pondere nota finala 50%):

  • test practic la calcultator in saptamanile 7 - 8; data exacta va fi stabilita de catre studenti impreuna cu profesorul de seminar; testul are o pondere de 20% din nota finala;
  • test practic la calcultator in saptamanile 10 - 12; data exacta va fi stabilita de catre studenti impreuna cu profesorul de seminar; testul are o pondere de 20% din nota finala;
  • activitate pe parcursul semestrului la seminar (teme, teste grila, participari active la seminar, etc) ce au o pondere de 10% din nota finala;

EXAMEN (pondere nota finala 50%):

  • evaluare la calculator / test grila / test cu intrebari deschise ce vor acoperi toata materia
  • conditiile minime pentru promovarea examenului: nota minima 5 (nota din examen nu se rotunjeste)
  • conditie de intrare in examen (sesiunea normala): obtinerea a minim 2.5 puncte din cele aferente activitatilor de la seminar (maxim 5 puncte); in sesiunea de restante examenul poate fi sustinut de oricine insa punctajul din timpul semestrului se pastreaza si are aceeasi pondere de 50% din nota finala

OBTINEREA A MINIM 2.5 PUNCTE DIN ACTIVITATILE DERULATE PE PARCURSUL SEMINARULUI (Total 5 puncte) REPREZINTA CONDITIE DE INTRARE IN EXAMEN. COPIEREA SOLUTIEI DE LA LUCRARE, A ORICAREI TEME SAU A PROIECTULUI IMPLICA ANULAREA TUTUROR PUNCTELOR DE LA SEMINAR SI PIERDEREA DREPTULUI DE A SUSTINE EXAMENUL IN SESIUNEA NORMALA.

Organizare curs

Structura materiei pe cursuri:

  1. Principii privind scrierea codului sursa - Clean Code + Gestiunea versiunilor codului sursa - Git, SVN
  2. Principii privind scrierea codului sursa - Clean Code
  3. Principii privind scrierea codului sursa - Clean Code
  4. Design Patterns: Singleton, Simple Factory,
  5. Design Patterns: Factory Method, Abstract Factory, Prototype
  6. Design Patterns: Builder, Adapter, Facade
  7. Design Patterns: Proxy, Composite, Chain of Responsability
  8. Design Patterns: Decorator, Flyweight, Chain of Responsability
  9. Design Patterns: Command, Observer, State
  10. Design Patterns: Strategy, Memento, Template
  11. Unit Testing - JUnit
  12. Unit Testing - JUnit
  13. Unit Testing - JUnit
  14. Concepte privind calitatea software - metrici, indicatori, instrumente (utilizare Sonar pentru analiza statica)

Bibliografie:

  • Madalina Zurini, Alin Zamfiroiu - Calitate si testare software. Studii de caz, Editura ASE, 2017
  • Scott Chacon, Bean Straub - Pro Git, 2nd edition, Apress, 2014, disponibila online la adresa http://git-scm.com/book/en/v2
  • Robert C. Martin - Clean Code, A Handbook of Agile Software Craftsmanship, Prentice Hall, 2009
  • Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995 (link Google books)
  • Steve Holzner - Design Patterns for Dummies, Wiley, 2006
  • Lasse Koskela - Effective Unit Testing, Manning, 2013
  • Lasse Koskela - Practical TDD and Acceptance TDD for Java Developers, Manning, 2007
  • Alasdair Allan - Pragmatic Unit Testing in Java with JUnit, The Pragmatic Programmers, 2004
  • http://git-scm.com/docs
  • https://try.github.io at Code School 

Teme si proiect (activitati suplimentare facultative)

Modul de evaluare a temelor si a proiectului:

  1. temele se realizeaza individual;
  2. cerintele fiecarei teme vor fi publicate; 
  3. proiectul propus ca solutie trebuie sa fie functional;
  4. proiectul care implementeaza pattern-urile si Unit testele poate fi dezvoltat in orice limbaj de programare;
  5. temele se predau/se sutin la o data stabilita cu profesorul de la laborator;
  6. evaluarea consta in prezentarea si exemplificarea pattern-urilor implementate, precum si in rularea testelor automate; orice eroare sau intrerupere neasteptata a aplicatiei conduce la depunctare;
  7. copierea solutiei implica anularea punctajului de la seminar.

Documentatie teme (in functie de cerinte):

  1. Definirea si justificarea pattern-urilor implementate 
  2. Definirea si detalierea metodelor testate prin Unit Testing 
  3. Definirea si descrierea Test Case-urilor
  4. Definirea si descrierea Test Suite-ului
  5. Descrierea sumara a functiilor aplicatiei cu referire la pattern-uri si la metodele testate
  6. Proiectul de Unit Testing (doar acesta) se incarca pe Git intr-un repository care este public la data sustinerii temei

Documentatie contine obligatoriu pagina de titlu, cuprins, bibliografie si are informatia structurata pe capitole. Documentatia se preda in format electronic la fiecare faza.