Подобряване на качеството на 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 върху мрежовата съвместимост