Skill

ইউনিট টেস্টিং

পাইথন প্রোগ্রামিং (Python Programming) - Computer Programming

383

ইউনিট টেস্টিং হলো প্রোগ্রামিংয়ের একটি পদ্ধতি, যা সফটওয়্যারের ছোট ছোট অংশ বা ইউনিটকে আলাদা করে পরীক্ষা করে নিশ্চিত করে যে সেগুলো সঠিকভাবে কাজ করছে। পাইথনে unittest নামে একটি বিল্ট-ইন মডিউল রয়েছে যা ইউনিট টেস্ট তৈরি ও চালাতে সহায়ক।

ইউনিট টেস্টিং কেন গুরুত্বপূর্ণ?

  1. ত্রুটি শনাক্তকরণ: কোডের ছোট ছোট অংশগুলো আলাদা করে পরীক্ষা করলে ত্রুটি সহজেই শনাক্ত করা যায়।
  2. কোডের গুণগত মান বৃদ্ধি: ইউনিট টেস্টিং প্রোগ্রামের গুণগত মান বাড়াতে সহায়ক।
  3. কোড পরিবর্তনের নিরাপত্তা: কোড পরিবর্তন করার পরেও ইউনিট টেস্টের মাধ্যমে নিশ্চিত হওয়া যায় যে, অন্য অংশগুলো ঠিকমতো কাজ করছে।
  4. সহজ ডিবাগিং: ছোট ছোট টেস্টিং ইউনিট থাকলে ত্রুটি খুঁজে বের করা সহজ হয়।

unittest মডিউল ব্যবহার করে ইউনিট টেস্টিং

unittest পাইথনে বিল্ট-ইন একটি মডিউল যা ইউনিট টেস্ট তৈরির জন্য ব্যবহৃত হয়।

unittest মডিউল ব্যবহার করে ইউনিট টেস্টের উদাহরণ

ধরুন, আমরা একটি সহজ ফাংশন তৈরি করবো যা দুটি সংখ্যার যোগফল বের করে, এবং এর জন্য একটি টেস্ট লিখবো।

# calculator.py - ফাংশন তৈরি
def add(a, b):
    return a + b

এখন, আমরা unittest মডিউল ব্যবহার করে add() ফাংশনের জন্য একটি ইউনিট টেস্ট লিখবো।

# test_calculator.py - ইউনিট টেস্ট
import unittest
from calculator import add

class TestCalculator(unittest.TestCase):
    
    def test_add(self):
        self.assertEqual(add(5, 3), 8)     # সঠিক আউটপুট
        self.assertEqual(add(-1, 1), 0)    # নেগেটিভ সংখ্যা
        self.assertEqual(add(0, 0), 0)     # শূন্যের যোগফল

if __name__ == "__main__":
    unittest.main()

এখানে, TestCalculator ক্লাসটি unittest.TestCase ক্লাস থেকে ইনহেরিট করেছে, এবং এতে একটি টেস্ট মেথড test_add() রয়েছে যা add ফাংশনের জন্য বিভিন্ন ইনপুট ও আউটপুট পরীক্ষা করে।

টেস্ট রান করা

python test_calculator.py

আউটপুট:

...
----------------------------------------------------------------------
Ran 3 tests in 0.001s

OK

এটি নির্দেশ করে যে টেস্টগুলো সফলভাবে পাস হয়েছে।


বিভিন্ন assertion মেথড

unittest মডিউলে বিভিন্ন assertion মেথড রয়েছে যা টেস্ট লিখতে সহায়ক। কিছু গুরুত্বপূর্ণ assertion মেথড নিচে দেওয়া হলো:

  • assertEqual(a, b): চেক করে যে a এবং b সমান কিনা।
  • assertNotEqual(a, b): চেক করে যে a এবং b সমান নয় কিনা।
  • assertTrue(x): চেক করে যে x সত্য কিনা।
  • assertFalse(x): চেক করে যে x মিথ্যা কিনা।
  • assertIsNone(x): চেক করে যে x None কিনা।
  • assertIsNotNone(x): চেক করে যে x None নয় কিনা।

আরও কিছু উদাহরণ

ধরুন, আমরা একটি ফাংশন লিখবো যা তালিকার গড় বের করবে। আমরা এর জন্য টেস্ট তৈরি করবো।

# math_functions.py - গড় বের করার ফাংশন
def average(numbers):
    if not numbers:
        return 0
    return sum(numbers) / len(numbers)

