Software Testing Metrics
Software Testing Metrics হলো কিছু পরিমাপযোগ্য মানদণ্ড বা পরিমিতি (measurable values) যা সফটওয়্যার টেস্টিং প্রক্রিয়ার কার্যকারিতা, গুণমান, অগ্রগতি ও ফলাফল বোঝাতে সাহায্য করে।
🔹 সহজভাবে বললে:
Software Testing Metrics হচ্ছে এমন কিছু সংখ্যাগত মান, যা দিয়ে আমরা বুঝতে পারি আমাদের টেস্টিং কতটা ভালোভাবে হচ্ছে, কতটুকু কাজ হয়েছে, কতটা বাগ ধরা পড়েছে, ইত্যাদি।
🔸 কেন দরকার?
✅ টেস্টিং প্রক্রিয়া পর্যবেক্ষণ করতে
✅ টেস্টিং এর অগ্রগতি ও গুণমান বোঝাতে
✅ ম্যানেজমেন্ট রিপোর্টিং এর জন্য
✅ উন্নতির জায়গা খুঁজে বের করতে
✅ ভবিষ্যৎ প্রজেক্ট প্ল্যানিং ও estimation করতে
🔸 সাধারণ কিছু Software Testing Metrics:
মেট্রিক্সের নাম | ব্যাখ্যা |
---|---|
Test Case Execution Status | কতগুলো টেস্ট কেস রান হয়েছে, পাস/ফেইল হয়েছে |
Defect Density | প্রতি ১০০০ লাইনে কতগুলো বাগ পাওয়া গেছে |
Test Coverage | কত শতাংশ কোড টেস্টিং এর আওতায় এসেছে |
Defect Leakage | প্রোডাকশনে যাওয়ার পরে কতগুলো বাগ ধরা পড়েছে |
Test Case Effectiveness | টেস্ট কেস দিয়ে কতটা কার্যকরভাবে বাগ ধরা পড়েছে |
Mean Time to Detect (MTTD) | একটা বাগ খুঁজে বের করতে গড়ে কত সময় লেগেছে |
Mean Time to Repair (MTTR) | একটা বাগ ঠিক করতে গড়ে কত সময় লেগেছে |
🔸 উদাহরণ:
ধরি ২০০টি টেস্ট কেস আছে, এর মধ্যে 160টা পাস করেছে, 30টা ফেইল করেছে, ১০টা এখনো রান হয়নি।
তাহলে:
Test Case Pass % = (160 / 200) × 100 = 80%
-
Failure % = (30 / 200) × 100 = 15%
-
Not Executed % = (10 / 200) × 100 = 5%
🔍 Software Testing-এ Metrics এর গুরুত্ব
🔹 ১. ✅ সফটওয়্যারের গুণমান ও পারফরম্যান্স যাচাই:
Test Metrics আমাদের বলে দেয় সফটওয়্যারের quality ও performance কেমন।
-
যেমন: defect density, test coverage, pass/fail rate — এসব দিয়ে সহজেই বোঝা যায় সফটওয়্যারটি কতটা নির্ভরযোগ্য।
🔹 ২. ✅ ডেভেলপারদের প্রোডাক্টিভিটি বাড়ানো:
-
সঠিক মেট্রিক্স ব্যবহার করলে ডেভেলপার ও টেস্টাররা বুঝতে পারে কোন জায়গায় সময় বেশি লাগছে, কোন জায়গায় ভুল বেশি হচ্ছে — সেই অনুযায়ী তারা নিজেদের কাজের ধরন উন্নত করতে পারে।
🔹 ৩. ✅ উন্নয়ন প্রয়োজন এমন জায়গা চিহ্নিত করা:
- Metrics সাহায্যে বোঝা যায় কোথায় bug বেশি, বা কোন অংশে test coverage কম — সেই জায়গায় enhancement বা optimization প্রয়োজন।
🔹 ৪. ✅ পরবর্তী টেস্টিং পর্যায়ে সিদ্ধান্ত নেওয়া সহজ হয়:
Metrics দেখে বুঝা যায় প্রজেক্টের সময়সূচি (schedule) ও খরচ (cost estimate) কীভাবে করা উচিত।
-
যেমন: যদি defect leakage বেশি হয়, তাহলে বুঝা যাবে আরও সময় দরকার বা resource বাড়াতে হবে।
🔹 ৫. ✅ বিদ্যমান প্রযুক্তি বা পদ্ধতির মূল্যায়ন:
Test metrics দেখে বর্তমান টেস্টিং পদ্ধতি বা টুলস কার্যকরী কিনা সেটা যাচাই করা যায়।
-
প্রয়োজনে নতুন টুল বা পদ্ধতি আনার সিদ্ধান্ত নেওয়া যায়।
🧮 Software Testing Metrics-এর প্রকারভেদ
সাধারণভাবে Software Testing Metrics কে তিনটি প্রধান ভাগে ভাগ করা হয়:
🔹 1. Process Metrics (প্রক্রিয়া সংক্রান্ত মেট্রিক্স)
টেস্টিং প্রক্রিয়া কীভাবে চলছে, তা বিশ্লেষণ করে।
উদাহরণ:
Test Effort (ঘন্টায় কত সময় লেগেছে)
-
Test Efficiency (টেস্ট করার সময় defect কতটা ধরা পড়েছে)
-
Defect Removal Efficiency (DRE)
উদ্দেশ্য:
প্রক্রিয়া কতটা কার্যকর ও উন্নত করা দরকার তা বোঝাতে সাহায্য করে।
🔹 2. Product Metrics (পণ্যের মান সম্পর্কিত মেট্রিক্স)
সফটওয়্যার পণ্যের গুণমান, পারফরম্যান্স, ও বাগ সম্পর্কিত তথ্য দেয়।
উদাহরণ:
Defect Density (প্রতি 1000 লাইনে কয়টি bug)
-
Code Coverage (কত % কোড টেস্ট হয়েছে)
-
Reliability (বিশ্বস্ততা)
উদ্দেশ্য:
সফটওয়্যারের গুণমান যাচাই ও বিশ্লেষণ।
🔹 3. Project Metrics (প্রজেক্ট সংক্রান্ত মেট্রিক্স)
পুরো প্রজেক্ট কতদূর অগ্রসর হয়েছে, কতটা সময়/রিসোর্স খরচ হয়েছে তা ট্র্যাক করে।
উদাহরণ:
Test Case Execution Rate
-
Schedule Variance
-
Cost Variance
-
% of Test Completion
উদ্দেশ্য:
প্রজেক্টের অগ্রগতি ট্র্যাক ও পরিকল্পনা অনুযায়ী চলছে কি না তা যাচাই।
🎯 Bonus: Common Testing Metrics Examples
মেট্রিক্স নাম | ব্যাখ্যা |
---|---|
Test Case Pass Rate | মোট টেস্ট কেসের মধ্যে কত % পাস করেছে |
Defect Leakage | টেস্টিং বাদ দিয়ে প্রোডাকশনে কত বাগ গেছে |
Mean Time to Detect | বাগ খুঁজে পেতে গড়ে কত সময় লেগেছে |
Test Execution Time | পুরো টেস্ট শেষ করতে কত সময় লেগেছে |
Reopened Defects | ফিক্স করার পর আবার defect খুলেছে কিনা |
✅ Software Metrics-এর ধরনসমূহ (Types of Software Metrics)
সফটওয়্যারের গুণমান, কার্যকারিতা ও উন্নয়ন প্রক্রিয়া পরিমাপ করার জন্য মেট্রিক্স তিনভাবে শ্রেণিবদ্ধ করা যায়:
🔹 ১. Internal Metrics (আভ্যন্তরীণ মেট্রিক্স)
এই মেট্রিক্সগুলো সেই বৈশিষ্ট্যগুলো পরিমাপ করে, যা ডেভেলপারদের কাছে গুরুত্বপূর্ণ, কিন্তু ইউজারদের জন্য সরাসরি দৃশ্যমান না।
-
উদাহরণ:
Lines of Code (LOC) — কত লাইন কোড লেখা হয়েছে
-
Cyclomatic Complexity
-
Code Maintainability
- ✅ ব্যবহার: কোডের জটিলতা, পরিপক্বতা এবং refactoring দরকার কি না তা বুঝতে।
🔹 ২. External Metrics (বহিঃস্থ মেট্রিক্স)
-
এই মেট্রিক্সগুলো ইউজারদের দৃষ্টিকোণ থেকে গুরুত্বপূর্ণ ফিচার বা বৈশিষ্ট্য পরিমাপ করে।
-
উদাহরণ:
Portability – সফটওয়্যার বিভিন্ন প্ল্যাটফর্মে চলে কিনা
-
Reliability – সফটওয়্যার কতটা নির্ভরযোগ্য
-
Functionality – ফিচারগুলো সঠিকভাবে কাজ করছে কিনা
-
Usability – ব্যবহারকারীর পক্ষে বুঝে ব্যবহার করা কতটা সহজ
✅ ব্যবহার: সফটওয়্যারের ব্যবহারযোগ্যতা ও বাস্তব দৃষ্টিকোণ থেকে গুণমান বিচার করতে।
🔹 ৩. Hybrid Metrics (মিশ্র মেট্রিক্স)
এই মেট্রিক্সগুলো product, process এবং resource মেট্রিক্সকে একত্রে বিবেচনা করে।
-
উদাহরণ:
-
Cost per Function Point (FP)
→ কত খরচে একটি function point তৈরি করা হয়েছে
→ যেখানে FP মানে হলো একটি সফটওয়্যারে কতগুলো business function বা কাজ রয়েছে।
-
✅ ব্যবহার: Productivity, resource efficiency, এবং cost-benefit বিশ্লেষণের জন্য।
🎯 সংক্ষেপে:
মেট্রিক্স টাইপ | কার জন্য গুরুত্বপূর্ণ | উদাহরণ |
---|---|---|
Internal | ডেভেলপার | LOC, Complexity |
External | ইউজার | Usability, Reliability |
Hybrid | ম্যানেজমেন্ট / বিশ্লেষক | Cost per FP, ROI, Productivity |
Test Metrics Life Cycle–এর চারটি ধাপ :
✅ ১. Analysis (বিশ্লেষণ)
ডেটা সংগ্রহ করার পর প্রথম ধাপে তা বিশ্লেষণ করা হয়—যেমন defect trends, টেস্টিং এর গতি, পাস/ফেইল রেট ইত্যাদি বোঝা হয়।
✅ ২. Communication (যোগাযোগ)
বিশ্লেষণের পর টেস্ট টিম, প্রজেক্ট ম্যানেজার ও স্টেকহোল্ডারদের মধ্যে তথ্য ভাগাভাগি করা হয়। এই ধাপে মেট্রিক্সের ফলাফল যোগাযোগ করা হয় যাতে সবাই অবগত থাকে।
✅ ৩. Evaluation (মূল্যায়ন)
যে মেট্রিক্স বা ফলাফল পাওয়া গেল তা মূল্যায়ন করা হয়—
-
লক্ষ্য অর্জিত হয়েছে কি না
-
টেস্টিং কার্যকর হয়েছে কি না
-
কোথায় উন্নতির সুযোগ আছে
✅ ৪. Report (রিপোর্ট তৈরি)
শেষ ধাপে মূল্যায়নের ভিত্তিতে একটি ডকুমেন্টেড রিপোর্ট তৈরি করা হয়, যেখানে স্পষ্টভাবে performance, defect, coverage ইত্যাদি উল্লেখ থাকে।