paint-brush
सॉफ़्टवेयर परीक्षण के लिए ChatGPT का लाभ उठानाद्वारा@ratikeshmisra
4,466 रीडिंग
4,466 रीडिंग

सॉफ़्टवेयर परीक्षण के लिए ChatGPT का लाभ उठाना

द्वारा Ratikesh4m2023/09/16
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

पिछले 2 वर्षों में, एआई विशेषकर एलएलएम (बड़े भाषा मॉडल) में प्रगति ने पारंपरिक समस्याओं को अधिक कुशलता से हल करने में मदद की है। ऐसा एक प्रभाव जो एलएलएम हमारे सॉफ़्टवेयर परीक्षण को स्वचालित करने में सहायता के माध्यम से पैदा कर सकता है। कई सॉफ्टवेयर टीमों के लिए स्वचालन कभी भी एसडीएलसी चक्र का प्रथम श्रेणी का नागरिक नहीं रहा है और टीमें परीक्षण मामलों को स्वचालित करने के लिए संघर्ष करती हैं।
featured image - सॉफ़्टवेयर परीक्षण के लिए ChatGPT का लाभ उठाना
Ratikesh HackerNoon profile picture
0-item
1-item

पिछले 2 वर्षों में, एआई, विशेष रूप से एलएलएम (बड़े भाषा मॉडल) में प्रगति ने पारंपरिक समस्याओं को अधिक कुशलता से हल करने में मदद की है, और ऐसा एक प्रभाव जो एलएलएम हमारे सॉफ्टवेयर परीक्षण को स्वचालित करने में सहायता के माध्यम से पैदा कर सकता है। कई सॉफ्टवेयर टीमों के लिए स्वचालन कभी भी एसडीएलसी चक्र का प्रथम श्रेणी का नागरिक नहीं रहा है और टीमें " टेस्ट ऑटोमेशन ऋण " बनाने वाले परीक्षण मामलों को स्वचालित करने के लिए संघर्ष करती हैं। परीक्षण स्वचालन में इस अंतर के कारण, गुणवत्ता टीमों का बहुत सारा समय इन परीक्षण मामलों को मैन्युअल रूप से सत्यापित करने और लिखने में चला जाता है जिसके परिणामस्वरूप इंजीनियरिंग टीम की शिपिंग गति धीमी हो जाती है।


कोड जटिलता के साथ मैन्युअल परीक्षण के लिए समय में भिन्नता


इस तरह की गड़बड़ी से बचने का एकमात्र बचाव मार्ग परीक्षण मामलों को बेहतर वेग से स्वचालित करना है, लेकिन अक्सर हम ऐसा करने में सक्षम नहीं होते हैं क्योंकि:


  • स्केलेबल कोड लिखने के लिए मैन्युअल QA टीमों के बीच स्वचालन अनुभव का अभाव।
  • स्वचालन शुरू करने की लागत ( इंजीनियरिंग प्रबंधन और क्यूए से आवश्यक बैंडविड्थ के संदर्भ में ) बहुत अधिक है क्योंकि परीक्षण मामलों के विशाल बैकलॉग को स्वचालित करने की आवश्यकता है।
  • परीक्षण मामलों के लिए दस्तावेज़ीकरण की खराब गुणवत्ता और रिग्रेशन और सैनिटी सूट का उचित रखरखाव नहीं।
  • अधिकांश उत्पाद कंपनियां फीचर विकास पर ध्यान केंद्रित करती हैं और इसलिए स्थिरता और गुणवत्ता को ठंडे बस्ते में डाल दिया जाता है।
  • मशीन मूल्यांकन की तुलना में परीक्षण मामलों के मानव मूल्यांकन को प्राथमिकता दी जाती है।


हालाँकि ऊपर उल्लिखित सभी समस्याओं पर एक अलग लेख की आवश्यकता है कि सॉफ़्टवेयर टीमों को उनसे कैसे निपटना चाहिए, इस अनुभाग में हम इस बारे में बात करेंगे कि QA इंजीनियर BDD (व्यवहार-संचालित परीक्षण) में अपने सह-पायलट के रूप में ChatGPT या LLM का लाभ कैसे उठा सकते हैं।

BDD और इसके स्वचालन के लिए GPT3.5 का उपयोग करना


बीडीडी क्या है?


व्यवहार-संचालित विकास (बीडीडी) एक चुस्त सॉफ्टवेयर विकास पद्धति है जिसमें एक एप्लिकेशन को उस व्यवहार के आधार पर प्रलेखित और डिज़ाइन किया जाता है जिसे उपयोगकर्ता इसके साथ बातचीत करते समय अनुभव करने की अपेक्षा करता है। इस चर्चा के संदर्भ में आइए वाईसी वेबसाइट पर बीडीडी-आधारित परीक्षण लागू करें और वाईसी हैकर समाचार के लॉगिन पेज को शुरुआती बिंदु के रूप में मानें।


