Jami’nin kalitesini artırmak
Birim testleri
Jami projesinde birim testi yapmak çok seviyeli bağımlılık üzerindeki yarış koşulları nedeniyle daha zor.
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
Birleştirmeden önce yeni kod için birim testi yapmaları için ekibini ikna etmeye başlamak için bir sistem uygulanmalıdır.
Onları daemon klasöründe veya gdb ile birim test klasöründe ayrı olarak make check yaparak başlatabilirsiniz: gdb ut_media_encoder
Çevre./configure komut sırasında –disable-shared ile ayarlanmalıdır
Clients also have tests (cf
jami-client-qt/tests
for Desktop,jami-client-android/jami-android/app/src/androidTest
for Android)
Entegre testleri
Her commit, inşaat makinelerindeki dokerlerde entegrasyon testlerinden geçiyor. Detayları jenkins.jami.net adresinde bulabilirsiniz.
Kod incelemesi bir diğer geliştiriciden yapılır, bazen kod aynı geliştiriciden incelenir, bu Linus yasasını vurgulamak için kaçınmalıdır.
Sonarqube, Jenkins’in Jami’yi oluşturmasına ve linting’i doğrulamasına izin verir. Filtreleri ve sonuçları şu adreste bulabilirsiniz: sonar- jami.savoirfairelinux.net Sonar, clang-tidy’yi bir preprocessor linting kompiliyatörü olarak kullanır.
On SFLVault sonarqube can be found at service m#2637 and admin logins at service s#7169
Doktor ve geri bildirim:
Tüm belgeleri docs.jami.net’te bulabilirsiniz.
Git.jami.net’te geliştiriciler veya kullanıcılar tarafından sorular sorulur
Ajan.
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)
Duman testi
Her bir müvekkilimiz serbest bırakılmadan önce bir senaryo listesi geçmelidir.
Scenariler burada açıklanıyor: [Jami duman testleri]
Gerekirse geliştiricilere göndermeden önce, QA dpt tarafından incelenir.
Bir yayın birleşmiş bir ağ commit içerirse, QA departmanı farklı bağlantı testlerini otomatikleştirebilmelidir (aşağıdaki çağrı yapılandırmalarında açıklandığı gibi)
Çağrı konfigürasyonları.
Bu, test edilmesi gereken ağ yapılandırmalarının listesidir:
(IPv4 IPv6) + (TURN !TURN) + (STUN !STUN) + (UPnP !UPnP) her iki taraf için.
Her iki taraf da sadece TURN/STUN/UPnP olmadan IPv4 ise, arama sadece yerel olmalıdır.
Yapılması gerekenler
Birim testlerinin bakımını ve oluşturulmasını sağlamak için takım içinde bir sistem oluşturun.
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…)
Her yeni işlev, gerilemeyi azaltmak için birleşmeden önce her platformda test edilmelidir.
Her müşteriye sonarqube entegre
Jami’s’in ağ uyumluluğu üzerinde davranış testini otomatikleştir