Cải thiện chất lượng của Jami
Các thử nghiệm đơn vị
Thật khó khăn hơn để thực hiện thử nghiệm đơn vị trên dự án Jami vì điều kiện đua trên sự phụ thuộc nhiều cấp độ.
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
Một hệ thống cần được triển khai để bắt đầu thuyết phục nhóm làm một thử nghiệm đơn vị cho mã mới trước khi sáp nhập
Bạn có thể khởi động chúng bằng cách thực hiện make check trong thư mục daemon hoặc riêng biệt trong thư mục unit-test với gdb: gdb ut_media_encoder
Môi trường cần được thiết lập với - disable-shared trong lệnh./configure
Clients also have tests (cf
jami-client-qt/tests
for Desktop,jami-client-android/jami-android/app/src/androidTest
for Android)
Các thử nghiệm tích hợp
Mỗi commit trải qua các thử nghiệm tích hợp trong các máy đóng tàu trên máy xây dựng bạn có thể tìm thấy chi tiết tại: jenkins.jami.net
Việc đánh giá mã được thực hiện bởi một nhà phát triển đồng nghiệp, đôi khi mã được xem xét bởi cùng một nhà phát triển, điều này nên tránh để nhấn mạnh luật Linus.
Sonarqube cho phép Jenkins xây dựng Jami và xác minh linting. Bạn có thể tìm thấy các bộ lọc và kết quả tại: sonar- jami.savoirfairelinux.net Sonar sử dụng clang-tidy như một bộ sưu tập preprocessor linting, bạn có thể tìm thấy các bộ lọc clangs trong tệp.clang-tidy trong thư mục daemon.
On SFLVault sonarqube can be found at service m#2637 and admin logins at service s#7169
Bác sĩ và phản hồi:
Bạn có thể tìm thấy tất cả các tài liệu trên docs.jami.net
Các vấn đề được đưa ra bởi các nhà phát triển hoặc người dùng trên 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)
Kiểm tra khói
Trước khi mỗi bản phát hành, mọi khách hàng phải vượt qua một danh sách kịch bản.
Các kịch bản được mô tả ở đây: Jami smoke tests
Chúng được QA dpt xem xét trước khi gửi cho các nhà phát triển nếu cần thiết.
Nếu một bản phát hành chứa một liên kết mạng đã được sáp nhập, bộ phận QA nên có thể tự động hóa các thử nghiệm kết nối khác nhau (như được mô tả dưới đây trong cấu hình Calls)
Calls configurations.
Đây là danh sách các cấu hình mạng cần được kiểm tra:
(IPv4 IPv6) + (TURN !TURN) + (STUN !STUN) + (UPnP !UPnP) cho cả hai bên.
Nếu cả hai bên chỉ là IPv4 mà không có TURN/STUN/UPnP, cuộc gọi chỉ nên là địa phương.
Điều cần làm
Thiết lập một hệ thống trong nhóm để đảm bảo bảo trì và tạo ra các 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...)
Mỗi chức năng mới nên được thử nghiệm trên mỗi nền tảng trước khi sáp nhập nó để giảm sự lùi
Thêm sonarqube trên mỗi khách hàng
Tự động hóa kiểm tra hành vi của Jami về khả năng tương thích mạng