যখন প্রধান কোড পরিবর্তন ঘটে (পজোগুলির নতুন সেট, প্রধান অ্যাপ্লিকেশন রিফ্যাক্টরিং ইত্যাদি), ইউনিট পরীক্ষাগুলি পুনরায় কাজ করার পরিবর্তে মন্তব্য করার ঝোঁক থাকে।
আমি সবসময় রিফ্যাক্টরিং এবং কার্যকারিতা পরিবর্তনের চেষ্টা করি। যখন আমার দুটোই করার দরকার হয়, আমি সাধারণত প্রথমে রিফ্যাক্টরিংটি করি।
কার্যকারিতা পরিবর্তন না করে কোড রিফ্যাক্টরিং করার সময় বিদ্যমান ইউনিট পরীক্ষাগুলি নিশ্চিত করে যে রিফ্যাক্টরিং দুর্ঘটনাক্রমে কার্যকারিতা ভঙ্গ করে না help সুতরাং এই ধরনের প্রতিশ্রুতিবদ্ধতার জন্য আমি ইউনিট পরীক্ষাগুলি অক্ষম করা বা অপসারণকে একটি বড় সতর্কতা চিহ্ন হিসাবে বিবেচনা করব। কোডটি পর্যালোচনা করা হচ্ছে এমন সময়ে যে কোনও বিকাশকারী এটি করছেন তা না করার কথা বলা উচিত।
এটি সম্ভবত সম্ভব যে পরিবর্তনগুলি কার্যকারিতা পরিবর্তন করে না তবুও ত্রুটিযুক্ত ইউনিট পরীক্ষার কারণে ইউনিট পরীক্ষাগুলি ব্যর্থ হতে পারে। যদি আপনি যে কোডটি পরিবর্তন করছেন তা যদি আপনি বুঝতে পারেন তবে এই জাতীয় ইউনিট পরীক্ষা ব্যর্থতার কারণটি তাত্ক্ষণিকভাবে স্পষ্ট এবং ঠিক করা সহজ।
উদাহরণস্বরূপ যদি কোনও ফাংশন তিনটি আর্গুমেন্ট গ্রহণ করে তবে ফাংশনের জন্য প্রথম দুটি আর্গুমেন্টের মধ্যে মিথস্ক্রিয়াকে আচ্ছাদিত একক পরীক্ষা তৃতীয় আর্গুমেন্টের জন্য কোনও বৈধ মান প্রদানের যত্ন নিতে পারে না। ইউনিট পরীক্ষার এই ত্রুটিটি পরীক্ষিত কোডটির রিফ্যাক্টরিং দ্বারা প্রকাশ করা যেতে পারে তবে কোডটি কী করার কথা বলে এবং ইউনিট পরীক্ষাটি কী পরীক্ষা করছে তা যদি আপনি বুঝতে পারেন তবে তা ঠিক করা সহজ।
বিদ্যমান কার্যকারিতা পরিবর্তন করার সময় সাধারণত কিছু ইউনিট পরীক্ষাও পরিবর্তন করা প্রয়োজন। এই ক্ষেত্রে ইউনিট পরীক্ষাগুলি এটি নিশ্চিত করতে সহায়তা করে যে আপনার কোডটি কার্যত কার্যকারিতা পরিবর্তন হিসাবে পরিবর্তন করেছে এবং অনিচ্ছাকৃত পার্শ্ব প্রতিক্রিয়া নেই।
বাগগুলি সংশোধন করার সময় বা নতুন কার্যকারিতা যুক্ত করার সময় একজনকে সাধারণত আরও ইউনিট পরীক্ষা যুক্ত করতে হয়। তাদের জন্য এটি প্রথমে ইউনিট পরীক্ষা করা এবং পরে বাগ ফিক্স বা নতুন কার্যকারিতা প্রতিশ্রুতিবদ্ধ হতে সহায়ক হতে পারে। এটি যাচাই করা সহজ করে তোলে যে নতুন ইউনিট পরীক্ষাগুলি পুরানো কোডের সাথে পাস করেনি তবে নতুন কোডের সাথে পাস করে না। যদিও এই পদ্ধতিটি পুরোপুরি ত্রুটিগুলি ছাড়াই নয়, সুতরাং একই সাথে নতুন ইউনিট পরীক্ষা এবং কোড আপডেট উভয়ই প্রতিশ্রুতি দেওয়ার পক্ষে যুক্তি রয়েছে।
ব্যবহারের ক্ষেত্রে কভার করার জন্য ইন্টিগ্রেশন টেস্টগুলিতে সময় আরও ভালভাবে ব্যয় করা হয়, যা ছোট স্কোপযুক্ত পরীক্ষাগুলি কম / না-গুরুত্বপূর্ণ করে তোলে।
এর সত্যের কিছু উপাদান রয়েছে। আপনি যদি সফ্টওয়্যার স্ট্যাকের উচ্চ স্তরগুলিকে লক্ষ্য করে পরীক্ষাগুলি সহ সফ্টওয়্যার স্ট্যাকের নিম্ন স্তরগুলির কভারেজ পেতে পারেন তবে কোডটি রিফ্যাক্টর করার সময় আপনার পরীক্ষাগুলি আরও সহায়ক হতে পারে।
আমি মনে করি না যদিও আপনি ইউনিট পরীক্ষা এবং ইন্টিগ্রেশন পরীক্ষার মধ্যে সঠিক পার্থক্যের বিষয়ে একটি চুক্তি খুঁজে পাবেন। এবং আপনার উদ্বেগের দরকার নেই যদি আপনার কোনও পরীক্ষার কেস থাকে যার মধ্যে একজন বিকাশকারী ইউনিট পরীক্ষা বলে এবং অন্যজন একটি ইন্টিগ্রেশন টেস্ট বলে।