Regression Testing
Regression Testing কী?
Regression Testing হলো একটি পরীক্ষা প্রক্রিয়া যেখানে সফটওয়্যারের কোডে যেকোনো পরিবর্তন (যেমন নতুন ফিচার যোগ করা, কোড অপ্টিমাইজেশন ইত্যাদি) করার পর মূলত সেগুলোর প্রভাব পড়ে এমন অংশগুলো আবার টেস্ট করা হয়। এর উদ্দেশ্য হচ্ছে নিশ্চিত হওয়া যে, নতুন পরিবর্তনের কারণে সফটওয়্যারে নতুন কোনো বাগ বা ত্রুটি প্রবেশ করেনি।
Regression এর অর্থ
Regression মানে হচ্ছে "ফিরে আসা"। সফটওয়্যার টেস্টিং-এ এর অর্থ হলো পূর্বে ঠিকঠাক কাজ করা কোডে হঠাৎ করে কোনো বাগ বা সমস্যা ফিরে আসা।
Regression Testing কিভাবে করা হয়?
-
প্রথমে কোডে কোনো পরিবর্তন আনা হয় — যেমন নতুন ফিচার যোগ, কোড অপ্টিমাইজ করা, বা বাগ ঠিক করা ইত্যাদি।
-
পরিবর্তনের পর, আগের টেস্ট স্যুট (Test Suite) চালানো হয়, যেখানে আগে ঠিকঠাক কাজ করা অংশগুলো হয়তো এখন ফেইল করতে পারে।
-
যেসব অংশে সমস্যা দেখা দিয়েছে, সেগুলো ডিবাগ করে বাগ খুঁজে বের করা হয়।
-
এরপর প্রয়োজন অনুযায়ী বাগ ফিক্স করে কোড আপডেট করা হয়।
-
Regression Testing করার জন্য আগের টেস্ট কেসগুলো থেকে সংশোধিত অংশ ও প্রভাবিত অংশগুলো কভার করা টেস্ট কেস নির্বাচন করা হয়।
-
প্রয়োজন হলে নতুন টেস্ট কেস যোগ করা যায়।
-
তারপর সেই টেস্ট কেসগুলো দিয়ে আবার পরীক্ষা চালিয়ে দেখা হয় সফটওয়্যার পুরোপুরি ঠিকঠাক কাজ করছে কি না।
Regression Testing এর ধাপ
Progressive Phase: নতুন ফিচার বা কোড যোগ করা এবং এগুলোর পরীক্ষণ, যেখানে নতুন বা পরিবর্তিত মডিউল ও পূর্বের মডিউলের ইন্টারফেসে সমস্যা পাওয়া যায়।
-
Regressive Phase: নতুন পরিবর্তনের ফলে আগের যেকোনো কোড বা ফিচারে সমস্যা হয়েছে কিনা সেটা খোঁজা।
Regression Testing এর কৌশল
আগের থেকে নির্বাচিত টেস্ট কেসগুলোকে একটি "Regression Test Bucket" এ রাখা হয়।
-
পুরো টেস্ট বালতি মাঝে মাঝে সম্পূর্ণ চালানো হয়।
-
প্রতি বার কোড পরিবর্তনের পর একটি ছোট subset চালানো হয়, যাতে নতুন বা সংশোধিত অংশগুলো ভালোভাবে টেস্ট হয়।
Regression Testing এর সুবিধা
নতুন ফিচার বা কোড পরিবর্তনের পর নতুন বাগ প্রবেশ করেনি তা নিশ্চিত করা যায়।
-
অধিকাংশ টেস্ট কেস আগের থেকে জানা থাকায় সহজেই অটোমেশন করা যায়।
-
কোডের মান (Quality) বজায় রাখতে সাহায্য করে।
Regression Testing এর অসুবিধা
কোন টেস্ট কেসগুলো বাছাই করবে এবং কতটুকু subset ব্যবহার করবে সেটা নির্ধারণ কঠিন।
-
যদি অটোমেটেড টুল ব্যবহার না করা হয়, তবে সময় এবং রিসোর্স বেশি লাগতে পারে।
-
ছোট ছোট কোড পরিবর্তনের পরও Regression Testing করতে হয়, যা মাঝে মাঝে জটিল হতে পারে।