सॉफ़्टवेयर परीक्षण एक ऐसी प्रक्रिया है जो टूल, स्क्रिप्ट या मैन्युअल रूप से प्रोग्राम के मेट्रिक्स का मूल्यांकन करती है।
परीक्षण सॉफ्टवेयर विकास चक्र का एक अभिन्न अंग है। व्यापक परीक्षण आपके आवेदन की अखंडता के बारे में गहन जानकारी प्रदान करता है।
आप परीक्षण लिखकर, प्रोग्राम के प्रदर्शन का मूल्यांकन करके और वर्कफ़्लो को स्वचालित करके बग को रोक सकते हैं और ठीक कर सकते हैं।
Go. में परीक्षण के साथ शुरुआत करना
गो मानक पुस्तकालय एक विकसित. प्रदान करता है परिक्षण पैकेट। परिक्षण पैकेज में बेंचमार्किंग, फ़ज़िंग, स्किपिंग, सब-टेस्टिंग, सब-बेंचमार्किंग और अन्य फ़ंक्शंस हैं।
इस पैकेज के साथ परीक्षण करना आसान है। यहां एक सरल परीक्षण संरचना है जो परीक्षण के लिए एक मॉडल के रूप में काम करेगी:
प्रकार मामलों struct {
// परीक्षण का अपेक्षित आउटपुट
अपेक्षित होना पूर्णांक// फ़ंक्शन का आउटपुट
वास्तविक पूर्णांक
// वह मान जिसे आप फ़ंक्शन में पास कर रहे हैं
बहस डोरी
}
यहाँ एक सरल कार्य है जो स्ट्रिंग्स को पूर्णांकों में परिवर्तित करता है। आपका परीक्षण इस फ़ंक्शन का परीक्षण करेगा।
आयात (
"स्ट्रकोनव"
)समारोहStringToInteger(स्त्री डोरी)पूर्णांक {
पूर्णांक, त्रुटि: = strconv. अटोई (str)यदि गलती!= शून्य {
वापसी0
}
वापसी पूर्णांक
}
StringToInteger फ़ंक्शन रिटर्न 0 यदि रूपांतरण में कोई त्रुटि है और कोई त्रुटि नहीं होने पर पूर्णांक है।
यहाँ StringToInteger के लिए एक परीक्षण कार्य है:
समारोहटेस्टस्ट्रिंगटूइंटर(परीक्षण * परीक्षण। टी) {
अपेक्षित इंट: = StringToInteger ("3")केस इंस्टेंस: = मामले {
अपेक्षित: अपेक्षित इंट,
वास्तविक: 3,
}
यदि caseInstance.expected == caseInstance.actual {
// यहाँ कुछ कोड
} वरना {
परीक्षण। विफल()
}
}
टेस्टस्ट्रिंगटूइंटर परीक्षण समारोह स्वीकार करता है a परिक्षण। टी अपने तर्क के रूप में वस्तु। अपेक्षित चर स्ट्रिंग रूपांतरण का परिणाम रखता है। केस इंस्टेंस चर परीक्षण के लिए तत्काल मामले संरचना है। यदि कथन अपेक्षित और वास्तविक मूल्यों की तुलना करता है।
विफल यदि मान समान नहीं हैं, तो विधि अन्य कथन में विफल परीक्षण लौटाती है।
जाओ एक प्रदान करता है परीक्षण अपने परीक्षणों और कार्यक्रमों पर अंतर्दृष्टि को स्वचालित और पुनर्प्राप्त करने के लिए आदेश।
जाओ परीक्षण
जाओ सहायता परीक्षण
सहायता पृष्ठ इस बारे में विस्तृत जानकारी प्रदान करता है कि कैसे परीक्षण करें काम करता है:
गो पारिस्थितिकी तंत्र कई पुस्तकालयों का घर है जो परीक्षण को अधिक सुलभ और लचीला बनाते हैं। इसके अलावा बहुत सारी कार्यक्षमता है परिक्षण पैकेज, सहित प्रतिगमन और इकाई परीक्षण.
गवाही पैकेज
गवाही पैकेज परीक्षण पैकेजों के लिए सबसे लोकप्रिय गो फ्रेमवर्क में से एक है। यह आसान अभिकथन, मॉकिंग और परीक्षण सूट कार्यों के साथ कुशल परीक्षण लिखने के लिए आवश्यक उपकरण प्रदान करता है।
टेस्ट-संचालित विकास के लिए गवाही उपयुक्त है क्योंकि पैकेज प्रदान करता है a हँसी उड़ाना पैकेट। यह नकली वस्तुओं को लिखने के लिए एक तंत्र प्रदान करता है जिसका उपयोग आप परीक्षण में वास्तविक वस्तुओं के स्थान पर कर सकते हैं।
पैकेज भी प्रदान करता है:
- एक ज़ोर पैकेज जो अनुकूल, पठनीय परीक्षण लिखने के लिए सहायक तरीके प्रदान करता है।
- ए ज़रूरत होना पैकेज के समान ज़ोर बूलियन परिणाम लौटने के लिए पैकेज।
- ए सुइट संरचना के साथ परीक्षण सूट के लिए पैकेज।
गवाही इस पर फैली हुई है परिक्षण पैकेज, और आप उपयोग कर सकते हैं परीक्षण करें Testify पैकेज के साथ लिखित परीक्षण चलाने का आदेश।
गवाही 1.13 से गो संस्करणों का समर्थन करती है। आप इस आदेश के साथ पैकेज को प्रोजेक्ट निर्भरता के रूप में जोड़ सकते हैं:
जाओ github.com/stretchr/testify प्राप्त करें
यहां टेस्टीफाई पैकेज के साथ एक सरल अभिकथन परीक्षण दिया गया है ज़ोर पैकेट:
पैकेट मुख्य
आयात (
"परिक्षण"
"github.com/stretchr/testify/assert" // केवल पैकेज पर जोर दें
)// समारोह का नाम सम्मेलन द्वारा "कुछ" होना चाहिए
समारोहटेस्टसमथिंग(टी * परीक्षण। टी) {
// समानता का दावा
जोर देना समान (टी, 123, 123, "वे बराबर होना चाहिए")
// असमानता का दावा
जोर देना समान (टी, 123, 456, "वे बराबर नहीं होने चाहिए")
}
टेस्टसमथिंग परीक्षण फ़ंक्शन परीक्षण प्रकार की संरचना लेता है परिक्षण एक तर्क के रूप में पैकेज। बराबर तथा बराबर नहीं गवाही के तरीके समानता और असमानता-आधारित अभिकथनों के लिए हैं ज़ोर पैकेट।
GoConvey पैकेज
GoConvey एक गो परीक्षण उपकरण है जो अभिव्यक्ति के लिए प्राथमिक है परिक्षण पैकेट। उसमे समाविष्ट हैं टर्मिनल (सीएलआई) और ब्राउज़र (जीयूआई) परीक्षण कार्यक्षमता।
GoConvey पैकेज इसके साथ एकीकृत होता है परिक्षण पैकेज, देशी गो परीक्षणों के साथ काम करने के लिए एक वेब यूजर इंटरफेस प्रदान करता है। इसमें प्रतिगमन परीक्षण, अनुकूलन योग्य आउटपुट और परीक्षण कोड पीढ़ी के लिए कार्यक्षमता भी शामिल है। आप स्वचालित रूप से परीक्षण चला सकते हैं, HTML में कवरेज स्वरूपों तक पहुंच सकते हैं, और GUI को अनुकूलित कर सकते हैं।
गो कन्वे पैकेज को स्थापित करने के लिए अपने गो कार्यक्षेत्र के टर्मिनल में इस कमांड को चलाएँ।
जाओ github.com/smartystreets/goconvey प्राप्त करें
यहाँ GoConvey पैकेज के साथ परीक्षण लिखने का एक सरल उदाहरण दिया गया है।
पैकेट मुख्य
आयात (
. "github.com/smartystreets/goconvey/convey"
"परिक्षण"
)समारोहटेस्टसमथिंग(टी * परीक्षण। टी) {
// केवल टी को शीर्ष-स्तरीय कॉनवे कॉल में पास करें
Convey ("वेरिएबल घोषित करें", t, समारोह() {
एक्स := 1Convey ("वेतन वृद्धि चर", समारोह() {
एक्स++
Convey ("समानता का दावा करें", समारोह() {
तो (एक्स, चाहिएएक्वाल, 2)
})
})
})
}
आपको आयात करने की आवश्यकता होगी बताना परीक्षण के लिए डॉट नोटेशन का उपयोग कर पैकेज।
से संदेश समारोह बताना पैकेज टेस्ट स्कोपिंग में मदद करता है। अंतिम बताना कोड उदाहरण में फ़ंक्शन कॉल के बीच समानता का दावा करता है एक्स परिवर्तनशील और 2, का उपयोग चाहिए समान समारोह।
HTTP उम्मीद पैकेज
HTTP अपेक्षा पैकेज गो के एंड-टू-एंड एचटीटीपी और आरईएसटी एपीआई परीक्षण के लिए उपयोग में आसान, संक्षिप्त, घोषणात्मक पैकेज है। आप इसका उपयोग HTTP अनुरोधों को क्रमिक रूप से बनाने और प्रतिक्रियाओं और उनके पेलोड का पुनरावर्ती रूप से निरीक्षण करने के लिए कर सकते हैं।
httpउम्मीद पैकेज HTTP अनुरोधों और HTTP प्रतिक्रियाओं और पेलोड पर अभिकथन के लिए श्रृंखलित बिल्डरों का एक सेट है। यह पर बनाया गया है एचटीटीपी, परिक्षण, और अन्य पैकेज। पैकेज बिल्ट-इन के साथ भी अच्छी तरह से काम करता है httptest पैकेट।
httpउम्मीद यूआरएल निर्माण, हेडर, कुकीज़ और पेलोड के साथ अनुरोध निर्माण के लिए कार्यक्षमता प्रदान करता है। यह प्रतिक्रिया अभिकथन, पेलोड अभिकथन, सुंदर मुद्रण और वेबसाकेट को संभालता है।
इसे स्थापित करने के लिए अपनी कार्यशील निर्देशिका के टर्मिनल में इस कमांड को चलाएँ httpउम्मीद पैकेट।
जाओ github.com/gavv/httpexpect प्राप्त करें
हैंडलर फ़ंक्शन के परीक्षण का एक सरल उदाहरण यहां दिया गया है httpउम्मीद पैकेट।
पैकेट मुख्य
आयात (
"एफएमटी"
"github.com/gavv/httpexpect/v2"
"नेट/http"
"नेट/http/httptest"
"परिक्षण"
)समारोहउदाहरणहैंडलर()एचटीटीपी.हैंडलर {
वापसी एचटीटीपी। हैंडलरफंक(समारोह(लेखक http. प्रतिक्रिया लेखक, अनुरोध *http. प्रार्थना) {
एफएमटी Fprintln (लेखक, "हैलो वर्ल्ड")
})
}समारोहटेस्टउदाहरणहैंडलर(टी * परीक्षण। टी) {
// http बनाएं। हैंडलर
हैंडलर: = उदाहरणहैंडलर ()// httptest. का उपयोग कर सर्वर चलाएं
सर्वर: = httptest. न्यूसर्वर (हैंडलर)
आस्थगित करें सर्वर। बंद करना()// http अपेक्षा उदाहरण बनाएं
उम्मीद: = httpexpect. नया (टी, सर्वर। यूआरएल)
// क्या यह काम कर रहा है?
अपेक्षा करना। प्राप्त("/")।
अपेक्षा करना()।
स्थिति (http. StatusOK)।JSON ()। ऐरे ()। खाली ()
}
उदाहरणहैंडलर हैंडलर फ़ंक्शन के लिए एक HTTP हैंडलर लौटाता है httpउम्मीद पैकेट। टेस्टउदाहरणहैंडलर फ़ंक्शन हैंडलर फ़ंक्शन का एक उदाहरण घोषित करता है। इसके बाद यह समापन बिंदु के परीक्षण के लिए एक नया सर्वर बनाता है httptest पैकेट।
अपेक्षा करना चर आपका है httpउम्मीद उदाहरण जो हिट करता है प्राप्त सर्वर पर एंडपॉइंट रूट पथ का अनुरोध करें। दर्जा फ़ंक्शन रिटर्न स्थिति कोड (इस मामले में, 200) यदि परीक्षण सफल होता है।
व्यापक और सहज परीक्षण लिखें
परीक्षण आपके आवेदन की अखंडता का मूल्यांकन करने में एक लंबा रास्ता तय करते हैं, और ऐसे कई परीक्षण पैटर्न और विधियां हैं जिनका उपयोग आप अपने कार्यक्रमों के लिए कर सकते हैं। अपने परीक्षण कार्यप्रवाह के मूल में, आपको ऐसे सहज ज्ञान युक्त परीक्षण लिखने चाहिए जिनमें आप सुधार कर सकें क्योंकि आपके कार्यक्रम समय के साथ बदलते हैं।