এখন, আমরা এই average() ফাংশনের জন্য একটি টেস্ট লিখবো।

# test_math_functions.py - ইউনিট টেস্ট
import unittest
from math_functions import average

class TestMathFunctions(unittest.TestCase):
    
    def test_average(self):
        self.assertEqual(average([1, 2, 3]), 2.0)  # সাধারণ ক্ষেত্রে গড়
        self.assertEqual(average([]), 0)           # খালি তালিকা
        self.assertEqual(average([5]), 5)          # একমাত্র উপাদান

if __name__ == "__main__":
    unittest.main()

আউটপুট:

...
----------------------------------------------------------------------
Ran 3 tests in 0.001s

OK

ইউনিট টেস্টিংয়ের সুবিধা এবং সীমাবদ্ধতা

সুবিধা:

  1. ত্রুটি দ্রুত শনাক্তকরণ।
  2. উন্নত মানের এবং সহজে পরিবর্তনযোগ্য কোড।
  3. কোড রিগ্রেশন রোধ করে।

সীমাবদ্ধতা:

  1. পুরো প্রোগ্রাম নয়, বরং ছোট অংশ পরীক্ষা করা হয়।
  2. টেস্ট লেখা সময়সাপেক্ষ হতে পারে।
  3. প্রতিটি টেস্ট সফল হলেও সম্পূর্ণ প্রোগ্রাম সঠিক হতে পারে না।

সারসংক্ষেপ

ইউনিট টেস্টিং হলো কোডের ছোট ছোট অংশের জন্য পরীক্ষা পদ্ধতি, যা কোডের সঠিকতা এবং স্থায়িত্ব নিশ্চিত করে। পাইথনের unittest মডিউল ব্যবহার করে সহজেই ইউনিট টেস্ট তৈরি এবং চালানো যায়, যা কোডের মান উন্নত করে এবং ত্রুটি দ্রুত শনাক্ত করতে সহায়ক।

Content added By

টেস্টিং হলো একটি প্রক্রিয়া যার মাধ্যমে সফটওয়্যার বা প্রোগ্রামের কার্যকারিতা যাচাই করা হয়, যাতে করে এটি প্রত্যাশিতভাবে কাজ করছে কিনা তা নিশ্চিত করা যায়। টেস্টিংয়ের মূল লক্ষ্য হলো সফটওয়্যারের ত্রুটি (বাগ) খুঁজে বের করা এবং নির্ভুল কার্যকারিতা নিশ্চিত করা। সফটওয়্যার উন্নয়ন প্রক্রিয়ার অত্যন্ত গুরুত্বপূর্ণ একটি অংশ হচ্ছে টেস্টিং, কারণ এটি সফটওয়্যারের গুণগত মান বজায় রাখতে সহায়ক।

টেস্টিং কেন দরকার

১. ত্রুটি শনাক্তকরণ: টেস্টিংয়ের মাধ্যমে প্রোগ্রামের মধ্যে যে কোন সম্ভাব্য ত্রুটি (বাগ) শনাক্ত করা যায়। এটি ব্যবহারকারীর অভিজ্ঞতা এবং অ্যাপ্লিকেশনের কার্যকারিতা নিশ্চিত করে।

২. গুণগত মান নিশ্চিতকরণ: একটি সফটওয়্যার বা অ্যাপ্লিকেশন সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করতে টেস্টিং করা হয়। এটি সফটওয়্যারের গুণগত মান বৃদ্ধি করে এবং ব্যবহারকারীর আস্থা বাড়ায়।

৩. নিরাপত্তা নিশ্চিতকরণ: টেস্টিংয়ের মাধ্যমে সফটওয়্যারের নিরাপত্তা দুর্বলতা চিহ্নিত করা যায়। বিশেষ করে যখন কোনো আর্থিক লেনদেন বা সংবেদনশীল তথ্য ব্যবহৃত হয়, তখন নিরাপত্তা নিশ্চিত করতে টেস্টিং অপরিহার্য।

কোডের কার্যক্ষমতা বৃদ্ধি: টেস্টিং কোডের কার্যক্ষমতা পরীক্ষা করে, যা প্রোগ্রামের পারফরম্যান্স এবং স্থায়িত্ব নিশ্চিত করে।

রেগ্রেশন টেস্টিং: নতুন ফিচার যুক্ত বা বিদ্যমান ফিচার আপডেট করার পর অন্যান্য ফিচার প্রভাবিত হচ্ছে কিনা তা টেস্টিংয়ের মাধ্যমে নিশ্চিত করা হয়।

