এটাই.
এমনকি যদি আপনি কেবল ইউনিট টেস্টিং নেন, তবে পরীক্ষার কোডগুলিতে প্রকৃত পরীক্ষিত কোডের চেয়ে বেশি কোড থাকা অস্বাভাবিক কিছু নয়। এর মধ্যে কোন ভুল নেই.
একটি সাধারণ কোড বিবেচনা করুন:
public void SayHello(string personName)
{
if (personName == null) throw new NullArgumentException("personName");
Console.WriteLine("Hello, {0}!", personName);
}
পরীক্ষা কি হবে? এখানে পরীক্ষার জন্য কমপক্ষে চারটি সাধারণ মামলা রয়েছে:
ব্যক্তির নাম null
। ব্যতিক্রম আসলে নিক্ষেপ করা হয়? লেখার জন্য টেস্ট কোডের কমপক্ষে তিনটি লাইন।
ব্যক্তির নাম "Jeff"
। আমরা কি "Hello, Jeff!"
প্রতিক্রিয়া পেতে পারি ? এটি টেস্ট কোডের চারটি লাইন।
ব্যক্তির নাম একটি খালি স্ট্রিং। আমরা কী আউটপুট আশা করি? আসল আউটপুট কি? পার্শ্ব প্রশ্ন: এটি কার্যকরী প্রয়োজনীয়তার সাথে মেলে? তার মানে ইউনিট পরীক্ষার জন্য কোডের আরও চারটি লাইন।
স্ট্রিংয়ের জন্য ব্যক্তির নাম যথেষ্ট সংক্ষিপ্ত, তবে একত্রিত হতে খুব দীর্ঘ "Hello, "
এবং উদ্দীপনা বিন্দু। কি হয়?
এর জন্য প্রচুর পরীক্ষার কোড দরকার। অধিকন্তু, কোডের প্রাথমিক প্রাথমিক অংশগুলিতে প্রায়শই সেটআপ কোডের প্রয়োজন হয় যা পরীক্ষার অধীনে কোডটির জন্য প্রয়োজনীয় অবজেক্টগুলিকে সূচনা করে, যা প্রায়শই স্টাবগুলি এবং উপহাস ইত্যাদি লেখার দিকে পরিচালিত করে etc.
যদি অনুপাতটি খুব বড় হয় তবে এক্ষেত্রে আপনি কয়েকটি জিনিস পরীক্ষা করতে পারেন:
পরীক্ষাগুলির মধ্যে কি কোড নকল আছে? এটির পরীক্ষামূলক কোডের অর্থ এই নয় যে কোডটি অনুরূপ পরীক্ষার মধ্যে নকল করা উচিত (অনুলিপি করা উচিত): এই জাতীয় সদৃশতা সেই পরীক্ষাগুলির রক্ষণাবেক্ষণকে কঠিন করে তুলবে।
অপ্রয়োজনীয় পরীক্ষা আছে? থাম্বের নিয়ম হিসাবে, আপনি একটি ইউনিট পরীক্ষা অপসারণ করলে, শাখার কভারেজ হ্রাস করা উচিত। যদি এটি না হয় তবে এটি ইঙ্গিত দিতে পারে যে পরীক্ষার প্রয়োজন নেই, যেহেতু পাথগুলি ইতিমধ্যে অন্যান্য পরীক্ষাগুলির দ্বারা আচ্ছাদিত।
আপনি যে কোডটি পরীক্ষা করা উচিত তা কি আপনি পরীক্ষা করছেন? আপনি তৃতীয় পক্ষের লাইব্রেরির অন্তর্নিহিত কাঠামোটি পরীক্ষা করার আশা করছেন না , তবে কেবলমাত্র প্রকল্পটির কোড।
ধূমপান পরীক্ষা, সিস্টেম এবং ইন্টিগ্রেশন পরীক্ষা, ক্রিয়ামূলক এবং গ্রহণযোগ্যতা পরীক্ষা এবং স্ট্রেস এবং লোড পরীক্ষার সাহায্যে আপনি আরও বেশি পরীক্ষার কোড যুক্ত করেন, সুতরাং প্রকৃত কোডের প্রতিটি এলওসির জন্য চার বা পাঁচটি এলওসি পরীক্ষা রাখা আপনার চিন্তিত হওয়া উচিত নয়।
টিডিডি সম্পর্কে একটি নোট
আপনার কোডটি পরীক্ষা করতে যে সময় লাগে তা নিয়ে আপনি যদি উদ্বিগ্ন হন, তবে এটি হতে পারে আপনি প্রথমে কোডটি পরে ভুল পরীক্ষা করছেন। এই ক্ষেত্রে, টিডিডি আপনাকে কোড এবং পরীক্ষাগুলির মধ্যে স্যুইচিং করে 15-45 সেকেন্ডের পুনরাবৃত্তিতে কাজ করতে উত্সাহিত করে সহায়তা করতে পারে। টিডিডি-র প্রবক্তাদের মতে, আপনার প্রয়োজনীয় পরীক্ষাগুলির সংখ্যা হ্রাস করে এবং আরও গুরুত্বপূর্ণ, ব্যবসায় কোডের পরিমাণ এবং লেখার জন্য বিশেষত পুনর্লিখনের পরিমাণ হ্রাস করে এটি উন্নয়ন প্রক্রিয়াটিকে গতিবেগ করে ।
N একটি স্ট্রিংয়ের সর্বাধিক দৈর্ঘ্য হওয়া যাক । আমরা SayHello
রেফারেন্স দিয়ে কল এবং n দৈর্ঘ্যের একটি স্ট্রিং পাস করতে পারি - যা ঠিক কাজ করা উচিত। এখন, Console.WriteLine
পদক্ষেপে, ফর্ম্যাটটির দৈর্ঘ্য n + 8 এর স্ট্রিংয়ের সাথে শেষ হওয়া উচিত , যার ফলস্বরূপ ব্যতিক্রম হবে। সম্ভবত, মেমরির সীমাবদ্ধতার কারণে, এমনকি এন / 2 অক্ষরযুক্ত স্ট্রিং একটি ব্যতিক্রম ঘটায়। যে প্রশ্নটি জিজ্ঞাসা করা উচিত তা হ'ল এই চতুর্থ পরীক্ষাটি ইউনিট পরীক্ষা কিনা (এটি দেখতে একরকম মনে হয় তবে এটির গড় ইউনিট পরীক্ষার তুলনায় সংস্থানগুলির ক্ষেত্রে আরও বেশি প্রভাব থাকতে পারে) এবং যদি এটি প্রকৃত কোড বা অন্তর্নিহিত কাঠামোটি পরীক্ষা করে।