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