मैं अपने ग्राहक से बहुत विशिष्ट आवश्यकताओं के अनुसार खोज परिणामों की एक अनियंत्रित सूची को सॉर्ट करने में सहायता करने के लिए एक सूची तुलनित्र पर काम कर रहा हूं। आवश्यकता के क्रम में निम्नलिखित नियमों के साथ रैंक प्रासंगिक एल्गोरिथ्म के लिए आवश्यकताओं को बुलाती है:
- नाम पर सटीक मिलान
- नाम में खोज क्वेरी के सभी शब्द या परिणाम का एक पर्याय
- परिणाम के नाम या पर्यायवाची में खोज क्वेरी के कुछ शब्द (% अवरोही)
- विवरण में खोज क्वेरी के सभी शब्द
- विवरण में खोज क्वेरी के कुछ शब्द (% अवरोही)
- अंतिम संशोधित तिथि अवरोही
इस तुलनित्र के लिए प्राकृतिक डिजाइन का विकल्प 2 की शक्तियों के आधार पर स्कोर की गई रैंकिंग प्रतीत होता है। कम महत्वपूर्ण नियमों का योग कभी भी उच्च महत्व के नियम पर सकारात्मक मैच से अधिक नहीं हो सकता है। यह निम्नलिखित स्कोर द्वारा प्राप्त किया जाता है:
- 32
- 16
- 8 (% उतरने पर आधारित माध्यमिक टाई-ब्रेकर स्कोर)
- 4
- 2 (सेकेंडरी टाई-ब्रेकर स्कोर% के आधार पर)
- 1
TDD स्पिरिट में मैंने पहले अपनी यूनिट टेस्ट के साथ शुरुआत करने का फैसला किया। प्रत्येक अद्वितीय परिदृश्य के लिए एक परीक्षण का मामला होना न्यूनतम 63 अद्वितीय परीक्षण मामलों में होगा नियम 3 और 5 पर माध्यमिक टाई ब्रेकर तर्क के लिए अतिरिक्त परीक्षण मामलों पर विचार नहीं करना।
वास्तविक परीक्षण वास्तव में हालांकि कम होंगे। वास्तविक नियमों के आधार पर, कुछ नियम यह सुनिश्चित करते हैं कि निचले नियम हमेशा सत्य होंगे (उदाहरण के लिए। 'जब सभी खोज क्वेरी शब्द विवरण में दिखाई देते हैं' तो नियम 'कुछ खोज क्वेरी शब्द विवरण में प्रकट होते हैं' हमेशा सही होगा)। अभी भी इनमें से प्रत्येक परीक्षण के मामलों को लिखने के प्रयास का स्तर इसके लायक है? क्या यह परीक्षण का स्तर है जिसे आमतौर पर टीडीडी में 100% परीक्षण कवरेज के बारे में बात करने के लिए कहा जाता है? यदि नहीं, तो एक स्वीकार्य वैकल्पिक परीक्षण रणनीति क्या होगी?