जामीको गुणस्तर सुधार

इकाई परीक्षण

  • बहुस्तरीय निर्भरतामा दौडको अवस्थाका कारण जेमी परियोजनामा इकाई परीक्षण गर्न गाह्रो छ।

  • 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

  • वातावरण /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 द्वारा प्रतिस्थापित गरिन्छ, यो पनि जोगिन सकिन्छ।

  • Sonarqube Jenkins निर्माण Jami र linting प्रमाणित गर्न अनुमति दिन्छ. तपाईं फिल्टर र परिणाम पाउन सक्नुहुन्छः sonar- jami.savoirfairelinux.net Sonar एक preprocessor linting कम्पिलर रूपमा clang-tidy प्रयोग गर्दछ, तपाईं daemon फोल्डर मा.clang-tidy फाइल मा clangs फिल्टर पाउन सक्नुहुन्छ.

  • 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 एकीकृत

  • सञ्जाल अनुकूलतामा Jamis व्यवहारको परीक्षण स्वचालित गर्नुहोस्