Meningkatkan kualitas Jami

Tes unit

  • Lebih sulit untuk melakukan unit-test pada proyek Jami karena kondisi ras pada ketergantungan multi-level.

  • 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

  • Sebuah sistem perlu diterapkan untuk mulai meyakinkan tim untuk melakukan unit-test untuk kode baru sebelum merger

  • Anda dapat memutarnya dengan melakukan make check di folder daemon atau secara terpisah di folder unit-test dengan gdb: gdb ut_media_encoder

  • Lingkungan harus ditetapkan dengan --disable-shared selama perintah./configure

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

Tes integrasi

  • Setiap commit melalui tes integrasi di dockers pada mesin konstruksi Anda dapat menemukan rincian di: jenkins.jami.net

  • Kode-review dilakukan oleh rekan pengembang, kadang-kadang kode-kode ditinjau oleh pengembang yang sama, ini harus dihindari untuk menekankan hukum Linus. Label Jenkins verified kadang-kadang dibuang dan digantikan oleh +1 dari pengembang, ini juga harus dihindari.

  • Sonarqube memungkinkan Jenkins membangun Jami dan memverifikasi linting. Anda dapat menemukan filter dan hasil di: sonar- jami.savoirfairelinux.net Sonar menggunakan clang-tidy sebagai kompilator linting pra-prosessor, Anda dapat menemukan filter clangs di file.clang-tidy di folder daemon.

  • On SFLVault sonarqube can be found at service m#2637 and admin logins at service s#7169

Dokter dan umpan balik:

  • Anda dapat menemukan semua dokumentasi di docs.jami.net

  • Masalah dibuat oleh pengembang atau pengguna di git.jami.net

Agent

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)

Tes asap

Sebelum setiap rilis setiap klien harus melewati daftar skenario.

Skenario yang dijelaskan di sini: [Jami asap tes]

Mereka ditinjau oleh QA dpt. sebelum mengirimnya ke pengembang jika diperlukan.

Jika rilis berisi komitmen jaringan yang telah digabungkan, departemen QA harus dapat mengotomatisasi tes konektivitas yang berbeda (seperti yang dijelaskan di bawah ini dalam konfigurasi panggilan)

Mengundang konfigurasi.

Berikut adalah daftar konfigurasi jaringan yang perlu diuji:

(IPv4 IPv6) + (TURN !TURN) + (STUN !STUN) + (UPnP !UPnP) untuk kedua belah pihak.

Jika kedua sisi hanya IPv4 tanpa TURN/STUN/UPnP, panggilan hanya harus lokal.

Apa yang perlu dilakukan

  • Menetapkan sistem dalam tim untuk memastikan pemeliharaan dan pembuatan unit-test.

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

  • Setiap fungsi baru harus diuji di setiap platform sebelum menggabungkannya untuk mengurangi regresi

  • Integrasi sonarqube pada setiap klien

  • Otomatisasi pengujian perilaku Jami pada kompatibilitas jaringan