Förbättring av Jami-kvaliteten

Enhetsprov

  • Det är svårare att göra enhetstest på Jami-projektet på grund av rasvillkoren på flernivåberoende.

  • 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

  • Ett system måste implementeras för att övertyga teamet att göra en enhetstest för ny kod innan man slås samman

  • Du kan starta dem genom att göra make check i daemon-mappen eller separat i enhetstestmappen med gdb: gdb ut_media_encoder

  • Miljön måste inställas med –disable-shared under kommandan./configure

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

Integrationsprov

  • Varje commit går igenom integrationsprov i dockers på byggmaskiner du kan hitta detaljerna på: jenkins.jami.net

  • Kodrecension görs av en medutvecklare, ibland granskas koden av samma utvecklare, detta bör undvikas för att betona Linus lag.

  • Sonarqube låter Jenkins bygga Jami och verifiera linting. Du kan hitta filter och resultat på: sonar- jami.savoirfairelinux.net Sonar använder clang-tidy som en förprocessor linting compilator, du kan hitta clangs filter i.clang-tidy fil i daemon mappen.

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

Doktor och feedback:

  • Du hittar all dokumentation på docs.jami.net

  • Problem ställs av utvecklare eller användare på git.jami.net

Agent

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)

Rökprov

Innan varje release måste alla klienter gå igenom en lista över scenarier.

Scenarier beskrivs här: [Jami rökprov]

De granskas av QA dpt. innan de skickas till utvecklarna om det behövs.

Om en release innehåller ett nätverkskommit som har fusionerats, ska QA-departementet kunna automatisera de olika anslutningsprovningarna (som beskrivs nedan i Calls-konfigurationerna).

Calls configurations.

Detta är en lista över nätverkskonfigurationer som måste testas:

(IPv4! IPv6) + (TURN!!TURN) + (STUN!!STUN) + (UPnP!! UPnP) för båda sidor.

Om båda sidor är IPv4 endast utan TURN/STUN/UPnP, ska samtalet endast vara lokal.

Vad som måste göras

  • Inrätta ett system inom teamet för att säkerställa underhåll och skapande av enhetstester.

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

  • Varje ny funktion bör testas på varje plattform innan den fusioneras för att minska regressionen.

  • Integrera sonarqube på varje klient

  • Automatisera provningen av Jamis beteende på nätverkskompatibilitet