वाईसी हैकर न्यूज़ लॉगिन पेज


उपर्युक्त पृष्ठ के लिए, अपेक्षित व्यवहार है

"जब कोई उपयोगकर्ता लॉग इन करने का प्रयास करता है और https://news.ycombinator.com/login?goto=news पर वैध क्रेडेंशियल दर्ज करता है और लॉगिन दबाता है तो इसे उपयोगकर्ता को हैकर समाचार वेबसाइट पर रीडायरेक्ट करना चाहिए "।


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



गेरकिन सिंटेक्स उत्पन्न करने के लिए वर्कफ़्लो

गेरकिन सिंटैक्स उत्पन्न करने के लिए वर्कफ़्लो


उदाहरण के लिए नीचे दी गई छवि में मैंने दिखाया है कि आप प्राकृतिक भाषा में प्रस्तुत व्यवहार के लिए गेरकिन सिंटैक्स उत्पन्न करने के लिए प्रॉम्प्ट का उपयोग करके जीपीटी मॉडल को कैसे ठीक कर सकते हैं।


चैटजीपीटी प्रस्तुत व्यवहार के लिए प्रासंगिक गेरकिन सिंटेक्स को आउटपुट करता है



गेरकिन सिंटैक्स से ककड़ी-संगत कोड उत्पन्न करने के लिए वर्कफ़्लो

GPT का उपयोग करके गेरकिन चरणों के साथ ककड़ी संगत कोड उत्पन्न करना


चरण 1: इंजीनियर बनने के लिए संकेत दें


नीचे संकेत दिया गया है कि आप HTML कोड और दिए गए गेरकिन चरणों का उपयोग करके उचित स्वचालन को बाहर निकालने के लिए चैटजीपीटी कंसोल पर इसे लिख सकते हैं। अंतिम आउटपुट के रूप में, हमने ककड़ी की आवश्यकता के अनुसार चरण परिभाषा के रूप में कोड उत्पन्न करने के लिए कहा है जिसे क्यूएएस द्वारा कॉपी पेस्ट किया जा सकता है।



ककड़ी-आधारित स्वचालन उत्पन्न करने के लिए GPT को फाइन-ट्यून करने का संकेत दें


चरण 2: प्रासंगिक HTML को इंजेक्ट करना जिसे स्वचालन के लिए आधार के रूप में उपयोग करने की आवश्यकता है।

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


HTML फ़ीड जिसे स्वचालन के लिए उपयोग करने की आवश्यकता है


चरण 3: चरण परिभाषा तैयार करना


इसके परिणामस्वरूप, GPT प्रदान किए गए HTML से DOM संरचना को समझेगा और आपसे प्रासंगिक गेरकिन सिंटैक्स के बारे में पूछेगा। उपरोक्त मामले के लिए, हमने पहले ही गेरकिन तैयार कर लिया है जिसे हम इस रूप में पास कर सकते हैं:


 Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "https://news.ycombinator.com/login?goto=news" When the user enters valid credentials and presses the login button Then the user should be redirected to the "hacker news" website


अंतिम आउटपुट


अंत में वर्कफ़्लो और उल्लिखित प्रॉम्प्ट के अनुसार यह उपरोक्त गेरकिन चरणों और उल्लिखित परिदृश्य के लिए चरण परिभाषा फ़ाइल उत्पन्न करता है, जिसे क्यूए द्वारा उनके ककड़ी ढांचे में मामूली गुणवत्ता जांच के बाद उनके द्वारा अपेक्षित व्यवहार के स्वचालन को तेज करने के लिए कॉपी किया जा सकता है। परीक्षा करना।


ककड़ी चरण परिभाषा उत्पन्न हुई

सह-पायलटों की आयु

एआई के आगमन और सह-पायलट के उद्भव के साथ, मनुष्य अपनी उत्पादकता में वृद्धि देखेंगे। वे प्राथमिक और नियमित कार्यों को एआई को सौंपकर नवाचार की अपनी सीमाओं को और आगे बढ़ाने में सक्षम होंगे। हालाँकि, मुझे अभी भी लगता है कि हम जो भी काम करते हैं उसमें हमें उन्हें सहायक के रूप में देखना चाहिए और फिर भी उनका उपयोग करने की बुद्धिमत्ता मनुष्यों में ही रहेगी, क्योंकि तकनीक, विपणन, बिक्री और ग्राहक सफलता टीमें अपने वर्कफ़्लो में एलएलएम की शक्ति का लाभ उठाने की कोशिश कर रही हैं। ऐसा ही क्यूए इंजीनियरों द्वारा भी किया जा सकता है ताकि वे अपनी उत्पादकता को और अधिक बढ़ा सकें और सॉफ्टवेयर की गुणवत्ता और स्थिरता सुनिश्चित करने के अपने काम को रोमांचक बना सकें!