提高贾米的质量

单体测试

  • 由于在多级依赖的竞赛条件,

  • 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

  • 需要实施一个系统,才能开始说服团队在合并之前进行新代码的单元测试.

  • 您可以通过在 daemon文件中或单元测试文件中进行makecheck启动:

  • 环境需要在./configure命令中设置为 –disable-shared

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

集成测试

  • 每个提交都通过了构建机器的码头进行集成测试.

  • 代码审查由开发人员进行,有时代码由同一个开发人员进行审查,这应该避免强调Linus法. 詹金斯验证标签有时被丢弃并被开发人员替换为+1,这也应该被避免.

  • 索纳库让詹金斯构建Jami并验证接.你可以在:sonar- jami.savoirfairelinux.net找到过器和结果.索纳使用clang-tidy作为预处理器接编译器,你可以在.clang-tidy文件中找到clangs过器.

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

烟雾测试

在每个客户发布之前,每个客户都必须通过一列情景.

根据”米烟雾测试”的情况,

在需要时,他们会被QAD进行审查,然后向开发人员发送.

如果发布包含已合并的网络提交,QA部门应该能够自动化不同的连接测试 (如下所述的呼叫配置)

调用配置.

需要测试的网络配置列表:

现在我们要做什么?

如果双方只使用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行为测试