वाइब कोडिंग · पाठ

निर्देश से परीक्षण बनाना

कृत्रिम बुद्धिमत्ता से अर्थपूर्ण परीक्षण लिखवाएँ।

पाठ 2, कुल 4 में से13 चरण

निर्देश से परीक्षण बनाना, CoddyKit पर वाइब कोडिंग का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह वाइब कोडिंग सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। वाइब कोडिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

परीक्षण आपका सुरक्षा-जाल हैं

जब आपका अधिकांश कोड AI लिखता है, तो परीक्षण वह अनुबंध बन जाते हैं जो उसे ईमानदार बनाए रखते हैं। हर अभिकथन एक ऐसा वादा है जिसे सहायक चुपचाप नहीं तोड़ सकता।

लक्ष्य केवल अपने-आप में 100 प्रतिशत कवरेज पाना नहीं है। लक्ष्य उन महत्वपूर्ण व्यवहारों को निश्चित करना है, ताकि भविष्य में बनने वाले संस्करण उनमें फिर से त्रुटि न ला सकें।

यह पाठ आपको ऐसे परीक्षण-संग्रह के लिए प्रॉम्प्ट लिखना सिखाता है जिस पर भरोसा किया जा सके।

कार्यान्वयन नहीं, व्यवहार का वर्णन करें

कमज़ोर प्रॉम्प्ट मॉडल से कहते हैं, "इस फ़ंक्शन के लिए परीक्षण लिखें।" परिणाम कार्यान्वयन की नकल करता है और आसानी से सफल हो जाता है, भले ही कोड गलत हो।

मज़बूत प्रॉम्प्ट अपेक्षित व्यवहार का आपके अपने शब्दों में वर्णन करते हैं। तब परीक्षण मॉडल के मौजूदा कोड को पढ़ने के तरीके के बजाय आशय को लिखित रूप देता है।

इनपुट, आउटपुट और उन अपरिवर्तनीय शर्तों को उसी तरह निर्दिष्ट करें जैसे किसी उत्पाद-विनिर्देश में किया जाता है।

Write tests for the checkout function based on these rules, not on the current implementation: total must equal sum of line items minus discount; discount can never exceed subtotal; an empty cart must throw. Cover the boundary at exactly zero and at the discount cap.

विफल होने वाली स्थिति से शुरू करें

केवल सफल स्थिति की पुष्टि करने वाले परीक्षण झूठा भरोसा देते हैं। पहले उन स्थितियों के लिए कहें जिनमें टूटने की सबसे अधिक संभावना है: null मान, खाली मान, सीमाएँ और विकृत इनपुट।

विफलता की स्थितियों को परखने वाला परीक्षण-संग्रह वास्तविक प्रतिगमन पकड़ता है। साधारण सफलता की स्थिति शायद ही कभी किसी को चौंकाती है।

सीमांत स्थितियों को पहले रखें और आप त्रुटियों को भी पहले पकड़ेंगे।

Generate tests that focus on failure and boundary conditions for this parser: empty string, whitespace only, max length plus one, invalid unicode, and deeply nested input. For each, assert the exact error type and message the code should produce.

त्रुटियों को निश्चित करने वाले परीक्षणों से सावधान रहें

यदि आप किसी मॉडल से मौजूदा कोड के आधार पर परीक्षण लिखने को कहते हैं, तो वह वर्तमान त्रुटिपूर्ण व्यवहार को सही मानकर उसका अभिकथन कर सकता है। त्रुटि बनी रहती है, जबकि परीक्षण-संग्रह सफल दिखता है।

AI द्वारा परीक्षण बनाने का यह सबसे बड़ा जाल है। परीक्षण त्रुटि पकड़ने के बजाय उसका दस्तावेज़ बन जाता है।

हमेशा जाँचें कि हर अभिकथन उस बात को दर्शाता है जो आप चाहते हैं, न कि केवल वह जो कोड अभी करता है।

For each test you generated, tell me explicitly whether the expected value is derived from my stated requirements or from observing the current code's output. Flag any assertion that simply mirrors existing behavior so I can verify it is actually correct.

व्यवस्था-क्रिया-अभिकथन का ढाँचा

