بهبود کیفیت جمی
آزمایشات واحد
انجام آزمایش واحد در پروژه 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 در شبکیه مطابقت