Подобряване на качеството на Jami
Проби на единица
Трудно е да се направи единичен тест на проекта Jami поради състезателните условия на многоуровнева зависимост.
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
Трябва да се приложи система, за да започне да убеждава екипа да направи тест за нов код преди сливането
Можете да ги стартирате, като направите make check в папката на даемън или отделно в папката на тест на единица с gdb: gdb ut_media_encoder
Околната среда трябва да бъде зададена с –disable-shared по време на командата./configure
Clients also have tests (cf
jami-client-qt/tests
for Desktop,jami-client-android/jami-android/app/src/androidTest
for Android)
Проби за интегриране
Всеки ангажимент се провежда чрез тестове за интеграция в докери на строителните машини, детайлите на които можете да намерите на: jenkins.jami.net
Кодът се преразглежда от сътрудник разработчик, понякога кода се преразглежда от същия разработчик, това трябва да се избягва, за да се подчертае законът на Linus.
Sonarqube позволява на Jenkins да изгради Jami и да провери linting. Можете да намерите филтри и резултати на: sonar- jami.savoirfairelinux.net Sonar използва clang-tidy като предпроцесорски компилатор linting, можете да намерите clangs филтри в файла.clang-tidy в папката daemon.
On SFLVault sonarqube can be found at service m#2637 and admin logins at service s#7169
Докторе и обратна връзка:
Всички документи могат да бъдат намерени на docs.jami.net
Проблемите са поставени от разработчици или потребители на git.jami.net
Агент, моля.
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)
Проби на дим
Преди да пуснат всеки клиент трябва да премине през списък с сценарии.
Сценарии са описани тук: [тести на дым от джами]
Те се преразглеждат от QA dpt. преди да ги изпратят на разработчиците, ако е необходимо.
Ако изданието съдържа сетков ангажимент, който е бил обеден, отделът по качество трябва да може да автоматизира различните тестове за свързаност (както е описано по-долу в конфигурациите на повикванията)
Обажда се на конфигурации.
Това е списъкът с мрежовите конфигурации, които трябва да бъдат тествани:
(IPv4 √ IPv6) + (TURN √!TURN) + (STUN √!STUN) + (UPnP √!UPnP) за двете страни.
Ако и двете страни са само IPv4 без TURN/STUN/UPnP, обаждането трябва да бъде само локално.
Какво трябва да се направи
Създаване на система в екипа, която да гарантира поддръжката и създаването на тестове на единици.
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…)
Всяка нова функционалност трябва да бъде тествана на всяка платформа преди да бъде обединена с нея, за да се намали регресията.
Интегрира Sonarqube на всеки клиент
Автоматизиране на тестването на поведението на Jami върху мрежовата съвместимост