Millorar la qualitat de Jami
Ensaios unitaris
És més difícil fer un test unitari en el projecte Jami a causa de les condicions de carrera en la dependència de múltiples nivells.
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
Cal implementar un sistema per començar a convencer l’equip de fer una prova unitària per a un nou codi abans de fusionar
Pots llançar-les fent make check en la carpeta de daemon o separatment en la carpeta de proves unitàries amb gdb: gdb ut_media_encoder
L’entorn ha de ser establert amb –disable-shared durant el comandament./configure
Clients also have tests (cf
jami-client-qt/tests
for Desktop,jami-client-android/jami-android/app/src/androidTest
for Android)
Ensaios d’integració
Cada comit passa per proves d’integració en dockers en les màquines de construcció que podeu trobar els detalls a: jenkins.jami.net
La revisió del codi es fa per un altre desenvolupador, a vegades el codi és revisat pel mateix desenvolupador, això s’ha de evitar per enfatizar la llei Linus.
Sonarqube permet a Jenkins construir Jami i verificar l’enllaç. Pots trobar filtres i resultats a: sonar- jami.savoirfairelinux.net Sonar utilitza clang-tidy com a compilador de preprocesador de l’enllaç, pots trobar filtres de clangs en el fitxer.clang-tidy en la carpeta de demons.
On SFLVault sonarqube can be found at service m#2637 and admin logins at service s#7169
Doc i la retroalimentació:
Pots trobar tota la documentació en docs.jami.net
Els problemes són plantejats pels desenvolupadors o usuaris en git.jami.net
Agents.
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)
Anàlisi de fum
Abans de que cada sol·licitant cada client ha de passar per una llista de escenaris.
Aquí es descriuen escenaris: [Jami fum tests]
Els revisen QA dpt. abans de enviar-los als desenvolupadors si és necessari.
Si una versió conté un compromés de xarxa que ha estat fusionat, el departament de QA ha de ser capaç d’automatizar les diferents proves de connectivitat (com es descobreix a continuació en configuracions de trucades)
Consulta configuracions.
Aquesta és la llista de configuracions de xarxa que han de ser testades:
(IPv4 IPv6) + (TURN !TURN) + (STUN !STUN) + (UPnP !UPnP) per a les dues parts.
Si ambdós costats són IPv4 només sense TURN/STUN/UPnP, l’anomenament ha de ser local.
Què cal fer
Estableix un sistema dins de l’equip per assegurar el manteniment i la creació de proves unitàries.
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…)
Cada nova funcionalitat ha de ser testada en cada plataforma abans de fusionar-la per reduir la regresió
Integrar sonarqube en cada client
Automatizar la prova del comportament de Jamis sobre la compatibilitat de la xarxa