Thursday, May 28, 2009

आईये जानते हैं कोड कवरेज के बारे में

कुछ इतिहास कोड कवरेज का -
कोड कवरेज सामान्यतः साफ्टवेयर टेस्टिंग का एक छोटा सा हिस्सा माना जाता है, तो वहीं कई टेस्टर इस बात पर मतभेद रखते हैं कि यह डेवेलपमेंट के बाद यूनीट टेस्टिंग, मतलब डेवेलपमेंट का ही एक हिस्सा है..

अगर साफ्वेयर इंजिनियरिंग कि किताब पलटेंगे तो हम पाते हैं कि यह व्हाईट बाक्स टेस्टिंग का एक हिस्सा है.. इस विधा कि खोज सन् 1963 मे हुआ था.. उस जमाने में आजकल के प्रोग्रामिंग भाषा कि तरह कई प्रकार के तकनीकों में विभिन्नता नहीं थी, और इसे सिस्टेमेटिक साफ्टवेयर टेस्टिंग के लिये बनाया गया था..

कोड कवरेज क्या है -
कोड कवरेज कि मदद से हमे पता चलता है कि किसी भी साफ्टवेयर मे प्रयुक्त कितने लाईन सही-सही एग्जक्यूट हो रहे हैं, और जो एग्जक्यूट हो रहे हैं उन लाईनों में किसी प्रकार का एरर या गड़बड़ी तो नहीं है..

इसे इस प्रकार से देखते हैं.. मान लिजिये कि किसी साफ्टवेयर को बनाने में 1000 लाईन कि कोड लिखी गई है.. हम कोड कवरेज के किसी टूल की मदद से यह जानते हैं कि सारे 1000 लाईन ठीक प्रकार से काम कर रहे हैं या नहीं?

अब मान लेते हैं कि कोड कवरेज में 950 लाईन एग्जक्यूट हुये और उनमें कोई गड़बड़ी नहीं है, मगर शेष 50 लाईन जिसे एरर हैंडलिंग के लिये लिखा गया है, वह एग्जक्यूट नहीं हो पाये.. जिस हद तक संभव हो पाता है, उसे भी किसी प्रकार से एग्जक्यूट करने कि कोशिश की जाती है.. मगर आमतौर पर उनकी उपस्थिती को नकार कर छोड़ दिया जाता है..

कोड कवरेज के अलग-अलग प्रकार -
1. फंक्शनल कवरेज - इसमें किसी कोड में प्रयुक्त सभी फंक्शन को एग्जक्यूट किया जाता है..
2. डिसिजन कवरेज - इसमें सभी प्रकार के कंडिशन को जांचा जाता है.. (उदाहरण के तौर पर IF कंडिशन)
3. मॉडिफाईड कवरेज/डिसिजन कवरेज - इसमें सभी प्रकार के कंडिशन के हर पहलू कि जांच की जाती है.. (उदाहरण के तौर पर IF कंडिशन के TRUE/FALSE दोनों ही कंडिशन को जांचा जाता है)
4. स्टेटमेंट कवरेज - इसमें सारे कोड का एग्जक्यूट होना जरूरी होता है..
5. पाथ कवरेज - इसमें प्रोग्राम के सभी संभव रास्तों(Possible Routes) को जांचा जाता है..
6. इंट्री/एग्जिट कवरेज - इसमें प्रोग्राम के सारे इंट्री और एग्जिट वाले रास्तों की जांच की जाती है..

4 comments:

Udan Tashtari said...

बढ़िया जानकारी दे रहे हो.

दिनेशराय द्विवेदी said...

अपने पल्ले कुछ पड़ा, कुछ नहीं पड़ा। पर शायद जानना नहीं चाहता इसलिए भी।

PD said...

@ Sameer ji - Thanks.. :)

@ Dinesh ji - jab ise likh raha tha tab mere dhyan me yah tha ki 99% logon ke palle nahi parega, lekin phir bhi likh diya.. socha ki shayad aane vale generation ke kabhi kaam aa jaye.. vaise mere paas adhikansh knowledge computer ki aisi hi jisase aam logon ka koi sarokar nahi hai.. :(

L.Goswami said...

आगे ?