Улучшение качества 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 в папке даемона или отдельно в папке единичного теста с 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 позволяет Дженкинсу создавать Jami и проверять линтинги. Вы можете найти фильтры и результаты на: sonar- jami.savoirfairelinux.net Sonar использует clang-tidy в качестве компилятора линтинга предпроцессора, вы можете найти фильтры 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. перед отправкой их разработчикам, если это необходимо.

Если в релизе есть сетевой коммит, который был слиян, отдел QA должен быть в состоянии автоматизировать различные тесты подключения (как описано ниже в конфигурациях Звонов)

Позвони конфигурации.

Это список конфигураций сети, которые должны быть протестированы:

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

  • Каждая новая функциональность должна быть протестирована на каждой платформе перед ее слиянием для снижения регрессии.

  • Интегрировать сонаркв на каждом клиенте

  • Автоматизировать тестирование поведения Jami на совместимость сетей