টেস্ট কেস তৈরি এবং রান করার মাধ্যমে প্রোগ্রামের প্রত্যাশিত কার্যকারিতা যাচাই করা হয়। টেস্ট কেস হল কিছু ইনপুট এবং প্রত্যাশিত আউটপুট সহ একটি নির্দিষ্ট পদ্ধতি, যা প্রোগ্রাম সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করতে সাহায্য করে।
Python এ unittest এবং pytest ফ্রেমওয়ার্কগুলি টেস্ট কেস তৈরি ও রান করার জন্য ব্যবহৃত হয়। নিচে Python-এ unittest ব্যবহার করে টেস্ট কেস তৈরি এবং রান করার উদাহরণ দেয়া হলো।
১. unittest দিয়ে টেস্ট কেস তৈরি করা
unittest Python এর বিল্ট-ইন টেস্টিং ফ্রেমওয়ার্ক। এটি ক্লাস-ভিত্তিক টেস্টিং প্রদান করে যেখানে প্রতিটি টেস্ট একটি পৃথক মেথড হিসাবে তৈরি করা হয়।
Step 1: একটি ফাংশন তৈরি করা যা টেস্ট করা হবে
ধরুন আমরা একটি add ফাংশন তৈরি করেছি যা দুইটি সংখ্যা যোগ করে।
# main.py
def add(a, b):
return a + b
Step 2: টেস্ট কেস তৈরি করা
টেস্ট কেস তৈরি করতে unittest.TestCase ক্লাস ব্যবহার করে একটি টেস্ট ক্লাস তৈরি করা হয়। প্রতিটি টেস্ট কেসকে মেথড আকারে লেখা হয়, এবং প্রত্যেক মেথডের নাম test_ দিয়ে শুরু হয়।
# test_main.py
import unittest
from main import add
class TestAddFunction(unittest.TestCase):
# টেস্ট কেস ১: পজিটিভ সংখ্যা
def test_add_positive(self):
self.assertEqual(add(2, 3), 5)
# টেস্ট কেস ২: নেগেটিভ এবং পজিটিভ সংখ্যা
def test_add_negative(self):
self.assertEqual(add(-1, 1), 0)
# টেস্ট কেস ৩: শূন্য
def test_add_zero(self):
self.assertEqual(add(0, 0), 0)
if __name__ == "__main__":
unittest.main()
এখানে:
test_add_positive: পজিটিভ সংখ্যা যোগের টেস্ট।test_add_negative: নেগেটিভ এবং পজিটিভ সংখ্যার যোগের টেস্ট।test_add_zero: শূন্য যোগের টেস্ট।
২. টেস্ট রান করা
টেস্ট রান করার জন্য python কমান্ড ব্যবহার করে টেস্ট স্ক্রিপ্ট রান করতে হয়। টার্মিনালে নিচের মত কমান্ড চালান:
python test_main.py
আউটপুট:
...
----------------------------------------------------------------------
Ran 3 tests in 0.001s
OK
এই আউটপুটটি নির্দেশ করে যে সবগুলো টেস্ট কেস সফলভাবে পাস হয়েছে। যদি কোনো টেস্ট কেস ফেল হয় তবে FAIL মেসেজ সহ ত্রুটির বিবরণ প্রদর্শিত হবে।
pytest দিয়ে টেস্ট কেস তৈরি করা এবং রান করা
pytest একটি বহুল ব্যবহৃত টেস্টিং ফ্রেমওয়ার্ক, যা unittest এর তুলনায় বেশি সুবিধাজনক এবং সহজলভ্য।
Step 1: টেস্ট কেস তৈরি করা
pytest ফ্রেমওয়ার্কে টেস্ট ফাইলের নাম test_ দিয়ে শুরু হয় এবং টেস্ট মেথডগুলিও test_ দিয়ে শুরু হয়। আমরা একই add ফাংশনের জন্য pytest দিয়ে টেস্ট কেস তৈরি করব।
# test_main.py
from main import add
def test_add_positive():
assert add(2, 3) == 5
def test_add_negative():
assert add(-1, 1) == 0
def test_add_zero():
assert add(0, 0) == 0
Step 2: টেস্ট রান করা
pytest রান করার জন্য টার্মিনালে নিচের কমান্ডটি ব্যবহার করতে হবে:
pytest test_main.py
আউটপুট:
============================= test session starts =============================
collected 3 items
test_main.py ... [100%]
============================== 3 passed in 0.01s ==============================
এখানে:
.চিহ্নগুলি নির্দেশ করে যে টেস্ট পাস হয়েছে।- যদি কোনো টেস্ট ফেল হয়, তাহলে
Fচিহ্ন এবং ত্রুটির বিবরণ প্রদর্শিত হবে।
টেস্ট কেসের গুরুত্বপূর্ণ অ্যাসার্ট ফাংশন
Python এর unittest এ বিভিন্ন ধরনের assertion method রয়েছে, যা দিয়ে আমরা বিভিন্নভাবে টেস্টের ফলাফল যাচাই করতে পারি:
- assertEqual(a, b): চেক করে
a == b - assertNotEqual(a, b): চেক করে
a != b - assertTrue(x): চেক করে
x is True - assertFalse(x): চেক করে
x is False - assertIn(a, b): চেক করে
aঅবজেক্টটিbতে রয়েছে কিনা - assertIsNone(x): চেক করে
x is None
একটি উদাহরণ: unittest দিয়ে সম্পূর্ণ টেস্ট
import unittest
# প্রোগ্রাম ফাংশন
def multiply(a, b):
return a * b
class TestMultiplyFunction(unittest.TestCase):
def test_multiply_positive(self):
self.assertEqual(multiply(3, 5), 15)
def test_multiply_negative(self):
self.assertEqual(multiply(-1, 5), -5)
def test_multiply_zero(self):
self.assertEqual(multiply(0, 5), 0)
if __name__ == "__main__":
unittest.main()
উপসংহার
টেস্ট কেস তৈরি এবং রান করা সফটওয়্যার ডেভেলপমেন্টে অত্যন্ত গুরুত্বপূর্ণ। Python এ unittest এবং pytest দুটি শক্তিশালী টেস্টিং ফ্রেমওয়ার্ক যা টেস্ট কেস তৈরি এবং রান করতে সহায়ক। টেস্টিংয়ের মাধ্যমে সফটওয়্যারের কার্যকারিতা এবং নির্ভুলতা নিশ্চিত করা যায়।