पठनीय परीक्षण एक स्पष्ट रूप अपनाते हैं: स्थिति तैयार करें, एक क्रिया करें और एक परिणाम का अभिकथन करें। मॉडल अक्सर कई अभिकथनों वाले विशाल परीक्षणों की ओर भटक जाते हैं, जिनके विफल होने पर त्रुटि ढूँढ़ना कठिन होता है।

वर्णनात्मक नामों वाले केंद्रित परीक्षणों के लिए कहें, जो विनिर्देशों जैसे पढ़े जाएँ।

विफल परीक्षण को केवल अपने नाम से यह बिल्कुल बता देना चाहिए कि कौन-सा व्यवहार टूट गया।

Refactor these tests so each one follows arrange-act-assert, tests a single behavior, and has a descriptive name that reads like a sentence describing the expected outcome. Split any test that contains unrelated assertions.

सही सीमाओं पर नकली घटक बनाएँ

AI अक्सर बहुत अधिक नकली घटक बनाता है और परीक्षण किए जा रहे मूल तर्क को ही अलग कर देता है, जिससे परीक्षण किसी वास्तविक चीज़ का अभिकथन नहीं करता। या वह बहुत कम नकली घटक बनाकर सक्रिय डेटाबेस तक पहुँच जाता है।

सिस्टम की सीमा पर नकली घटक बनाएँ: नेटवर्क, घड़ी, फ़ाइल-तंत्र और भुगतान द्वार। अपना व्यावसायिक तर्क वास्तविक रखें।

सीमा को स्पष्ट रूप से बताएँ, ताकि मॉडल अनुमान न लगाए।

Write these tests so that only external boundaries are mocked: the HTTP client, the system clock, and the payment provider. Do NOT mock our own pricing or validation logic; that logic must run for real so the test exercises it.

गुण-आधारित सोच

उदाहरण-आधारित परीक्षण विशिष्ट इनपुट जाँचते हैं; गुण-आधारित परीक्षण अनेक बनाए गए इनपुट में अपरिवर्तनीय शर्तें जाँचते हैं। "किसी सूची को दो बार उलटने पर मूल सूची लौटती है" हर सूची के लिए सही रहता है।

मॉडल से गुण-आधारित परीक्षण माँगने पर ऐसी त्रुटियाँ सामने आती हैं जिन्हें चुने हुए उदाहरण छोड़ देते हैं, क्योंकि ढाँचा प्रतिउदाहरण खोजता है।

जहाँ अपरिवर्तनीय शर्तें स्पष्ट हों, वहाँ इनका उपयोग करें: एन्कोडर, क्रमबद्धक, क्रमांकनकर्ता और गणित।

Write property-based tests for the serializer using a generative testing library. Assert the round-trip invariant that decode(encode(x)) equals x for any valid input, and let the framework search for the smallest failing case.

दिखावटी कवरेज के बिना कवरेज

कवरेज प्रतिशत नक्शा है, क्षेत्र नहीं। आप हर पंक्ति चला सकते हैं और फिर भी किसी सार्थक बात का अभिकथन न करें। मॉडल किसी संख्या के पीछे भागने के लिए परीक्षण-संग्रह में अनावश्यक सामग्री भरना पसंद करते हैं।

अपरिक्षित शाखाएँ खोजने के लिए कवरेज का उपयोग करें, फिर हर शाखा का हाथ से मूल्यांकन करें: क्या इस पथ को निश्चित करना आवश्यक है?

ऐसे परीक्षणों का लक्ष्य रखें जो व्यवहार गलत होने पर विफल हों, न कि केवल कोड को चलाएँ।

Run coverage and list the uncovered branches in this module. For each one, tell me whether it represents a meaningful behavior worth testing or trivial code I can ignore, and propose a focused test only for the meaningful ones.

म्यूटेशन: अपने परीक्षणों का परीक्षण

जो परीक्षण-संग्रह किसी भी कोड बदलाव के बाद भी सफल रहे, वह बेकार है। म्यूटेशन परीक्षण छोटे-छोटे दोष डालकर जाँचता है कि आपके परीक्षण उन्हें पहचानते हैं या नहीं।