ব্যবহারকারীর সন্তুষ্টি: একটি সফটওয়্যার বা অ্যাপ্লিকেশন সফলভাবে কাজ করলে ব্যবহারকারীর সন্তুষ্টি বৃদ্ধি পায়। টেস্টিং সফটওয়্যারের কার্যকারিতা এবং নিরাপত্তা যাচাই করে ব্যবহারকারীদের জন্য একটি নির্ভরযোগ্য অভিজ্ঞতা প্রদান করে।

টেস্টিংয়ের প্রকারভেদ

টেস্টিং বিভিন্ন ধরণের হতে পারে, যেমন:

১. ইউনিট টেস্টিং (Unit Testing)

ইউনিট টেস্টিং হল প্রোগ্রামের ছোট ছোট অংশ বা ফাংশনকে আলাদাভাবে পরীক্ষা করা। এর মাধ্যমে কোডের নির্দিষ্ট অংশ প্রত্যাশিতভাবে কাজ করছে কিনা তা যাচাই করা হয়।

২. ইন্টিগ্রেশন টেস্টিং (Integration Testing)

ইন্টিগ্রেশন টেস্টিং বিভিন্ন ইউনিটকে একত্রিত করে পরীক্ষার প্রক্রিয়া। বিভিন্ন ইউনিট একত্রে কাজ করছে কিনা এবং কোনো ফাংশনাল ইন্টারফেসে ত্রুটি থাকছে কিনা তা পরীক্ষা করা হয়।

৩. সিস্টেম টেস্টিং (System Testing)

সিস্টেম টেস্টিং সম্পূর্ণ সিস্টেমকে পরীক্ষা করে। এটি বিভিন্ন অংশের কার্যকারিতা এবং ফিচারগুলো সঠিকভাবে কাজ করছে কিনা তা যাচাই করে।

৪. এক্সসেপ্টেন্স টেস্টিং (Acceptance Testing)

ব্যবহারকারীর প্রয়োজনীয়তা অনুযায়ী সফটওয়্যারটি সঠিকভাবে কাজ করছে কিনা তা যাচাই করা হয়। এটি সাধারণত ফাইনাল টেস্টিং হিসেবে ধরা হয় এবং ব্যবহারকারী বা ক্লায়েন্টের মাধ্যমে পরিচালিত হয়।

৫. রিগ্রেশন টেস্টিং (Regression Testing)

রিগ্রেশন টেস্টিং একটি গুরুত্বপূর্ণ প্রক্রিয়া যেখানে নতুন কোড যোগ বা কোড পরিবর্তনের পর পুনরায় টেস্টিং করা হয়, যাতে পূর্ববর্তী কোড বা ফিচারগুলো সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করা যায়।

৬. লোড এবং পারফরমেন্স টেস্টিং (Load and Performance Testing)

এই টেস্টিং ব্যবহার করে প্রোগ্রামের পারফরম্যান্স এবং দক্ষতা যাচাই করা হয়, বিশেষ করে যখন এটি ভারী লোড বা বহু ব্যবহারকারীর চাপ সামলাচ্ছে।


টেস্টিং টুলস

Python-এ টেস্টিংয়ের জন্য বেশ কিছু জনপ্রিয় টুলস রয়েছে, যেমন:

  1. unittest: Python এর বিল্ট-ইন টেস্টিং ফ্রেমওয়ার্ক যা ইউনিট টেস্টিং এবং ছোট টেস্টিং কাঠামো তৈরি করতে ব্যবহৃত হয়।
  2. pytest: Python-এ বহুল ব্যবহৃত একটি টেস্টিং ফ্রেমওয়ার্ক যা সহজে ইউনিট এবং ফাংশনাল টেস্টিং করতে পারে।
  3. nose2: এটি unittest এর উপরে নির্মিত এবং unittest এর সাথে আরও ক্ষমতা যোগ করে।
  4. Selenium: এটি ওয়েব ব্রাউজারের জন্য ব্যবহৃত একটি টেস্টিং ফ্রেমওয়ার্ক। ওয়েব অ্যাপ্লিকেশনগুলোর ইন্টারফেস টেস্টিংয়ের জন্য এটি অত্যন্ত জনপ্রিয়।

উদাহরণ: ইউনিট টেস্টিং কোড

import unittest

def add(a, b):
    return a + b

class TestAddFunction(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(2, 3), 5)
        self.assertEqual(add(-1, 1), 0)
        self.assertEqual(add(0, 0), 0)

