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