यदि कोई म्यूटेंट बच जाता है, तो आपके परीक्षण उस व्यवहार को वास्तव में सीमित नहीं करते। मॉडल म्यूटेशन सुझा सकता है और आप यह जाँचते हैं कि आपका परीक्षण-संग्रह उन्हें विफल करता है या नहीं।

इसी तरह आप केवल परीक्षणों की संख्या नहीं, बल्कि उनकी गुणवत्ता मापते हैं।

Propose five small mutations to this function, such as flipping a comparison or removing a guard, that would represent real bugs. For each mutation, tell me whether the current test suite would catch it, and write a new test for any mutation that survives.

परीक्षणों को नियतात्मक बनाएँ

अस्थिर परीक्षणों से भरोसा घटता जाता है, जब तक लोग विफलताओं को पूरी तरह नज़रअंदाज़ करने न लगें। आम कारण हैं वास्तविक समय, यादृच्छिक बीज, नेटवर्क कॉल और परीक्षणों का क्रम।

नियतात्मक परीक्षणों की माँग करें: घड़ी डालकर दें, बीज स्थिर करें और निष्पादनों के बीच स्थिति अलग रखें। जिस परीक्षण-संग्रह पर भरोसा न किया जा सके, वह किसी परीक्षण-संग्रह से भी बदतर है।

विश्वसनीयता स्वयं परीक्षणों का एक गुण है।

Make this test suite fully deterministic: inject a fixed clock instead of reading current time, seed all randomness, remove any reliance on test execution order, and ensure each test resets shared state in setup and teardown.

जीवंत विनिर्देश के रूप में परीक्षण

एक अच्छा परीक्षण-संग्रह दस्तावेज़ का काम भी करता है। नए योगदानकर्ता, मानव हों या AI, अभिकथन पढ़कर सिस्टम के नियम सीखते हैं।

परीक्षणों के नाम और संरचना इतनी स्पष्ट रखें कि परीक्षण-संग्रह अपने-आप इच्छित व्यवहार समझा सके। मॉडल भी उन्हें पढ़ता है और परिणामस्वरूप बेहतर कोड लिखता है।

आपके परीक्षण वह टिकाऊ स्मृति बन जाते हैं जो मॉडल में नहीं होती।

त्वरित जाँच

प्रॉम्प्ट-आधारित परीक्षण निर्माण की अपनी समझ जाँचें।

पुनरावलोकन

परीक्षणों को कार्यान्वयन के आधार पर नहीं, बल्कि व्यवहार और आवश्यकताओं के आधार पर प्रॉम्प्ट करें, ताकि वे त्रुटियाँ पकड़ें, उन्हें निश्चित न कर दें। विफलता और सीमांत स्थितियों को पहले रखें, केवल सीमाओं पर नकली घटक बनाएँ और वास्तविक मजबूती मापने के लिए गुण-आधारित तथा म्यूटेशन परीक्षणों का उपयोग करें।

परीक्षण-संग्रह को नियतात्मक और पठनीय रखें, ताकि वह जीवंत विनिर्देश के रूप में काम करे। अब आप मॉडल द्वारा छोड़ी गई सुरक्षा कमियाँ खोजेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
25
पाठ
100

अक्सर पूछे जाने वाले प्रश्न

क्या “निर्देश से परीक्षण बनाना” पाठ निःशुल्क है?

हाँ — वाइब कोडिंग अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “निर्देश से परीक्षण बनाना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। वाइब कोडिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“निर्देश से परीक्षण बनाना” में मैं क्या सीखूँगा?

कृत्रिम बुद्धिमत्ता से अर्थपूर्ण परीक्षण लिखवाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ वाइब कोडिंग का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या वाइब कोडिंग शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर वाइब कोडिंग शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“निर्देश से परीक्षण बनाना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस वाइब कोडिंग पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर वाइब कोडिंग पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. कृत्रिम बुद्धिमत्ता के कोड की समीक्षा आवश्यक क्यों है
  2. निर्देश से परीक्षण बनाना
  3. सुरक्षा की कमियाँ ढूँढ़ना
  4. उत्पादन के लिए सुरक्षा मजबूत करना
← वाइब कोडिंग पर वापस जाएँ