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