যখন আপনি গায়া ডাটাবেসে নতুন কোন পরিবর্তন আনবেন তখন এবং এটি কাজ করবে , পরবর্তি স্টেপ হল টেস্টিং প্রক্রিয়া থেকে আপনার কাজ হল পরিবর্তন — এবং গায়ার বাকি কিছুর সাথে কাজ করে থাকে — প্রজেক্ট এর প্যাচ জমা দেয়ার পুর্বে দেখে নেয় ।এই অনুচ্ছেদ তা ব্যাখা করে থাকে।
টেস্টিং প্রক্রিয়া সাধারন্ত গঠিত হয়ঃ
- সট্যান্ডার্ড ডিবাগিং প্রক্রিয়া
- automated tests চালানো
চলুন পরীক্ষা করি কিছু নতুন এলাকা এখন ।
Standard ডিবাগিং
যদি আপনি একজন অভিজ্ঞ ওয়েব ডেভেলপার হয়ে থাকেন তবে গায়া কোড আপনার কাছে একটি স্বাভাবিক প্রক্রিয়া আমরা ইতিমধ্যে কিভাবে run Gaia in your Desktop Firefox installation কাজ করে তা জানিয়েছি এবং make a basic change কিভাবে করে ।আরো জটিল ডাটাবেসের কারনে ,আপনাকে একটি Firefox ডিবাগিং টুলস Desktop Firefox এ দেখতে হবে ।
নোটঃ Tools zone তে টুলস ব্যবহারের অনেক তথ্য পাওয়া যাবে ।
Automated tests
আপনাকে স্ট্যান্ডার্ড অটোমেটেড টেস্ট ঠিক করে যে একটি প্যাচ যা গায়া কোড জমা দেয়ার আগে রান করাতে হয়ে থাকে ,নিশ্চিত করতে হবে যে আপনার কোড কোন ফোনের ফাংশনে জরুরী কাজে বাধা প্রদান করে না ।টেস্টগুলো আপনি রান করতে পারেনঃ
- unit tests
- integration tests
- performance tests
- UI tests
আমরা সাধারনত জিজ্ঞাসা করে থাকি যে আপনি টেস্ট রান করুন একটি প্যাচ জমা দেয়া শেখানো হয়ে থাকে ; আপনি যদি নতুন কন্ট্রিবুটর হয়ে থাকেন তবে সেক্ষেত্রে আপনি ভবিষ্যতে একজন ভাল কন্ট্রিবিউটর হতে জিজ্ঞাসা করতে হবে । আপনাকে গায়া রেপু আপডেটেড করতে হবে টেস্টটি রান করার আগে , এবং নিশ্চিত করুন যে আপনি একজন নতুন কন্ট্রিবিউটর হোয়ার আগে ।
নোটঃ আপনি আরো বেশি তথ্য কিভাবে Firefox OS Automated testing page এর উপরে কাজ করে তা দেখুন ।
নোটঃ যদি সব সময় পাওয়া যায় তবে আপনাকে একটি অ্যাপ রান করা হয়ে থাকে একটি রিয়াল ডিভাইসের উপরে ( কিছু ফিচারস /হার্ডোয়্যার এমুলেটরেরের উপরে সাপোর্টেড নয়) অথবা B2G Desktop emulator অথবা Firefox Nightly iযদি নয় ।
Unit tests
উনিট টেস্ট গুলো হল নিজস্ব কোডের বড় অ্যাপলিকেশনের জন্য —গায়ার ক্ষেত্রে ,নির্দিষ্ট অ্যাপ।গায়া ব্যবহার করেঃ
- mocha ফ্রেম ওয়ার্কের জন্য
- chai এসেট লাইব্রেরি হিসেবে
- sinon.js মক এবং স্টাব লাইব্রেরির জন্য
- blanket.js টেস্ট কাভারেজের টুল
আপনি ডাউনলোড করতে নিচেরটা কমান্ড করতে পারেন , ইন্সটল এবং হোস্ট একটি উনিটেস্ট সার্ভার (কিছুক্ষন এটি রান করুন ,সুতরাং একটি কাপ চা করতে যে সময় লাগে)ঃ
DEBUG=1 make export FIREFOX=/Applications/FirefoxNightly.app/Contents/MacOS/firefox bin/gaia-test
এটা একটি নতুন ওয়েব পেজ খুলে দিবে একটি নতুন উনিট টেস্টের সাথে ।রান করুনঃ
- পেজের টেস্টটি রান করুন লিস্ট থেকে (একটি এস্টারিস্ক তাদের পাশে থাকে )
- "Execute" বাটনে চাপুন ।
- রেজাল্ট দেখতে পেজের প্রথমে স্ক্রল করুন ।
উইন্ডোটী খুলে দিয়ে ,আপনি ফুল টেস্ট রান করতে পারেন একটি নতুন টারমিনাল উইন্ডো থেকেঃ
make test-agent-test
নোটঃ এটা অনেক বিশাল সময় , যেহেতু অনেক টেস্ট আছে রান করার জন্য (বিশেষ ভাবে একটি ঘন্টা অথবা আরো বেশি ), যেহেতু আপনাকে সম্ভবত টেস্টটি রান করানো জন্য অ্যাপটি মোটিভেটেড করতে হবে ।আপনাকে APP=<app folder name>
উপরে কমান্ড করতে হবে ,উদাহরন হিসেবে APP=settings
.
নোটঃআপনাকে আরো পড়তে হবে Gaia Unit Tests আরো উনিট টেস্ট তথ্যের জন্য।
ইন্ট্রেগেশন টেস্ট
ইন্ট্রেগেশন টেস্টিং বিভিন্ন কোডের একত্রে একটি গ্রুপে কাজ করে থাকে তারা কিভাবে কাজ করে তা দেখার জন্য ,এবং লজিকাল নেক্সট স্টেপ উনিট টেস্টিং এর পরে ।গায়া JavaScript এ লেখা হয়ে থাকে মেরিঅনেটের স্ক্রিপ্ট ইন্ত্রেগাশনের দ্বারা এবং একটি python-based সার্ভার ।এটা গেটকো এর সাথে যোগাযোগ করতে পারে সুতরাং ইহা সম্ভব ব্রাউজারে কন্ট্রলের জন্য এবং Firefox OS ডিভাইস,এবং তাদের প্রত্যেকের সাথে সংযুক্ত ।
আপনি ট্রিগারটি ইন্ট্রেগাশন টেস্টের জিন্য কমান্ড দিতে পারেনঃ
make test-integration
নোটঃ উনিট টেস্ট হিসেবে সকল ইন্টারোগেশন টেস্ট রান কর যা ঐ সময়ে সময় গ্রহন করে থাকে ,সুতরাং আপনি প্রকাশ করতে পারেন APP=<app ফোল্ডার name>
এর উপরে একটি টেস্ট সিঙ্গেলে অ্যাপ।উদাহরন হিসেবে ,APP=calendar
.
নোটঃ আরো বেশি ইনটেগ্রাশনের জন্য ,পড়ুন Gaia integration tests.
Performance tests
গায়া পারফরমেন্স ট্রিগার করবে B2G Desktop,কিছু সময়ে অ্যাপ উদ্বোধন করবে এবং ক্যাল্কুলেট করবে একটি গড় গড় লোড সময় । একটি রানিং টেস্ট করার জন্য ,পারফরমেন্স ফ্রেমোয়ার্ক মেমোরি ব্যবহারের সংগ্রহ করবে অ্যাপটি এবং সিস্টেম প্রসেস(b2g
).
টেস্টটি রান করার জন্য আপনাকে প্রয়োজন B2G Desktop ইন্সটল্ড করা ,এবং কমাণ্ড গুলো দেখুন
make টেস্ট -পারফ
নোটঃ অন্যান্য টেস্ট টাইপ অনুসারে , আপনি APP=<app folder name>
একটি সিঙ্গেল অ্যাপ এ দেখাতে সম্ভব ।উদাহরন হিসেবেAPP=settings
.
সম্পুর্ন গড় একটি mozPerfDurationsAverage
ভ্যালু হিসেবে রিটার্ন দিবে,যেমনঃ
"mozPerfDurationsAverage": 225.5
গড় অ্যাপের লোড সময় হল মিলিসেকেন্ড ; অপ্টিমাল ব্যবহারের জন্য আপনাকে ১ সেকেন্ড সময় নিতে হবে । এই পারফমেন্স কিছু বিস্তারিত ব্যবহারের ভ্যালু আপনাকে ফেরত দিবেঃ
{ "app": { "name": "Settings", "uss": 16.6, "pss": 19.5, "rss": 32.9, "vsize": 73.3 }, "system": { "name": "b2g", "uss": 50.1, "pss": 53.2, "rss": 67, "vsize": 148.1 } },
টেস্ট পারফরের সবচেয়ে মুল নিয়ম হল "lower numbers are better"; উপরের সংখ্যাগুলো নিচের গুলোকে দেখায়ঃ
uss
: unique set sizepss
: proportional set sizerss
: resident set sizevsize
: virtual set size
সাধারনত Generally vsize
>= rss
>= pss
>= uss
. vsize
এবং rss প্রসেসরের অন্য প্রসেসরের ব্যবহারের সাথে কোন কিছু শেয়ারের প্রতিচ্ছবি দেয় না।
সুতরাং দুটি সংখ্যা যা আপনি দেখতে চান তা হল pss
এবং uss
.
uss হল ইউনিক প্রসেসের সম্পুর্ন মেমোরি । যদি সঠিক সময়ে মেমোরি টারমিনেটেড হয়ে থাকে তবে এটা মেমোরির পরিমান এটা বিবর্তনের চাবিকাঠি।
pss
হল প্রসেসরেরলাইব্রেরি শেয়ারের প্রফেসনাল আকার। এটা মনে করায় যে প্রসেস যদি টারমিনেটেড হয় তবে এটা বাহির হবে না।
নোটঃআরো বেশি পারফরমেন্সের জন্য,পড়ুন Gaia performance tests.
UI tests
দেখুন Gaia UI Tests Introduction.