Izboljšanje kakovosti Jamija

Enotni testi

  • Težko je narediti enotni test na projektu Jami zaradi pogojev dirke na večni ravni odvisnosti.

  • 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

  • Za začetek prepričanja ekipe, da naredi enotni test za novo kodo, preden se združi, je treba vzpostaviti sistem.

  • Lahko jih sprožite z make check v mapi daemon ali ločeno v mapi testov enot z gdb: gdb ut_media_encoder

  • Okolje je treba nastaviti z –de-shared med ukazom./configure

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

Integrativni testi

  • Vsak od njih poteka skozi integracijske teste v dokerjih na gradbenih strojih. Podrobnosti najdete na: jenkins.jami.net

  • Kode-preiskovanje opravi kolega razvijalca, včasih je kodo pregleda enaki razvijalka, to je treba izogniti, da bi poudaril Linus zakon.

  • Sonarqube omogoča Jenkins graditi Jami in preveriti linting. Filtre in rezultate lahko najdete na: sonar- jami.savoirfairelinux.net Sonar uporablja clang-tidy kot predprocesor linting kompilator, lahko najdete clangs filtre v.clang-tidy datoteki v mapi daemon.

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

Zdravnik in povratna informacija:

  • Vse dokumentacijo najdete na docs.jami.net

  • Težave postavijo razvijalci ali uporabniki 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)

Preskusi za dim

Preden vsak od njih izpusti, morajo vsi klienti preiti seznam scenarijev.

Scenariji so opisani tukaj: [Jami dim testovi]

Preverjajo jih QA dpt. preden jih pošljejo razvijalcem, če je potrebno.

Če je v izdaji vključen omrežni commit, ki je bil združen, mora biti QA dept. sposoben avtomatizirati različne teste povezljivosti (kot je opisano spodaj v konfiguracijah klicev)

Pokliče nastavitve.

To je seznam konfiguriranj omrežja, ki jih je treba preizkusiti:

(IPv4! IPv6) + (TURN!!TURN) + (STUN!!STUN) + (UPnP!! UPnP) za obe strani.

Če sta obe strani samo IPv4 brez TURN/STUN/UPnP, je klic samo lokalen.

Kaj je treba storiti

  • Ustvariti sistem v ekipi za zagotavljanje vzdrževanja in ustvarjanja enotnih 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…)

  • Vsaka nova funkcionalnost bi morala biti testirana na vsaki platformi pred združitvijo, da se zmanjša regres

  • Integrira sonarqube na vsakem stranku

  • Automatizirati testiranje vedenja Jami na združljivost omrežja