জামির গুণমান উন্নত করা

ইউনিট পরীক্ষা

  • বহু স্তরের নির্ভরতার উপর জাতির শর্তাবলী কারণে জামি প্রকল্পে ইউনিট পরীক্ষা করা আরও কঠিন।

  • 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 ডেমোন ফোল্ডারে বা পৃথকভাবে gdb দিয়ে ইউনিট-টেস্ট ফোল্ডারেঃ gdb ut_media_encoder

  • ./configure কমান্ডের সময় পরিবেশকে -disable-shared দিয়ে সেট করা দরকার

  • Clients also have tests (cf jami-client-qt/tests for Desktop, jami-client-android/jami-android/app/src/androidTest for Android)

ইন্টিগ্রেশন পরীক্ষা

  • প্রতিটি কমিট বিল্ড মেশিনের ডোকারে ইন্টিগ্রেশন টেস্টের মধ্য দিয়ে যায়। বিস্তারিত তথ্য আপনি জেনিস.জেমি.নেট এ খুঁজে পেতে পারেন।

  • কোড-পর্যালোচনা একজন সহ-বিকাশকারী দ্বারা করা হয়, কখনও কখনও কোডটি একই বিকাশকারী দ্বারা পর্যালোচনা করা হয়, এটি লিনাস আইন জোরদার করার জন্য এড়ানো উচিত। জেঙ্কিনস যাচাইকৃত লেবেল কখনও কখনও ফেলে দেওয়া হয় এবং একটি বিকাশকারীর দ্বারা +1 দ্বারা প্রতিস্থাপিত হয়, এটিও এড়ানো উচিত।

  • সোনারকুবে জেঙ্কিন্সকে জামি তৈরি করতে এবং লিন্টিং যাচাই করতে দেয়। আপনি ফিল্টার এবং ফলাফলগুলি দেখতে পারেনঃ সোনার-জামি.সভারফায়ারেলিনক্স.নেট সোনার প্রিপ্রসেসর লিন্টিং কম্পাইলারের মতো ক্ল্যাং-টাইড ব্যবহার করে, আপনি ডেমোন ফোল্ডারে.ক্ল্যাং-টাইড ফাইলটিতে ক্ল্যাং-টাইড ফিল্টারগুলি খুঁজে পেতে পারেন।

  • 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 সমন্বয়

  • নেটওয়ার্ক সামঞ্জস্যতা উপর Jami এর আচরণ পরীক্ষা স্বয়ংক্রিয়