Thursday, May 28, 2009

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

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

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

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

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

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

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

Wednesday, May 27, 2009

क्या मंदी सच में खत्म होने की ओर है?

अभी-अभी 1 घंटे पहले मेरी टीम से तीन लोगों को बाहर का रास्ता दिखा दिया गया है.. उन्हें कहा गया है कि कल से आने कि कोई जरूरत नहीं है.. अगले महिने का वेतन उन्हें मिल जायेगा.. बस इतना ही.. वैसे तो बहुत पहले से ही इसके आसार नजर आ रहे थे, मगर निर्णय आज लिया गया है..

मेरा प्रश्न यह है कि क्या सच में मंदी खत्म होने की ओर है या फिर बस एक हवा ही तैयार की जा रही है?

Tuesday, May 26, 2009

SDLC क्या है?

कोई भी साफ्टवेयर को पूरा करने में अलग-अलग अवस्था से गुजरना पड़ता है.. जिसे एस.डी.एल.सी.(साफ्टवेयर डेवेलपमेंट लाईफ साईकिल) कहते हैं.. इसमें प्रमुख हैं -

1. साफ्टवेयर कान्सेप्ट - इसमें किसी भी साफ्टवेयर कि जरूरत क्यों है, इसे वर्णित किया जाता है..

2. रीक्वार्मेंट अनालिसिस - इसमें अंत में उस साफ्टवेयर को प्रयोग में लाने वाले यूजर कि जरूरत के बारे में बताया जाता है..

3. आर्किटेकच्ररल डिजाईन - इसमें उस साफ्टवेयर का ब्लू प्रिंट बनाया जाता है, जिसमें पूरे सिस्टम को बनाने से संबंधित जानकारी होती है..

4. कोडिंग और डिबगिंग - किसी भी साफ्टवेयर को बनाने के लिये प्रोग्राम लिखने का काम इस भाग में होता है..

5. सिस्टम टेस्टिंग - इस भाग में पूरे सिस्टम के क्रियाकलापों को जांचा जाता है.. अगर सिस्टम इस चरण में पास नहीं हो पाता है तो उसे वापस कोडिंग और डिबगिंग के लिये भेज दिया जाता है..

कुछ मजेदार तथ्य -
जो व्यक्ति एस.डी.एल.सी. के इन चरणों कि जानकारी नहीं रखते हैं उनके मुताबिक कोडिंग और डिबगिंग किसी भी साफ्टवेयर को बनाने कि प्रक्रिया में लगने वाला सर्वाधिक समय लेता है, जबकी असल में यह आमतौर पर किसी साफ्टवेयर को बनाने कि प्रक्रिया में 25-35% समय ही कोडिंग और डिबगिंग को दिया जाता है.. सर्वाधिक समय अनालिसिस और डिजाईन को दिया जाता है..