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