if __name__ == "__main__":
    unittest.main()

এখানে unittest ফ্রেমওয়ার্ক ব্যবহার করে add ফাংশনের জন্য কিছু টেস্ট লেখা হয়েছে, যাতে এটি সঠিকভাবে কাজ করছে কিনা যাচাই করা যায়।

উপসংহার

টেস্টিং সফটওয়্যার ডেভেলপমেন্ট প্রক্রিয়ার একটি অত্যাবশ্যকীয় অংশ। এটি সফটওয়্যারের কার্যকারিতা, গুণগত মান এবং নিরাপত্তা নিশ্চিত করে। টেস্টিং প্রক্রিয়া ব্যবহার করে ডেভেলপাররা প্রোগ্রামের ত্রুটি সনাক্ত করতে পারে, যা পরবর্তী সময়ে বড় ধরনের সমস্যা এড়াতে সাহায্য করে এবং ব্যবহারকারীর সন্তুষ্টি বৃদ্ধি করে।

Content added By

unittest পাইথনের একটি বিল্ট-ইন মডিউল, যা ইউনিট টেস্ট তৈরি ও চালানোর জন্য ব্যবহৃত হয়। এটি বিভিন্ন ফাংশনের আউটপুট যাচাই করতে এবং প্রোগ্রামের সঠিকতা নিশ্চিত করতে সহায়ক। unittest মডিউল দিয়ে আমরা ছোট ছোট ইউনিট বা অংশ টেস্ট করতে পারি, যা বড় প্রোগ্রামের নির্ভুলতা নিশ্চিত করতে সাহায্য করে।

unittest মডিউল দিয়ে টেস্ট লেখা

ধাপ ১: unittest মডিউল ইমপোর্ট করা

import unittest

ধাপ ২: টেস্ট ক্লাস তৈরি করা

unittest ব্যবহার করে একটি টেস্ট ক্লাস তৈরি করতে হবে, যা unittest.TestCase ক্লাস থেকে ইনহেরিট করবে। এই ক্লাসের মধ্যে টেস্ট মেথড গুলো test_ শব্দ দিয়ে শুরু করতে হবে।

উদাহরণ ১: দুটি সংখ্যার যোগফল বের করার একটি ফাংশনের জন্য টেস্ট

ধরি, আমরা একটি add ফাংশন লিখেছি, যা দুটি সংখ্যার যোগফল বের করে। এখন আমরা unittest মডিউল ব্যবহার করে এই ফাংশনটি টেস্ট করবো।

# calculator.py - ফাংশন সংজ্ঞা
def add(a, b):
    return a + b

এখন, add ফাংশনের জন্য unittest মডিউল ব্যবহার করে টেস্ট লেখা যাক।

# test_calculator.py - টেস্ট কোড
import unittest
from calculator import add

class TestCalculator(unittest.TestCase):
    
    def test_add_positive(self):
        self.assertEqual(add(2, 3), 5)    # পজিটিভ সংখ্যা পরীক্ষা
        self.assertEqual(add(0, 5), 5)    # শূন্য পরীক্ষা
    
    def test_add_negative(self):
        self.assertEqual(add(-1, -1), -2)  # নেগেটিভ সংখ্যা পরীক্ষা
        self.assertEqual(add(-1, 2), 1)    # মিশ্র সংখ্যা পরীক্ষা

if __name__ == "__main__":
    unittest.main()

এই টেস্ট কোডে TestCalculator নামে একটি ক্লাস তৈরি করা হয়েছে, যা unittest.TestCase থেকে ইনহেরিট করেছে। এই ক্লাসের মধ্যে test_add_positive এবং test_add_negative নামে দুটি টেস্ট মেথড রয়েছে, যা add ফাংশনের জন্য বিভিন্ন আর্গুমেন্ট দিয়ে আউটপুট পরীক্ষা করে।

টেস্ট রান করা

python test_calculator.py

আউটপুট:

..
----------------------------------------------------------------------
Ran 2 tests in 0.001s

OK

এখানে .. নির্দেশ করে যে দুটি টেস্ট সফলভাবে পাস হয়েছে।


বিভিন্ন assertion মেথড

