टेस्टिंग से एक प्रोग्रामर की असफलता साबित होती है। डिबगिंग उस प्रोग्रामर की जीत का सबूत होती है।

Testing proves a programmer’s failure. Debugging is the programmer’s vindication.

Testing proves a programmer’s failure. Debugging is the programmer’s vindication.

अगर आप इसे टेस्ट नहीं कर सकते, तो इसे बनाइए भी मत। और अगर आप इसे टेस्ट नहीं करते, तो इसे हटा दीजिए।

If you can’t test it, don’t build it. If you don’t test it, rip it out.

If you can’t test it, don’t build it. If you don’t test it, rip it out.

पहला नियम: कीटनाशक वाला विरोधाभास। कीड़ों (बग्स) को रोकने या ढूंढने के लिए आप जिस भी तरीके का इस्तेमाल करते हैं, वह अपने पीछे कुछ ऐसे सूक्ष्म बग्स छोड़ जाता है जिन पर वह तरीका असर नहीं करता।

First law: The pesticide paradox. Every method you use to prevent or find bugs leaves a residue of subtler bugs against which those methods are ineffective.

First law: The pesticide paradox. Every method you use to prevent or find bugs leaves a residue of subtler bugs against which those methods are ineffective.

बग्स को ढूंढने की प्रक्रिया से कहीं बढ़कर, टेस्ट डिज़ाइन करने की प्रक्रिया बग्स को रोकने के सबसे बेहतरीन तरीकों में से एक है।

More than the act of testing, the act of designing tests is one of the best bug preventers known.

More than the act of testing, the act of designing tests is one of the best bug preventers known.

सॉफ़्टवेयर कभी भी सौ फीसदी सही नहीं था और न कभी होगा। लेकिन क्या इसका मतलब यह है कि हम कचरा पैदा करते रहें? कमी इस बात की है कि हम क्वालिटी को नापने से कतराते हैं।

Software never was perfect and won’t get perfect. But is that a license to create garbage? The missing ingredient is our reluctance to quantify quality.

Software never was perfect and won’t get perfect. But is that a license to create garbage? The missing ingredient is our reluctance to quantify quality.

बग्स अक्सर कोनों में छिपे रहते हैं और सीमाओं पर इकट्ठे होते हैं।

Bugs lurk in corners and congregate at boundaries.

Bugs lurk in corners and congregate at boundaries.

जो टेस्ट किसी बग का पता लगाता है, वह सफल होता है, असफल नहीं।

A test that reveals a bug has succeeded, not failed.

A test that reveals a bug has succeeded, not failed.

बग्स को रोकने वाला डिज़ाइन उपाय हमेशा उस टेस्ट मेथड से बेहतर होता है जो उन्हें बाद में खोजता है।

A design remedy that prevents bugs is always preferable to a test method that discovers them.

A design remedy that prevents bugs is always preferable to a test method that discovers them.

अगर टेस्टिंग का मकसद यह साबित करना होता कि कोई प्रोग्राम पूरी तरह से बग-मुक्त है, तो यह न सिर्फ व्यावहारिक रूप से असंभव होता, बल्कि सैद्धांतिक रूप से भी असंभव होता।

If the objective of testing were to prove that a program is free of bugs, then not only would testing be practically impossible, but it would also be theoretically impossible.

If the objective of testing were to prove that a program is free of bugs, then not only would testing be practically impossible, but it would also be theoretically impossible.

मेरे लिए सबसे दुखद नज़ारों में से एक ऐसा इंसान है जो कीबोर्ड के सामने बैठकर ऐसा कोई काम हाथ से कर रहा हो जिसे ऑटोमेट (स्वचालित) किया जा सकता था। यह बात जितनी दुखद है, उतनी ही हास्यास्पद भी है।

One of the saddest sights to me has always been a human at a keyboard doing something by hand that could be automated. It’s sad but hilarious.

One of the saddest sights to me has always been a human at a keyboard doing something by hand that could be automated. It’s sad but hilarious.

कभी अतिरिक्त फीचर्स को बहुत अच्छा माना जाता था। अब हम समझ गए हैं कि 'मुफ्त' मिलने वाले फीचर्स शायद ही कभी मुफ्त होते हैं। जनरैलिटी (व्यापकता) में की गई कोई भी ऐसी बढ़ोतरी जो रिलायबिलिटी, मॉड्यूलरिटी, मेंटेनएबिलिटी और रोबस्टनेस में मदद न करे, उस पर संदेह किया जाना चाहिए।

Extra features were once considered desirable. We now recognize that ‘free’ features are rarely free. Any increase in generality that does not contribute to reliability, modularity, maintainability, and robustness should be suspected.

Extra features were once considered desirable. We now recognize that ‘free’ features are rarely free. Any increase in generality that does not contribute to reliability, modularity, maintainability, and robustness should be suspected.

एक बेहतरीन खतरा हज़ारों टेस्ट के बराबर होता है।

A good threat is worth a thousand tests.

A good threat is worth a thousand tests.

प्रोग्रामिंग में अक्सर स्पेसिफिकेशन (विवरण) में छिपे हुए वे छोटे-छोटे 'लेकिन' ही होते हैं जो आपको डूबा देते हैं।

In programming, it’s often the buts in the specification that kill you.

In programming, it’s often the buts in the specification that kill you.