Zlepšenie kvality Jami

Jednotkové testy

  • Je ťažšie urobiť jednotkové testovanie projektu Jami kvôli závodným podmienkam na viacúrovňovej závislosti.

  • 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

  • Je potrebné implementovať systém, aby sme začali presvedčiť tím, aby pred fúziou vykonal jednotkové testovanie nového kódu.

  • Môžete ich spustiť pomocou make check v priečinku daemon alebo samostatne v priečinku testovacích jednotiek s gdb: gdb ut_media_encoder

  • V prostredí je potrebné nastaviť - deaktivovať-zdieľané počas príkazu./konfigurovať

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

Integrácie testy

  • Každý commit prechádza testmi integrácie v dokerách na stavebných strojeach, podrobnosti nájdete na: jenkins.jami.net

  • Code-review je vykonané spoluhráčom, niekedy je kód preskúmaný rovnakým vývojárom, to by sa malo vyhnúť zdôrazňovaniu zákona Linus.

  • Sonarqube umožňuje Jenkinsovi vytvoriť Jami a overiť linting. Môžete nájsť filtre a výsledky na: sonar- jami.savoirfairelinux.net Sonar používa clang-tidy ako predpracovateľový kompilátor linting, môžete nájsť filtre clangs v súbore.clang-tidy v priečinku daemon.

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

Doktór a spätná väzba:

  • Všetky dokumenty nájdete na docs.jami.net

  • Problémy vznikajú vývojári alebo používatelia na git.jami.net

Agentka.

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)

Testy dymu

Pred každým uvoľnením každý klient musí prejsť zoznam scenárov.

Scenáriu sú opísané tu: [Testy dymu Jami]

Sú preskúmané QA dpt. pred odoslaním do vývojárov, ak je to potrebné.

Ak vydanie obsahuje sieťový záväzok, ktorý bol zlúčený, QA dept. by mal byť schopný automatizovať rôzne testy pripojenia (ako je uvedené nižšie v konfiguráciách Volania)

Volá konfigurácie.

Toto je zoznam konfigurácií siete, ktoré sa musia otestovať:

(IPv4 √ IPv6) + (TURN √!TURN) + (STUN √!STUN) + (UPnP √!UPnP) pre obe strany.

Ak sú obe strany IPv4 len bez TURN/STUN/UPnP, hovor by mal byť len lokálny.

Čo je potrebné urobiť

  • Vytvorenie systému v rámci tímu na zabezpečenie údržby a vytvorenia jednotkových testov.

  • 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…)

  • Každá nová funkčnosť by sa mala pred zlúčením skúmať na každej platforme s cieľom znížiť regresie.

  • Integrovať sonarqube na každom klientovi

  • Automatizovať testovanie správania spoločnosti Jami na kompatibilitu s sieťami