Forbedring af Jami’s kvalitet
Enhedsprøver
Det er sværere at foretage enhedstest på Jami-projektet på grund af racevilkårene på flerniveau afhængighed.
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
Der skal implementeres et system for at overbevise holdet om at foretage en enhedstest på ny kode, før fusion
Du kan starte dem ved at gøre make check i daemon mappen eller separat i enhedstest mappen med gdb: gdb ut_media_encoder
Omgivningen skal indstilles med –disable-shared under kommandoen./configure
Clients also have tests (cf
jami-client-qt/tests
for Desktop,jami-client-android/jami-android/app/src/androidTest
for Android)
Integrationsprøver
Hver commit gennemgår integrationsprøver i dockere på byggemaskiner.
Code-overvågning foretages af en medudvikler, nogle gange kode gennemgås af den samme udvikler, dette bør undgås for at understrege Linus lov.
Sonarqube lader Jenkins bygge Jami og verificere linting. Du kan finde filtre og resultater på: sonar- jami.savoirfairelinux.net Sonar bruger clang-tidy som en præprocessor linting compiler, du kan finde clangs filtre i.clang-tidy fil i daemon mappe.
On SFLVault sonarqube can be found at service m#2637 and admin logins at service s#7169
Doc and feedback:
Du kan finde alle dokumentation på docs.jami.net
Problemer er stillet af udviklere eller brugere 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øgprøver
Før hver af dem udleveres, skal alle klienter gå forbi en liste over scenarier.
Scenarier er beskrevet her: [Jami-røgtester]
De gennemgås af QA dpt. før de sendes til udviklerne, hvis det er nødvendigt.
Hvis en udgivelse indeholder et netværkskommit, der er blevet fusioneret, skal QA-afdelingen kunne automatisere de forskellige forbindelsestester (som beskrevet nedenfor i opkaldskonfigurationer).
Calls configurations.
Dette er listen over netkonfigurationer, der skal testes:
(IPv4! IPv6) + (TURN!!TURN) + (STUN!!STUN) + (UPnP!! UPnP) for begge sider.
Hvis begge sider kun er IPv4 uden TURN/STUN/UPnP, skal opkaldet kun være lokalt.
Hvad der skal gøres
Indføre et system i holdet for at sikre vedligeholdelse og oprettelse af enhedstester.
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…)
Hver ny funktion bør testes på hver platform, før den fusioneres for at reducere regression.
Integrere sonarqube på hver klient
Automatisere testen af Jamis adfærd på netværkskompatibilitet