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