Header Ads

Header ADS

Top-Down Integration Testing

 


🔼 Top-Down Integration Testing (টপ-ডাউন ইন্টিগ্রেশন টেস্টিং)

Top-down Testing এমন একটি টেস্টিং পদ্ধতি, যেখানে আমরা সফটওয়্যারের উপরের (main) module থেকে শুরু করে ধাপে ধাপে নিচের (sub) module গুলো টেস্ট করি।


📌 ১. যদি Depth-First Approach ব্যবহার করা হয়:

🔹 আমরা প্রথমে উপরের মূল মডিউল (যেমন: M1) টেস্ট করব।
🔹 তারপর একটি শাখা বরাবর যত নিচে যাওয়া যায়, সেই দিক দিয়ে টেস্ট করা হবে।

🧭 ক্রম:

M1 → M2 → M3 → M4 → M5 → M6 → তারপর শেষে M7

📘 উদাহরণ:
ধরো, M1 একটি মেইন ফাংশন, M2 তার সাব-ফাংশন, এরপর M3 তার নিচের ফাংশন... এভাবে একটানা একটি লাইন ধরে টেস্ট করো।


📌 ২. যদি Breadth-First Approach ব্যবহার করা হয়:

🔹 আমরা প্রথমে M1 টেস্ট করব,
🔹 তারপর M1 এর সব সরাসরি সাব-মডিউল একসাথে টেস্ট করব (যেমন: M2 এবং M6)।
🔹 এরপর তাদের সাব-মডিউল গুলো টেস্ট করব (M3, M4, M5)।
🔹 সবশেষে M7।

🧭 ক্রম:

M1 → M2, M6 → M3, M4, M5 → তারপর শেষে M7

📘 উদাহরণ:
এখানে একসাথে একাধিক শাখা বা ব্রাঞ্চ টেস্ট করা হয় — উপরের লেয়ার শেষ করে পরের লেয়ারে যাওয়া হয়।


✅ সংক্ষেপে পার্থক্য:

পদ্ধতি কীভাবে টেস্ট হয়? কাদের আগে টেস্ট করা হয়?
Depth-First   এক শাখা বরাবর একদম নিচ পর্যন্ত     একটি শাখা সম্পূর্ণ টেস্ট করে অন্য শাখায় যায়
Breadth-First   একসাথে সব লেভেল অনুযায়ী টেস্ট      প্রথমে এক লেভেলের সব মডিউল টেস্ট হয়



🔼 Top-down Integration Test (টপ-ডাউন ইন্টিগ্রেশন টেস্ট)

এটি এমন একটি টেস্টিং পদ্ধতি যেখানে সফটওয়্যারের উচ্চ স্তরের (main বা controller) মডিউল আগে টেস্ট করা হয়, এবং পরে ধাপে ধাপে নিচের (sub) মডিউলগুলো যুক্ত করে পরীক্ষা করা হয়।


বৈশিষ্ট্যসমূহ (Features):

🔹 The control program is tested first.
📌 প্রথমে সফটওয়্যারের মেইন কন্ট্রোল মডিউল (যেটা অন্য মডিউলকে নিয়ন্ত্রণ করে) টেস্ট করা হয়।

🔹 Modules are integrated one at a time.
📌 প্রতিবার একটি করে মডিউল যুক্ত (integrate) করে টেস্ট করা হয়।

🔹 Emphasize on interface testing
📌 এখানে interface মানে বিভিন্ন মডিউলের মধ্যে যেভাবে তথ্য আদান-প্রদান হয় — সেটি ভালোভাবে পরীক্ষা করা হয়।


সুবিধাসমূহ (Advantages):

  1. There is no need to write drivers.
    📌 এখানে test driver লেখার প্রয়োজন হয় না, কারণ আমরা ওপরের মডিউল দিয়েই শুরু করি।

  2. Interface errors are identified early & fault localization is easier.
    📌 এক মডিউল অন্য মডিউলের সাথে যেভাবে যোগাযোগ করে (interface) তার ভুল দ্রুত ধরা পড়ে।
    📌 এবং ভুলটা কোন অংশে আছে তা খুঁজে বের করাও সহজ হয়।

  3. Low-level utilities not important are not tested well, but high-level ones are tested properly.
    📌 নিচের কিছু ছোট কম গুরুত্বপূর্ণ ফাংশন ঠিকভাবে টেস্ট না হলেও, উপরের মূল ফাংশনগুলো ভালোভাবে টেস্ট হয়।

  4. Test cases are easy to create once Input-Output functions are added.
    📌 যখন input-output ফাংশন যুক্ত করা হয়, তখন test case তৈরি করা সহজ হয়।


অসুবিধাসমূহ (Disadvantages):

  1. It requires a lot of stubs and mock objects.
    📌 নিচের মডিউল এখনো তৈরি না হওয়ায়, তার জন্য stubs বা mock (ভুল কোড) তৈরি করতে হয়।

  2. Writing test cases in stubs can be difficult before I/O functions are added.
    📌 যখন input-output ফাংশন এখনো তৈরি হয়নি, তখন stubs এর মধ্যে টেস্ট কেস লেখা কঠিন হতে পারে।

  3. Important low-level utilities may not be tested properly.
    📌 যদি নিচের কোনো গুরুত্বপূর্ণ ফাংশন থাকে, সেগুলো পর্যাপ্তভাবে টেস্ট না হতে পারে।


📝 সংক্ষেপে মনে রাখো:

বিষয় ব্যাখ্যা
শুরু কোথা থেকে?     উপরের মূল মডিউল (control program)
সুবিধা    Interface ভুল আগে ধরা পড়ে, ড্রাইভার দরকার হয় না
অসুবিধা   অনেক স্টাব লাগে, নিচের গুরুত্বপূর্ণ অংশ টেস্ট হয় না




Powered by Blogger.