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