تحسين جودة جامي
اختبارات الوحدة
من الصعب إجراء اختبار وحدة على مشروع جامي بسبب ظروف السباق على الاعتماد على المستويات المتعددة.
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
يجب تنفيذ نظام لبدء إقناع الفريق بإجراء اختبار وحدة للكود الجديد قبل الاندماج
يمكنك إطلاقها عن طريق القيام مقياس التحقق في مجلد ديمون أو بشكل منفصل في مجلد اختبار الوحدة مع gdb: gdb ut_media_encoder
يجب تعيين البيئة بـ -- disable-shared خلال أمر./configure
Clients also have tests (cf
jami-client-qt/tests
for Desktop,jami-client-android/jami-android/app/src/androidTest
for Android)
اختبارات التكامل
كل عمل يمر عبر اختبارات التكامل في المرفقات على آلات البناء يمكنك العثور على التفاصيل على: jenkins.jami.net
يتم مراجعة الشفرة من قبل أحد المطورين الآخرين ، في بعض الأحيان يتم مراجعة الشفرة من قبل نفس المطور ، يجب تجنب هذا لتأكيد قانون لينوس. يتم استبعاد علامة جينكينز المحققة في بعض الأحيان واستبدالها ب +1 من قبل المطور ، يجب تجنب هذا أيضًا.
سوناركوب يسمح لجينكينز ببناء جامي والتحقق من التشويق. يمكنك العثور على المرشحات والنتائج على: sonar- jami.savoirfairelinux.net Sonar يستخدم clang-tidy كمجمع التشويق المسبق للمعالج ، يمكنك العثور على مرشحات clangs في ملف.clang-tidy في مجلد daemon.
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)
اختبارات الدخان
قبل كل إطلاق كل عميل يجب أن يمر قائمة من السيناريوهات.
يتم وصف السيناريوهات هنا: [اختبارات دخان جامي]
يتم مراجعتها من قبل QA dpt قبل إرسالها إلى المطورين إذا لزم الأمر.
إذا كان الإصدار يحتوي على تعزيز شبكة تم دمجها، يجب أن يكون قسم QA قادرًا على تلقائي اختبارات الاتصال المختلفة (كما هو موضح أدناه في تكوينات المكالمات)
يطلب التكوينات
هذه قائمة بتكوينات الشبكة التي تحتاج إلى اختبارها:
(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...)
يجب اختبار كل وظيفة جديدة على كل منصة قبل دمجها لتقليل التراجع
دمج sonarqube على كل عميل
تلقائيّة اختبار سلوك جامي على توافق الشبكة