আপনি আপনার পরীক্ষার সরঞ্জামটির উল্লেখ করবেন না। অনেকের "সংহত" ফাংশন রয়েছে যা আপনাকে একাধিক রান বা স্যুটগুলির ফলাফলকে একত্রিত করতে দেয়। আপনি যদি একটি সামগ্রিক কভারেজ মেট্রিক চান, আপনার কভারেজ সরঞ্জামে সম্মিলন বৈশিষ্ট্যটি অন্বেষণ করুন।
এখন, আমরা ঘরে হাতির কথা বলতে পারি?
এখানে কোন চামচ নেই. এবং কোনও "মোট কভারেজ শতাংশ" নেই। কমপক্ষে, কোন সহজ।
কভারেজ শতাংশ হ'ল তাত্ক্ষণিকভাবে উপলব্ধিযোগ্য মেট্রিক যা পরীক্ষার স্যুটগুলির ব্যাপ্তি, গভীরতা এবং পরিসীমা বুঝতে সহায়তা করে। তবে যে কোনও সাধারণ বেঞ্চমার্কের মতো , "সম্পূর্ণ পরীক্ষার" এক ধরণের যাদুকরী তাবিজ হিসাবে এই মানটির উপর লক্ষ্য নির্ধারণ করা খুব সহজ ।
ধরা যাক আপনি "100% পরীক্ষার কভারেজ" এর গৌরব অর্জন করেছেন। হ্যাঁ! তবে তার মানে কী? 100% কোড লাইন পরীক্ষা করা হয়, তাই না? তাহলে এই লাইনের কী হবে?
launch_missile = launch_authorized and launch_cmd_given else previous_launch_status
"আচ্ছাদন" যে লাইন মানে কিছু - কিন্তু না একটি সম্পূর্ণ অনেক, কারণ সেখানে অবস্থার যা হয় বিভিন্ন আছে True
বা False
কিছু সম্ভাবনা সঙ্গে, কিন্তু এটার সম্ভাবনা কম যে আপনি ঐ অবস্থার সমাহারের সব পরীক্ষিত হয়েছে। এমনকি যদি সেই লাইনটি কয়েকবার আচ্ছাদিত হয় তবে শর্তগুলির মধ্যে একটি অপেক্ষাকৃত অস্বাভাবিক হলেও বাস্তবে যে বাস্তব ফলাফল হতে পারে তার সবগুলিই পরীক্ষার কাছে আপনি পৌঁছাননি। আরও পরিষ্কার করার জন্য আরও কৃত্রিম উদাহরণ:
engage_laser = (laser_armed and safety_disengaged) or random.random() < 0.0000003
সত্যিই সম্পূর্ণরূপে এটির পরীক্ষা করার জন্য আপনার কতবার এই লাইনটি আবরণ করতে হবে? প্রোগ্রামের অন্যান্য ভেরিয়েবলগুলির সাথে (তাদের নিজস্ব, সম্ভবত একইভাবে বিরল) সম্ভাব্যতার সংমিশ্রণে এটি পরীক্ষা করার জন্য আপনি কতবার এটি কভার করবেন?
আমি বলছি না যে কভারেজ মেট্রিকগুলি অকেজো। তারা আসলে দুর্দান্ত । তারা মূল বিষয়গুলির একটিতে মনোনিবেশ করে: আমার সফ্টওয়্যার সিস্টেমটি কতটা ব্যাপকভাবে পরীক্ষা করা হয়? তারা "আমাদের কিছু পরীক্ষা আছে" থেকে "আমরা পুরোপুরি পরীক্ষা করে দেখেছি" তে যেতে সহায়তা করি।
তবে আপনি যখন "সংযুক্ত স্কোরগুলি" নিয়ে কাজ করছেন, বাস্তবতাটি হ'ল আপনার স্কোরটি সাধারণত "শর্ত," "প্রিডিকেট" বা "পথ" কভারেজের চেয়ে "স্টেটমেন্ট কভারেজ" এর জন্য হয়ে থাকে । সুতরাং আপনার সামগ্রিক স্কোর যাই হোক না কেন আপনি যে নম্বর দিন, এটি আপনার প্রোগ্রামের সম্ভাব্য রাজ্যগুলি এবং রাজ্যের সংমিশ্রণগুলির কতটা পরীক্ষা করা হচ্ছে তার একটি সত্য চিত্র দেয়। আপনি যখন আপনার কভারেজ শতাংশ বাড়ানোর বিষয়ে কাজ করছেন, তখন আপনার প্রাকটিক কভারেজটিও পরিমাপ করুন। এটি আপনাকে আরও বাস্তবসম্মত - এবং প্রায় অদৃশ্যভাবে আরও স্বচ্ছল - পরীক্ষার প্রশস্ততার দর্শন দেয়।