कोई testing agent अपनी failures जितना ही अच्छा होता है

screenshot के साथ दिखी एक लाल पंक्ति यह मानकर चलती है कि कोई इंसान उसे पढ़कर समझेगा। काम की failure बताती है कि क्या करने की कोशिश की गई, application ने क्या किया, और दोनों कहाँ अलग हुए — और वह भी ऐसे रूप में कि ठीक करने वाला पूरी कहानी दोबारा जोड़े बिना उस पर काम कर सके।

जब ठीक करने वाला ख़ुद एक coding agent हो, तो यह बात दोगुनी अहम हो जाती है, क्योंकि वह screenshot देखकर मंशा नहीं भाँप सकता। असली failure दिखाने को कहें, pass होता हुआ run नहीं।

दो: क्या check fail हो सकता है

मूल्यांकन के दौरान जानबूझकर कुछ तोड़ें। ऐसा save जो अब टिकता नहीं, या ऐसा filter जो चुपचाप सब कुछ लौटा देता है। अगर check फिर भी हरा रहता है, तो वह आपके product से कभी जुड़ा ही नहीं था।

यह दो तरह से गड़बड़ होता है। एक, ऐसा check जो इतना अस्पष्ट है कि उसका कोई नतीजा ही नहीं निकलता; और दूसरा, ऐसा run जो अपनी assertions तक पहुँचने से पहले ही time out हो जाता है और pass के रूप में दर्ज होता है। दूसरा ज़्यादा ख़राब है, क्योंकि वह coverage जैसा दिखता है।

तीन: क्या वह बिना कहे चलता है

  • सिर्फ़ माँगने पर। session के दौरान उपयोगी, उसके बाद अदृश्य।

  • बदलाव पर। pull request या deployment से trigger होता है। असल में यही आपकी रक्षा करता है।

  • तय समय पर। environment drift और बाहरी dependencies के खिसकने को पकड़ता है।

जो testing agent सिर्फ़ कहने पर काम करता है, वह एक बेहतर manual tester है — इसकी अपनी क़ीमत है, पर आप ख़रीद यह नहीं रहे थे।

पहले हफ़्ते में क्या देखें

इन तीन गुणों से आगे, पहले हफ़्ते में दो व्यवहार ऐसे हैं जो बता देते हैं कि यह चलेगा या नहीं।

क्या वह जो coverage बनाता है, वह आपके product को दर्शाता है या आपके specification के ढाँचे को। API document के आधार पर चलने वाला agent ईमानदारी से हर endpoint को cover करेगा, उन्हें भी जिन्हें कोई इस्तेमाल नहीं करता, और उस एक नियम को छोड़ देगा जो किसी comment में लिखा है। पहला plan पढ़ लेने से पता चल जाता है कि आपके पास कौन-सा है, और इसे शुरू में ही ठीक कर लेना दो सौ cases पर ठीक करने से कहीं सस्ता है।

और यह भी कि failures को कोई पढ़ता है या नहीं। testing agent किसी manual प्रक्रिया से ज़्यादा signal पैदा करता है, और जिस signal को कोई नहीं देखता वह सिर्फ़ ख़र्च है। अगर एक हफ़्ते बाद failures की जाँच होने के बजाय उन्हें बस स्वीकार कर लिया जा रहा है, तो दिक़्क़त आमतौर पर team में नहीं बल्कि failure के format में होती है — और आदत बनने से पहले इसे उठा लेना ठीक रहता है।

आधे दिन का मूल्यांकन

तीन flows बताएँ। एक चीज़ तोड़ें। कुछ merge करें। अगर वह उस टूट को पकड़ लेता है, उसे काम के लायक़ रूप में रिपोर्ट करता है, और बिना कहे merge को नोटिस कर लेता है, तो वह अपना काम कर रहा है। अगर इनमें से एक भी चूक जाए, तो कोई feature list इसकी भरपाई नहीं करती।

Terminal

npm install -g @testsprite/testsprite-cli
testsprite setup

अगर आप कुछ भी install नहीं करना चाहते, तो dashboard से भी यही काम हो जाता है। command line जो कुछ और कर सकती है, वह सब मिलेगा CLI repository में।

Trigger, mechanism से ज़्यादा मायने रखता है। इसे अपने deployment event से जोड़ देने का मतलब है कि हर बदलाव की जाँच होती है, बिना किसी के तय किए; GitHub App यह काम dashboard से करता है, और एक GitHub Actions step इसे आपके workflow के भीतर से करता है।

TestSprite इन तीनों का जवाब कैसे देता है

failure इस रूप में लौटती है — क्या करने की कोशिश की गई, application ने क्या किया, और दोनों कहाँ अलग हुए — और ऐसे रूप में कि कोई coding agent बिना किसी इंसान की व्याख्या के उस पर काम कर सके। Checks किसी ठोस चीज़ पर assert करते हैं, और जो run अपनी assertions तक पहुँचा ही नहीं, उसे pass नहीं बताया जाता। और यह बदलाव पर चलता है: एक repository जोड़िए, और runs उसी deployment से शुरू हो जाते हैं जो आपकी pipeline पहले से बनाती है।

Coverage आपके product से तैयार होता है और आम भाषा में निखारा जाता है, और setup उसी coding agent में verification skill install कर देता है जिसे आप पहले से इस्तेमाल करते हैं — यानी check बनाना और चलाना काम के बग़ल में नहीं, काम के भीतर ही होता है।

इसका नतीजा यह कि आधे दिन का मूल्यांकन पास हो जाता है: वह टूट को पकड़ता है, उसे काम के लायक़ रूप में रिपोर्ट करता है, और बिना कहे merge को नोटिस कर लेता है।

test framework से यह किस तरह अलग है?

framework वही चलाता है जो आपने बताया है। agent ख़ुद तय करता है कि क्या जाँचना है और नतीजे पर दोहराव कर सकता है — फ़ायदा भी यहीं है और review का बोझ भी यहीं आता है।

क्या इसे हमारे code तक पहुँच चाहिए?

यह deploy किए गए application को उसके interface के ज़रिए जाँचता है। code तो आपके coding agent के पास पहले से है।

तैयार हुए checks को कितने review की ज़रूरत होती है?

पहले run से पहले plan पढ़ें और नए checks को code की तरह लें। बिना review के बढ़ता volume ही सबसे बड़ा failure mode है।

क्या यह अपने पकड़े हुए bugs ठीक भी कर सकता है?

यह काम की failure किसी coding agent को सौंप सकता है, जो फिर एक fix सुझाता है और उसकी जाँच उसी तरीक़े से होती है। loop पूरा हो जाता है; फ़ैसला आपके पास ही रहता है।

इसे चलाने में कितना ख़र्च आता है?

Runs credits ख़र्च करते हैं, इसलिए लंबे session से पहले उम्मीदें तय कर लें। जिस agent के पास verification tool होगा, वह उसका इस्तेमाल करेगा ही।

संक्षेप में

Failure का format, fail हो सकने की क्षमता, trigger।

कोई testing agent तभी रखने लायक़ है जब उसकी failure उस व्यक्ति के काम आए जो उसे ठीक करेगा, जब उसके checks को fail कराया जा सके, और जब वह बिना कहे चले। feature lists की तुलना करने के बजाय तीनों को आधे दिन में परख लें।