자미 의 질 을 향상 시키기
단위 시험
자미 프로젝트에 단위 테스트를 하기에는 여러 레벨의 의존에 대한 경주 조건 때문에 더 어려워집니다.
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를 demon 폴더 또는 gdb: gdb ut_media_encoder로 단위 테스트 폴더에서 별도로 실행할 수 있습니다.
환경은./konfigurate 명령어에서 –disable-shared로 설정되어야 합니다.
Clients also have tests (cf
jami-client-qt/tests
for Desktop,jami-client-android/jami-android/app/src/androidTest
for Android)
통합 테스트
각 컴비트는 구축 기계의 도커에서 통합 테스트를 거쳐
코드 리뷰는 동료 개발자가 수행하고 있으며, 때로는 코드 검토는 동일한 개발자가 수행하고 있으며, 이는 리누스 법칙을 강조하기 위해 피해야 합니다.
Sonarqube는 Jenkins를 Jami를 구축하고 linting를 확인할 수 있게 해줍니다. 당신은 필터와 결과를 찾을 수 있습니다: sonar- jami.savoirfairelinux.net Sonar는 clang-tidy를 사전 프로세서 linting 컴파일러로 사용합니다. 당신은 daemon 폴더에서 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)
흡연 테스트
각 클라이언트가 각 시나리오를 넘어서야 합니다.
시나리오는 다음과 같다: [Jami 흡연 테스트]
필요하다면 개발자에게 보내기 전에 QA dpt이 검토합니다.
만약 버전이 통합된 네트워크 컴밋을 포함한다면, QA 디포트. (Calls 구성에서 아래와 같이) 다른 연결 테스트를 자동화할 수 있어야 합니다.
구성을 호출합니다.
이것은 테스트해야 할 네트워크 구성 목록입니다.
(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의 행동 테스트를 자동화