Software Quality & Testing

Inregistrare spatiu de lucru Slack / Register for Slack workspace

  • 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) prin urmatorul link https://join.slack.com/t/cts-2021/signup
  • Dupa inregistrare studentii sunt rugati sa se aboneze la canalele create pentru cursul/seminarul la care vor participa (Optiunea Channles -> Browse Channels si apoi Join pe canalul dorit)

  • To allow efficient real-time communication, the exchange of messages will be done through the Slack platform
  • Students participating in this course / seminar are asked to register using the institutional e-mail address (@ stud.ase.ro) via the following link https://join.slack.com/t/cts-2021/signup
  • After registration, students are asked to subscribe to the channels created for the course / seminar they will attend (Option Channles -> Browse Channels and then Join on the desired channel)

CTS 2020-2021

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 puncte din 5 pe parcursul semestrului.

Resurse necesare:

  • acces la online.ase.ro (la curs sau la seminar) deoarece informatiile cu privire la modalitatea de derulare a activitatilor vor fi publicate pe platforma
  • o conexiune la Internet de rezerva (prin intermediul datelor mobile)
  • telefonul/laptopul/pc-ul folosit are o sursa de alimentare care sa ii asigure functionarea pentru cel putin 2 ore.
  • camera web si microfon integrate in laptop/monitor/PC sau camera web si microfon externe (Atentie ! Telefonul mobil poate fi utilizat pe post de camera web si microfon)
  • client Zoom

Software necesar:

  • un mediu preferat de dezvoltare Java ( Eclipse, NetBeans, VS Code, IntelliJ, etc)
  • Open JDK minim 9
  • 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

Desfasurare activitati online

In semestrul 2, anul universitar 2020-2021 activitatile de curs si seminar se vor desfasura online prin utilizarea platformei online.ase.ro dar si a altor solutii care sa ne permita sa ramanem in contact (Zoom, Google Meet, Teams, Slack).

Toate activitatile se vor desfasura conform orarului normal (inclusiv activitatile programate dimineata devreme). In cadrul acestei discipline, pe langa platforma online.ase.ro vom utiliza si solutia de la www.Zoom.us pentru a organiza intalniri virtuale.

Pentru a pregati activitatile programate in perioada urmatoare va rog:

  • sa verificati ca aveti acces la platforma online.ase.ro si la adresa de email institutionala (Instructiuni activare cont de e-mail contIDM@stud.ase.ro) . Pentru orice problema va rog sa contacta?i Direc?ia TIC prin it-suport@ase.ro
  • sa aveti pregatite o pereche de casti audio cu microfon
  • sa va inregistrati pe canalul Slack al cursului folosind adresa de email institutionala (in domeniul @stud.ase.ro) (link in meniul din dreapta sau https://join.slack.com/t/cts-2020/signup)
  • sa aveti pregatit laptop-ul/PC-ul cu mediul de dezvoltare necesar derularii laboratoarelor (JDK minim 9, Eclipse/IntelliJ/NetBeans/VS Code)

Suplimentarstudentii din ani suplimentar care refac cursul, trebuie

  • sa va inregistrati la un curs pe platforma online.ase.ro: Cursul coordonat de Alin Zamfiroiu (cod ), Cursul coordonat de Catalin Boja (cod 8920), Cursul in Engleza coordonat de Catalin Boja (cod 1892), Cursul coordonat de Bogdan Iancu (cod )
  • sa participati la seminar si sa solicitati inregistrarea pe online.ase.ro la acel seminar

Inainte de fiecare activitate, va vom transmite invitatia pentru conferinta Zoom pe platforma online.ase.ro (vom publica un anunt pentru saptamana respectiva) si pe Slack

Activitatile se vor derula live si din acest motiv va rugam sa participati activ:

  • sa implementati exemplele de la laborator
  • sa raspundeti la intrebari
  • sa interveniti in timpul prezentarii si sa puneti intrebari

Pe durata activitatilor de la curs/seminar vor avea loc teste grila si se va solicita studentilor sa implementeze anumite cerinte. Toate aceste activitati vor fi incluse in evaluarea de pe parcurs.

Pentru orice intrebare/problema, va rog sa folositi canalul Slack dedicat cursului sau sa transmiteti mesaj de pe platforma online.ase.ro.

Studentii care refac activitatile de la seminar/Students that retake the course and the 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.

For English classes: Additional year students are asked to come to the 3rd year laboratory to enroll on the online.ase.ro. They can choose the 3rd year group at which they want to redo the lab activities (homeworks, and lab test). The registration code will be introduced by the coordinating professor during the laboratory and it will not be published online.

Studentii din anul 3 (reinmatriculati) si anul suplimentar care refac activitatile de la disciplina de Calitate si Testare Software în anul universitar 2020-2021 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

For English classes: Students in the suplimentary year that redo activities for the Quality and Software Testing discipline in the academic year 2020-2021 are asked to chose a course and and a seminar at which they will participate and then to announce the seminar coordinator (to register them on online.ase.ro). Thus, we can ensure that they are properly allocated to groups and that each student has access to a workstation.

Fisa disciplina/Course content

Fisa disciplinei poate fi consultata la adresa https://fisadisciplina.ase.ro/SelectDisciplina.aspx?IDD=4642&IDF=7

The course curricula cand be verified at https://fisadisciplina.ase.ro/SelectDisciplina.aspx?IDD=4674&IDF=7 

Echipa curs si seminar in 2020-2021

Evaluare seminar

  • testul la seminar se desfasoara in saptamanile 8 - 10 din semestru; 
  • 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
  • Structurale: Adapter, Composite, Decorator, Façade, Flyweight, Proxy
  • Comportamentale: Strategy, Observer, Chain of Responsibility, Command, Memento, State, Template
  • 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 8 - 10; 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 15% din nota finala;
  • activitate pe parcursul semestrului la curs (teste grila, participari active la curs, etc) ce au o pondere de 5% din nota finala;
  • test grila in saptamana 14 din toata materia ce are 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
  • conditie de intrare in examen (sesiunea normala): obtinerea a minim 2 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 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.