بهبود کیفیت جمی

آزمایشات واحد

  • انجام آزمایش واحد در پروژه Jami به دلیل شرایط مسابقه در وابستگی چند سطح دشوارتر است.

  • 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

  • سیستم ای لازم است که برای شروع متقاعد کردن تیم برای انجام یک آزمایش واحد برای کد جدید قبل از ادغام

  • شما می توانید آنها را با انجام make check در پوشه daemon یا به طور جداگانه در پوشه آزمون واحد با 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)

آزمایش های ادغام

  • هر کمیت از طریق تست های ادغام در dockers در ماشین های ساخت می توانید جزئیات را در: jenkins.jami.net پیدا کنید

  • بررسی کد توسط یک توسعه دهنده دیگر انجام می شود، گاهی اوقات کد توسط همان توسعه دهنده بررسی می شود، این باید برای تاکید بر قانون لینوس اجتناب شود. برچسب Jenkins تایید شده گاهی اوقات کنار گذاشته می شود و توسط +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...)

  • هر عملکرد جدید باید قبل از ادغام آن برای کاهش بازپسین در هر پلتفرم آزمایش شود.

  • سونوارکوب را در هر مشتری ادغام کنید

  • خودکار کردن آزمایش رفتار Jami در شبکیه مطابقت