कैसे खेल परीक्षण स्वचालित करने के लिए?


13

मैं परीक्षण के इस क्षेत्र में नया हूं। मैंने सिर्फ एकता इंजन का उपयोग करके एक बुनियादी खेल विकसित किया है लेकिन मैं इसका परीक्षण करना चाहता हूं।

मैंने सेलेनियम के साथ जांच की है, लेकिन मुझे नहीं पता कि जो मूल्य वापस किया जा रहा है उसे कैसे प्राप्त किया जाए, जिसमें खेल में किए जाने वाले कार्य की जानकारी हो। यदि मैं मूल्य प्राप्त करने में सक्षम हूं तो मैं उसके अनुसार आवश्यक कार्रवाई करने में सक्षम होऊंगा।


4
यह काफी दिलचस्प सवाल है। मुझे व्यक्तिगत रूप से लगता है कि इकाई परीक्षण खेल के विकास में काफी कम है। हालांकि, ऐसा लगता है कि आप स्वचालित एकीकरण परीक्षण में अधिक रुचि रखते हैं, जो अक्सर खेल के विकास में लागू करना बहुत मुश्किल है। खासकर जब गेम बेतरतीब ढंग से इस्तेमाल कर रहा हो।
फिलिप

गंभीरता से परीक्षण करने और उस नौकरी के लिए उपकरणों को देखने के लिए सहारा। आप इसके बजाय SO पर पूछना चाह सकते हैं - उनके पास सेलेनियम पर बहुत सारे प्रश्नोत्तर हैं। जैसा कि @Pippipp ने उल्लेख किया है, कुछ प्रकार के गेमिंग परीक्षण स्वचालित करने के लिए सरल हैं; यानी मैं अभी तक दृश्य प्रभावों की जाँच के लिए एक अप्राप्य परीक्षण देखने के लिए है।
पिकालेक

1
यह स्पष्ट नहीं है कि आप क्या परीक्षण करना चाहते हैं, लेकिन ऐसा लगता है कि आप एक मूल्य की तलाश कर रहे हैं जो खेल के स्वतंत्र रूप से परीक्षण किया जा सकता है - एक फ़ंक्शन द्वारा लौटाए गए मूल्य। और यदि हां, तो आप इस फ़ंक्शन का परीक्षण कर सकते हैं और इससे कोई फर्क नहीं पड़ेगा कि इसका उपयोग खेल में किया जा रहा है या नहीं। यदि यह आपके लिए स्पष्ट नहीं है कि यह कैसे करना है, तो हमें बताएं और मैं इकाई परीक्षण से संबंधित उत्तर लिखने का प्रयास करूंगा।
एमवीसीडीएस

जवाबों:


1

एक खेल का परीक्षण करने के कई तरीके हैं, दो सबसे अधिक उपयोग किए जाते हैं: इकाई और एकीकरण परीक्षण।

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

के लिए एकीकरण परीक्षण , आप एक निश्चित समय पर "पूरी" खेल, उससे सहभागिता करते हैं सभी भागों चल रहे हैं। जिन चीज़ों का आप परीक्षण करना चाहते हैं, उनकी गहराई के आधार पर, मुझे लगता है कि यह एकमुश्त असंभव को आसान कर सकता है।

एक विचार के लिए एक "एकीकरण परीक्षण" बिल्ड होगा, जो हर (सबसे) क्रियाओं को लॉग करता है (यानी, स्पॉनिंग मॉन्स्टर, साउंड बजाना, प्रभाव शुरू करना, स्पॉनिंग कण)। एक निश्चित समय के लिए चलने के बाद, आप लॉग को देख सकते हैं कि यह दिए गए पैटर्न से मेल खाता है (यह भी इस बात पर निर्भर करता है कि इनपुट के आधार पर गेम कितना यादृच्छिक है)। अब, यह सरल लगता है, लेकिन सवाल यह है: आप गेम को वांछित कार्यों को करने के लिए कैसे कहते हैं? जो मुझे दूसरे विचार में लाता है।

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

नियंत्रित करने वाले भाग के लिए, यदि आपका गेम टच / ब्राउज़र आधारित है, तो आप इसके बजाय वर्चुअल टच / इनपुट डिवाइस के माध्यम से क्रियाओं का अनुकरण कर सकते हैं, लेकिन यह एक्शन जटिलता के आधार पर थोड़ा अधिक कठिन है।

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

ध्वनियों के लिए, यह थोड़ा कठिन हो सकता है, क्योंकि यह OUT डिवाइस में "सुनना" शामिल होगा (जो हमेशा IIRC संभव नहीं है, क्योंकि यह सिस्टम के हार्डवेयर पर निर्भर करता है)। लेकिन अगर यह संभव है तो आप उसी संदर्भ-आधारित तुलना कर सकते हैं जैसा आप छवियों के साथ करते हैं।

मुझे आशा है कि यह इस बात पर कुछ प्रकाश डालेगा कि आप खेल परीक्षण को कैसे स्वचालित कर सकते हैं।

बाद में संपादित करें: मैं सिर्फ देखता हूं कि एक और संबंधित प्रश्न था जो आपको कुछ संकेत दे सकता है कि आप कुछ बिट कैसे करेंगे: स्वचालित परीक्षण खेल

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.