আমি ভেবেছিলাম আমি আরও চারটি কেস যুক্ত করব, যেখানে ডিবাগ sএসেটরটি সঠিক পছন্দ হতে পারে।
1) আমি এখানে উল্লিখিত কিছু দেখিনি যা হ'ল স্বয়ংক্রিয় পরীক্ষার সময় সংস্থাগুলি অতিরিক্ত ধারণাগত কভারেজ সরবরাহ করতে পারে । একটি সাধারণ উদাহরণ হিসাবে:
যখন কোনও উচ্চ স্তরের কলার এমন কোনও লেখক দ্বারা সংশোধিত হয় যারা বিশ্বাস করে যে তারা অতিরিক্ত পরিস্থিতিগুলি পরিচালনা করার জন্য কোডের ক্ষেত্রটি প্রসারিত করেছে, আদর্শভাবে (!) তারা এই নতুন শর্তটি কভার করার জন্য ইউনিট পরীক্ষা লিখবে write এরপরে এটি হতে পারে যে সম্পূর্ণ সংহত কোডটি ঠিকঠাকভাবে কাজ করে বলে মনে হচ্ছে।
যাইহোক, আসলে একটি সূক্ষ্ম ত্রুটি চালু করা হয়েছে, তবে পরীক্ষার ফলাফলগুলিতে সনাক্ত করা যায়নি। কলি এই ক্ষেত্রে অ-নিরঙ্কুশ হয়ে উঠেছে, এবং কেবল প্রত্যাশিত ফলাফল সরবরাহ করতে ঘটে । অথবা সম্ভবত এটি গোলাকার ত্রুটি পেয়েছে যা নজরে ছিল না। বা এমন একটি ত্রুটি ঘটেছে যা অন্যত্র সমানভাবে অফসেট হয়েছিল। অথবা কেবল অ্যাক্সেসের জন্য অনুরোধ করা নয় এমন অতিরিক্ত সুযোগ-সুবিধা দেওয়া হয়েছে যা মঞ্জুর করা উচিত নয়। প্রভৃতি
এই মুহুর্তে, ইউনিট পরীক্ষায় চালিত নতুন কেস (বা প্রান্তের কেস) সহ কলিগের মধ্যে থাকা ডিবাগ.এসার্ট () স্টেটমেন্টগুলি পরীক্ষার সময় অমূল্য বিজ্ঞপ্তি সরবরাহ করতে পারে যে মূল লেখকের অনুমানগুলি বাতিল হয়ে গেছে, এবং কোডটি হওয়া উচিত নয় অতিরিক্ত পর্যালোচনা ছাড়াই মুক্তি পান। ইউনিট পরীক্ষার সাথে জোর দেওয়া নিখুঁত অংশীদার।
2) অতিরিক্তভাবে, কিছু পরীক্ষা লিখতে সহজ, তবে প্রাথমিক অনুমানগুলি দেওয়া উচ্চ-ব্যয়বহুল এবং অপ্রয়োজনীয় । উদাহরণ স্বরূপ:
যদি কোনও নির্দিষ্ট সুরক্ষিত এন্ট্রি পয়েন্ট থেকে কেবল কোনও অবজেক্ট অ্যাক্সেস করা যায়, কলারের অনুমতি রয়েছে কিনা তা নিশ্চিত করার জন্য প্রতিটি অবজেক্ট পদ্ধতি থেকে কোনও নেটওয়ার্ক রাইটস ডাটাবেসে একটি অতিরিক্ত জিজ্ঞাসা করা উচিত? অবশ্যই না. সম্ভবত আদর্শ সমাধানে ক্যাচিং বা বৈশিষ্ট্যগুলির কিছু অন্যান্য সম্প্রসারণ অন্তর্ভুক্ত থাকে তবে নকশার এটির প্রয়োজন হয় না। কোনও ডিবাগ.এসার্ট () অবিলম্বে প্রদর্শিত হবে যখন অবজেক্টটি কোনও অনিরাপদ প্রবেশের পয়েন্টে সংযুক্ত করা হয়েছে।
3) এরপরে, কিছু ক্ষেত্রে রিলিজ মোডে স্থাপনের সময় আপনার পণ্যটির সমস্ত বা তার ক্রিয়াকলাপের অংশগুলির জন্য কোনও সহায়ক ডায়াগোনস্টিক ইন্টারঅ্যাকশন নাও থাকতে পারে । উদাহরণ স্বরূপ:
ধরুন এটি একটি এম্বেড করা রিয়েল-টাইম ডিভাইস। ব্যর্থতা ছুঁড়ে ফেলা এবং যখন এটি কোনও ত্রুটিযুক্ত প্যাকেটের মুখোমুখি হয় তখন পুনরায় চালু করা প্রতি-উত্পাদনশীল। পরিবর্তে ডিভাইসটি সর্বোত্তম-প্রচেষ্টা অপারেশন থেকে এমনকি তার আউটপুটে রেন্ডারিংয়ের শব্দ পর্যন্ত উপকৃত হতে পারে। এটিতে কোনও মানবিক ইন্টারফেস, লগিং ডিভাইস নাও থাকতে পারে বা এমনকি রিলিজ মোডে স্থাপনের সময় মানুষের দ্বারা শারীরিকভাবে অ্যাক্সেসযোগ্যও হতে পারে না এবং একই আউটপুটটি মূল্যায়ন করে ত্রুটি সম্পর্কে সচেতনতা সর্বোত্তমভাবে সরবরাহ করা হয়। এক্ষেত্রে ব্যতিক্রমগুলির তুলনায় উদার উদারতা এবং পুঙ্খানুপুঙ্খ প্রাক-প্রকাশের পরীক্ষা আরও মূল্যবান।
4) সবশেষে, কিছু পরীক্ষা কেবল অনিবার্য কারণ কলিটিকে অত্যন্ত নির্ভরযোগ্য হিসাবে ধরা হয় । বেশিরভাগ ক্ষেত্রে, পুনরায় ব্যবহারযোগ্য কোডটি যত বেশি, এটিকে নির্ভরযোগ্য করে তোলার জন্য আরও প্রচেষ্টা করা হয়েছে। সুতরাং কলারদের কাছ থেকে অপ্রত্যাশিত পরামিতিগুলি ব্যতিক্রমী হওয়া সাধারণ, তবে কলি থেকে অপ্রত্যাশিত ফলাফলের জন্য জোড় দিন। উদাহরণ স্বরূপ:
কোনও মূল String.Find
অপারেশন যদি বলে -1
যে অনুসন্ধানের মানদণ্ডটি পাওয়া না গেলে এটি আবার ফিরে আসবে , আপনি তিনটির পরিবর্তে নিরাপদে একটি অপারেশন করতে পারবেন। যাইহোক, যদি এটি আসলে ফিরে আসে তবে -2
আপনার কাছে কোনও কার্যকর ব্যবস্থা থাকতে পারে না। প্রত্যাশার ভিত্তিতে -1
মূল লাইব্রেরিগুলি পরীক্ষা করা হচ্ছে তা নিশ্চিত করে পরীক্ষাগুলি সহ আপনার কোডটি লিটারে প্রকাশের জন্য বেশিরভাগ মুক্তির পরিবেশে অযৌক্তিক এবং সাধারণ গণনার প্রতিস্থাপন করা অপ্রয়োজনীয় হবে। এক্ষেত্রে জোর দেওয়া আদর্শ।