Function Testing
🧪 Function Testing (ফাংশন টেস্টিং)
Function Testing হচ্ছে এমন একটি টেস্টিং পদ্ধতি যেখানে সফটওয়্যারের বাইরের আচরণ (external behavior) পরীক্ষা করা হয়।
এই পদ্ধতিতে টেস্টাররা শুধুমাত্র সফটওয়্যারের কাজ ঠিকভাবে হচ্ছে কি না সেটা দেখে — এর ভেতরের কোড কেমন সেটা তারা জানে না বা ব্যবহার করে না।
✅ বৈশিষ্ট্যসমূহ:
🔹 Designed to exercise the program according to its external specifications
📌 এই টেস্টিং সফটওয়্যারটি যেভাবে বাইরে থেকে behave করা উচিত (যেমন ইনপুট-আউটপুট), সেই অনুযায়ী করা হয়।
🔹 Testers are not biased by knowledge of the program’s design
📌 টেস্টাররা কোড বা ডিজাইন না জেনে শুধুমাত্র ফাংশনাল আচরণ দেখে টেস্ট করেন। তাই তারা পূর্ব ধারণায় প্রভাবিত হন না।
❌ অসুবিধাসমূহ (Disadvantages):
-
Need for explicitly stated requirements
📌 এই টেস্টিং ভালোভাবে করতে হলে, সফটওয়্যার কী করবে তার সঠিক ও পরিষ্কারভাবে লেখা দরকার। -
Only covers a small portion of possible test conditions
📌 এই পদ্ধতিতে সমস্ত সম্ভাব্য ইনপুট বা পরিস্থিতি কভার করা সম্ভব না, কেবলমাত্র কিছু নির্বাচিত পরিস্থিতি পরীক্ষা করা হয়। -
Exhaustive black box testing is generally impossible
📌 সবকিছু টেস্ট করা (exhaustive testing) বাস্তবে সম্ভব না, তাই এই টেস্টগুলোকে statistical sampling এর মতো ধরা হয় — কিছু নমুনা ইনপুট দিয়ে টেস্ট করা হয়। -
When errors are found, a closer examination is required
📌 যদি কোনো ভুল ধরা পড়ে, তাহলে পরে আরও ভেতরের কোড পর্যবেক্ষণ করতে হয়, কারণ বাহ্যিক ইনপুট-আউটপুট থেকেই ভুলের মূল কারণ বোঝা কঠিন।
📝 উপসংহার:
👉 Functional Testing শুরু হয় প্রোগ্রামের ফাংশনগুলো বিশ্লেষণ করার মাধ্যমে,
👉 এবং তারপর একটি ইনপুট সিকোয়েন্স তৈরি করা হয় যেগুলো দিয়ে টেস্ট করা হয়, প্রোগ্রামটি ঠিকঠাক কাজ করছে কি না।
✅ মনে রাখার মতো:
| বিষয় | ব্যাখ্যা |
|---|---|
| কী পরীক্ষা করা হয়? | বাইরের ফাংশন ও আচরণ (Input → Output) |
| কোড দেখা লাগে কি? | না, কোড জানা লাগে না |
| ভালো দিক | নিরপেক্ষ টেস্ট করা যায়, বাস্তব ব্যবহার দেখা যায় |
| খারাপ দিক | সব পরিস্থিতি কভার করা যায় না, requirements পরিষ্কার না হলে সমস্যা হয় |