আমি আমার এক প্রকল্পের জন্য কোবার্টুরা মাভেন প্লাগইন ব্যবহার করি। তবে উত্পন্ন প্রতিবেদন সম্পর্কে আমার একটি প্রশ্ন রয়েছে:
লাইন এবং শাখা কভারেজের মধ্যে পার্থক্য কী?
উত্তর:
লাইন কভারেজটি পরিমাপ করে যে আপনি কতগুলি বক্তব্য নিয়েছেন (একটি বিবৃতি সাধারণত কোডের একটি লাইন, মন্তব্যগুলি, শর্তাদি ইত্যাদি না করে)। আপনি প্রতিটি শর্তযুক্তের জন্য সত্য এবং মিথ্যা শাখা গ্রহণ করেছেন কিনা তা শাখাগুলি চেক করে। আপনার শর্তসাপেক্ষে দ্বিগুণ শাখা থাকবে।
আপনি যত্ন কেন? উদাহরণ বিবেচনা করুন:
public int getNameLength(boolean isCoolUser) {
User user = null;
if (isCoolUser) {
user = new John();
}
return user.getName().length();
}
আপনি যদি এই পদ্ধতিটিকে isCoolUserসেট করে কল করেন তবে আপনি true100% বিবৃতি কভারেজ পাবেন। ভাল লাগছে? হ্যাঁ, আপনি যদি কল করেন তবে নাল পয়েন্টার হতে চলেছে false। তবে, প্রথম ক্ষেত্রে আপনার 50% শাখা কভারেজ রয়েছে, তাই আপনি দেখতে পাচ্ছেন যে আপনার পরীক্ষায় (এবং প্রায়শই আপনার কোডটিতে) কিছু অনুপস্থিত রয়েছে।
সরলীকৃত উদাহরণ হিসাবে এই কোডটি নিন:
if(cond) {
line1();
line2();
line3();
line4();
} else {
line5();
}
যদি আপনার পরীক্ষাটি শুধুমাত্র অনুশীলন করে cond সত্য হওয়ার এবং elseআপনার যে শাখাটি চালায় না :
কোবার্টুরার রিপোর্টও ক্লিক করা হলে নিজেই কিছু সুন্দর পপ-আপ সহায়তা উপস্থাপন করে:
লাইন কভারেজ - এই পরীক্ষার দ্বারা চালিত রেখার শতাংশ শতাংশ।
শাখা কভারেজ - এই পরীক্ষার দ্বারা চালিত শাখার শতকরা।
if(cond){
//branch 1
}else{
//branch 2
}
লাইনকভারেজ এবং ব্রাঞ্চকভারেজ উভয়ের জন্য 100% কভারেজ পাওয়ার জন্য আপনাকে সমস্ত লাইনটি শাখা 1 এবং শাখা 2 বলে সম্বোধন করতে হবে।
আপনি যদি অন্য কোনও কিছু মিস করেন তবে আপনি শাখার আধিক্য অর্ধেক পাবেন। যদি আপনি এবং অন্য দুটি ক্ষেত্রে লাইনগুলির # তে কিছু না হারিয়ে থাকেন তবে আপনি লাইন কভারেজ সহ 100% নয় তবে 100% এর ব্রাঞ্চকভারেজ পাবেন।
আশাকরি এটা সাহায্য করবে.