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