unittest মডিউল বিভিন্ন assertion মেথড সরবরাহ করে, যা বিভিন্ন প্রকারের টেস্ট লিখতে সাহায্য করে। কিছু গুরুত্বপূর্ণ assertion মেথড:

  • assertEqual(a, b): a এবং b সমান কিনা তা পরীক্ষা করে।
  • assertNotEqual(a, b): a এবং b সমান নয় কিনা তা পরীক্ষা করে।
  • assertTrue(x): x সত্য কিনা তা পরীক্ষা করে।
  • assertFalse(x): x মিথ্যা কিনা তা পরীক্ষা করে।
  • assertIsNone(x): x None কিনা তা পরীক্ষা করে।
  • assertIsNotNone(x): x None নয় কিনা তা পরীক্ষা করে।

উদাহরণ ২: গড় বের করার ফাংশনের জন্য টেস্ট

# math_functions.py - গড় বের করার ফাংশন
def average(numbers):
    if not numbers:
        return 0
    return sum(numbers) / len(numbers)

average ফাংশনের জন্য টেস্ট লেখা যাক।

# test_math_functions.py - টেস্ট কোড
import unittest
from math_functions import average

class TestMathFunctions(unittest.TestCase):
    
    def test_average(self):
        self.assertEqual(average([1, 2, 3]), 2.0)   # সাধারণ টেস্ট
        self.assertEqual(average([]), 0)            # খালি তালিকা
        self.assertEqual(average([5]), 5)           # একমাত্র উপাদান

    def test_average_invalid(self):
        self.assertNotEqual(average([1, 2, 3]), 3)  # ভুল আউটপুট পরীক্ষা

if __name__ == "__main__":
    unittest.main()

আউটপুট:

..
----------------------------------------------------------------------
Ran 2 tests in 0.001s

OK

unittest এর সুবিধা এবং সীমাবদ্ধতা

সুবিধা:

  1. সহজ সিনট্যাক্স: unittest মডিউল সহজ সিনট্যাক্স দিয়ে টেস্টিংকে সহজ করে তোলে।
  2. স্বয়ংক্রিয় টেস্টিং: কোড পরিবর্তনের পর দ্রুত টেস্টিং করতে সহায়ক।
  3. অ্যাসারশন মেথড: বিভিন্ন assertion মেথড রয়েছে, যা বিভিন্ন ধরনের আউটপুট পরীক্ষা করা সহজ করে।

সীমাবদ্ধতা:

  1. কঠিন টেস্ট কেস: বড় এবং জটিল প্রোগ্রামের জন্য অনেক টেস্ট কেস লিখতে হয়।
  2. টেস্ট লেখা সময়সাপেক্ষ: unittest লেখার জন্য সময় প্রয়োজন।
  3. সীমিত রিপোর্টিং: unittest এর বিল্ট-ইন রিপোর্টিং সীমিত, যা বড় প্রজেক্টে পর্যাপ্ত নয়।

সারসংক্ষেপ

unittest মডিউল দিয়ে ইউনিট টেস্ট লেখা সহজ এবং কার্যকরী, যা ছোট ছোট ইউনিট বা অংশ পরীক্ষা করতে সাহায্য করে। এটি কোডের স্থায়িত্ব ও সঠিকতা নিশ্চিত করতে সহায়ক এবং কোডের গুণগত মান উন্নত করে। unittest মডিউল ব্যবহার করে কোড পরিবর্তনের পরেও এর সঠিকতা নিশ্চিত করা যায়।

Content added By

টেস্ট কেস তৈরি এবং রান করার মাধ্যমে প্রোগ্রামের প্রত্যাশিত কার্যকারিতা যাচাই করা হয়। টেস্ট কেস হল কিছু ইনপুট এবং প্রত্যাশিত আউটপুট সহ একটি নির্দিষ্ট পদ্ধতি, যা প্রোগ্রাম সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করতে সাহায্য করে।

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 রয়েছে, যা দিয়ে আমরা বিভিন্নভাবে টেস্টের ফলাফল যাচাই করতে পারি:

  1. assertEqual(a, b): চেক করে a == b
  2. assertNotEqual(a, b): চেক করে a != b
  3. assertTrue(x): চেক করে x is True
  4. assertFalse(x): চেক করে x is False
  5. assertIn(a, b): চেক করে a অবজেক্টটি b তে রয়েছে কিনা
  6. 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 দুটি শক্তিশালী টেস্টিং ফ্রেমওয়ার্ক যা টেস্ট কেস তৈরি এবং রান করতে সহায়ক। টেস্টিংয়ের মাধ্যমে সফটওয়্যারের কার্যকারিতা এবং নির্ভুলতা নিশ্চিত করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...