कुछ एप्लिकेशन डोमेन हैं (उदा। गेमडेव) जिसमें उनके आउटपुट के उत्पादन के लिए यादृच्छिक मूल्यों का उपयोग करके बहुत से फ़ंक्शन बनाए जाने चाहिए। उदाहरणों में से एक नीचे प्रस्तुत किया गया है:यादृच्छिक उपयोग करने वाले कार्यों की शुद्धता को कैसे सत्यापित करें?
def generate_key(monster_key_drop_coef):
key_letters = string.ascii_uppercase
rand = random.random()
if monster_key_drop_coef < rand:
return None
button = {}
button["type"] = random.choice([1,2,3])
button["letter"] = random.choice(key_letters)
return button
यह फ़ंक्शन कई यादृच्छिक संचालन के आधार पर आइटम की बूंद उत्पन्न करता है। समस्या तब प्रकट होती है जब आप इस फ़ंक्शन की स्वचालित रूप से शुद्धता को सत्यापित करना चाहते हैं। जनरेटेड वैल्यू निर्धारक नहीं हैं और रिग्रेशन परीक्षणों का लेखन असंभव प्रतीत होता है।
मेरे प्रश्न हैं:
- कार्यों के इस प्रकार के लिए उपयोगी प्रतिगमन परीक्षण लिखने के लिए यह संभव है?
- क्या इस मामले में कुछ अन्य प्रकार के परीक्षण बनाने के लिए कोई सामान्य दृष्टिकोण है?
इस विषय पर पूरी किताबें लिखी गई हैं। उदाहरण: http://www.johndcook.com/Beautiful_Testing_ch10.pdf –
ज्ञात परिणामों को वितरित करने के लिए आरएनजी का मज़ाक उड़ाते हुए (और फिर विशिष्ट आउटपुट के साथ परीक्षण जिसके लिए वांछित परिणाम ज्ञात है) एक दृष्टिकोण है। –