تحسين جودة جامي

اختبارات الوحدة

  • من الصعب إجراء اختبار وحدة على مشروع جامي بسبب ظروف السباق على الاعتماد على المستويات المتعددة.

  • 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 على كل عميل

  • تلقائيّة اختبار سلوك جامي على توافق الشبكة