Îmbunătăţirea calităţii Jami

Testele unități

  • Este mai dificil să faci testare unitară pe proiectul Jami din cauza condițiilor de cursă pe dependență la mai multe niveluri.

  • We use lcov for the coverage, you can find the lcov’s configuration in the daemon’s Makefile.am. Also, the coverage can be found at https://docs.jami.net/coverage/ and https://dl.jami.net/docs/dhtnet/coverage

  • Trebuie implementat un sistem pentru a începe să convingă echipa să facă un test unitare pentru un nou cod înainte de fuziune

  • Puteți să le lansați făcând make check în dosarul deemon sau separat în dosarul de testare unitară cu gdb: gdb ut_media_encoder

  • Mediul trebuie setat cu –disable-shared în timpul comenzii./configure

  • Clients also have tests (cf jami-client-qt/tests for Desktop, jami-client-android/jami-android/app/src/androidTest for Android)

Teste de integrare

  • Fiecare comit trece prin teste de integrare în docare pe mașinile de construcție puteți găsi detaliile la: jenkins.jami.net

  • Codul este revizuit de un dezvoltator, uneori codul este revizuit de același dezvoltator, acest lucru ar trebui evitat pentru a sublinia legea Linus. Eticheta Jenkins verificat este uneori aruncată și înlocuită cu +1 de la un dezvoltator, acest lucru ar trebui, de asemenea, evitat.

  • Sonarqube permite lui Jenkins să construiască Jami și să verifice lințarea. Puteți găsi filtre și rezultate la: sonar- jami.savoirfairelinux.net Sonar utilizează clang-tidy ca preprocesor lințarea compilator, puteți găsi filtre clangs în fișierul.clang-tidy în dosarul daemon.

  • On SFLVault sonarqube can be found at service m#2637 and admin logins at service s#7169

Doc şi feedback:

  • Puteţi găsi toate documentele pe docs.jami.net

  • Problemele sunt formulate de dezvoltatori sau utilizatori pe git.jami.net

Agentul.

Every night, hundred of calls are tested via 2 Agents and a message is posted every morning in the chat with the result (if all call succeeded or not)

Teste de fum

Înainte de fiecare eliberare fiecare client trebuie să treacă de o listă de scenarii.

Scenariile sunt descrise aici: [Teste de fum Jamie]

Acestea sunt revizuite de QA dpt. înainte de a le trimite dezvoltatorilor, dacă este necesar.

Dacă o versiune conține un compromis de rețea care a fost fuzionat, departamentul de calificare ar trebui să poată automatiza diferitele teste de conectivitate (cum este descris mai jos în configurările de apeluri)

Chema configuraţii.

Aceasta este lista configurărilor de rețea care trebuie testate:

(IPv4 IPv6) + (TURN !TURN) + (STUN !STUN) + (UPnP !UPnP) pentru ambele părți.

Dacă ambele părți sunt IPv4 numai fără TURN/STUN/UPnP, apelul trebuie să fie doar local.

Ce trebuie făcut

  • Înființarea unui sistem în cadrul echipei pentru a asigura întreținerea și crearea de teste unitare.

  • Each major functionality should be tested as whole by adding a test (i.e. making sure a message was received, the call was ended well on both side, etc…)

  • Fiecare caracteristică nouă ar trebui testată pe fiecare platformă înainte de a fi unită, pentru a reduce regresul

  • Integrarea sonarcube pe fiecare client

  • Automatizați testarea comportamentului Jami pe compatibilitatea rețelei