यूनिट टेस्टिंग क्या है?
यूनिट टेस्टिंग एक प्रकार का सॉफ्टवेयर टेस्टिंग है जहां सिस्टम के प्रत्येक व्यक्तिगत घटक का परीक्षण किया जाता है। यूनिट टेस्टिंग डेवलपर्स के लिए एक महत्वपूर्ण अभ्यास है। यह सुनिश्चित करता है कि सॉफ्टवेयर का प्रत्येक घटक अपेक्षा के अनुरूप उचित रूप से कार्य कर रहा है। यूनिट टेस्टिंग मुख्य रूप से सॉफ्टवेयर डेवलपमेंट के कोडिंग चरण के दौरान डेवलपर्स द्वारा की जाती है।
यूनिट टेस्टिंग समस्याओं को ठीक करना आसान बनाती है क्योंकि डेवलपर्स को पता चल जाता है कि सिस्टम या सॉफ्टवेयर के किस विशेष घटक में समस्या है और डेवलपर्स उस विशेष यूनिट को ठीक कर सकते हैं।
Python यूनिट टेस्टिंग
Python में एक इन-बिल्ट पैकेज unittest होता है जिसका उपयोग यूनिट टेस्टिंग करने के लिए किया जाता है। यूनिट टेस्टिंग कोड को फ्यूचर-प्रूफ बनाती है क्योंकि डेवलपर्स उन संभावित मामलों का अनुमान लगाते हैं जहां कोड फेल हो सकता है और कोड का उन मामलों के विरुद्ध परीक्षण किया जाता है। भले ही हम कुछ मामलों को मिस कर दें, फिर भी अधिकांश मामलों को संबोधित किया जाएगा और कोड का उन मामलों के विरुद्ध परीक्षण किया जाएगा।
unittest मॉड्यूल को Python प्रोग्राम में इस प्रकार इम्पोर्ट करके उपयोग किया जा सकता है।
import unittest
उदाहरण
मान लीजिए, हमारे पास एक सिंपल फंक्शन है, जो वर्ग का क्षेत्रफल 계산 करता है। इस फ़ाइल को 'area.py' नाम से सेव करें।
def area(a):
return (a+a)अब, उपरोक्त फंक्शन के लिए यूनिट टेस्ट कोड लिखते हैं, जो हमें बताएगा कि हमारा फंक्शन अपेक्षित आउटपुट देता है या नहीं। यूनिट टेस्ट कोड फ़ाइल को "unit_test.py" नाम से सेव करें।
unit_test.py -
from area import *
import unittest
class Testarea(unittest.TestCase):
def test_area(self):
self.assertAlmostEqual(area(5),25)
self.assertAlmostEqual(area(3),9)
self.assertAlmostEqual(area(4),16)यहां, जिस फ़ाइल में टेस्ट किए जाने वाले कोड हैं, उसे इम्पोर्ट किया जाता है। unittest मेथड assertAlmostEqual() का उपयोग किया जाता है। यह कुछ इनपुट के साथ area फंक्शन को कॉल करता है और दूसरा पैरामीटर फंक्शन द्वारा लौटाए जाने वाले अपेक्षित आउटपुट को संग्रहीत करता है। यदि area() द्वारा लौटाया गया आउटपुट अपेक्षित आउटपुट के बराबर है, तो टेस्ट पास होता है, अन्यथा यह फेल होता है।
अब कमांड प्रॉम्प्ट से unit_test.py चलाएं ताकि जांच सकें कि हमारा area() कोड टेस्ट पास करता है या नहीं।
यूनिट टेस्ट फ़ाइल चलाने के लिए कमांड प्रॉम्प्ट से निम्नलिखित कमांड निष्पादित करें।
python -m unittest unit_test.py
आउटपुट
C:\Users\Inderjit Singh\Desktop>python -m unittest unit_test.py
F
======================================================================
FAIL: test_area (unit_test.Testarea)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\Inderjit Singh\Desktop\unit_test.py", line 7, in test_area
self.assertAlmostEqual(area(5),25)
AssertionError: 10 != 25 within 7 places (15 difference)
----------------------------------------------------------------------
Ran 1 test in 0.001s
FAILED (failures=1)हमारा कोड यूनिट टेस्टिंग में फेल हो गया है। कारण ट्रेसबैक में दिया गया है। पहला फंक्शन self.assertAlmostEqual(area(5),25) हमारे कोड को फेल करता है। चूंकि फंक्शन 10 लौटाता है लेकिन अपेक्षित आउटपुट 25 है।
चूंकि यह एक आसान फंक्शन है, हम इसका फिक्स जानते हैं। हमारा area() कोड गलत है। इसे (a+a) के बजाय (a*a) लौटाना चाहिए।
आइए area() कोड को ठीक करें और यूनिट टेस्ट को फिर से चलाएं।
def area(a):
return (a*a)यूनिट टेस्ट को फिर से चलाएं
C:\Users\Inderjit Singh\Desktop>python -m unittest unit_test.py . ---------------------------------------------------------------------- Ran 1 test in 0.000s OK
अब, चूंकि हमने area() में कोड को सही कर दिया है, यह OK स्टेटस के साथ सफलतापूर्वक चलता है। यह सुनिश्चित करता है कि हमारा कोड unit_test.py फ़ाइल में निर्दिष्ट सभी मामलों के विरुद्ध पूरी तरह से चलता है।
यह यूनिट टेस्टिंग के बारे में एक बहुत ही सरल विचार था। unittest मॉड्यूल में विभिन्न अन्य फंक्शन्स हैं जिनका उपयोग डेवलपमेंट प्रोसेस में यूनिट टेस्टिंग में किया जाता है।