2010-05-28 11 views
8

मैं Windows.Forms इंटरफ़ेस के साथ ~ 300K LOC C# विरासत मोटी-क्लाइंट एप्लिकेशन को बनाए रख रहा हूं। ऐप छोटी कीड़े और quirks से भरा है। उदाहरण के लिए, मैंने हाल ही में एक बग खोजा है, जहां कोई डेटा डेटाव्यूग्रिड पर कोशिकाओं के माध्यम से संपादित करता है और टैब (क्लिक नहीं करता), और चयनित एक निश्चित सेल छोड़ देता है, तो ऐप को "ऑब्जेक्ट रेफरेंस ऑब्जेक्ट के उदाहरण पर सेट नहीं किया जाता है" अपवाद । मैं हर हफ्ते या दो के बारे में कुछ नया खोजता हूं (या एक बग रिपोर्ट प्राप्त करता हूं)। मेरे पास पर्याप्त था, और अनदेखा मुद्दों को फेरेट करने के प्रयास में एप्लिकेशन पर किसी प्रकार के फ़ज़ परीक्षण की कोशिश करने की सोच रहा था।फ़ज़ परीक्षण के लिए कोई भी अच्छा टूल या टिप्स विंडोज़ अनुप्रयोगों को बनाता है?

यदि मैं अपने स्वयं के फ़ज़ परीक्षण को रोल करता हूं, तो मुझे लगता है कि मुझे कम से कम टेस्ट harnesses उत्पन्न करने में सक्षम होना चाहिए जो मेरे ऐप (मुख्य विंडो, फॉर्मएक्स, फॉर्मवाई, फॉर्मज़, ...) के टुकड़े चलाते हैं और उनमें घटनाओं को इंजेक्ट करने का प्रयास करें।

मैं इसके लिए उपयुक्त टूल्स देखने की कोशिश कर रहा था, लेकिन अभी तक विन फॉर्म के लिए कुछ भी नहीं आया है। (हालांकि, वेब ऐप्स के लिए फ़ज़ परीक्षण टूल की कोई कमी नहीं है)।

कोई सहायक विचार?

उत्तर

6

मुझे हमेशा पाम हैंडहेल्ड पर इस्तेमाल किए गए Gremlins परीक्षण उपकरण का विचार पसंद है। यह यूआई प्रोग्रामिंग कीड़े को फ्लश करने के लिए यादृच्छिक टैप ईवेंट उत्पन्न करता है। आप अपने ऐप में ऐसा ही कर सकते हैं, यादृच्छिक स्थानों पर लाखों माउस नीचे और घटनाएं उत्पन्न कर सकते हैं। आपको PostMessage() को P/Invoke करना होगा और WM_LBUTTONDOWN/UP संदेशों के लिए विंडो हैंडल उत्पन्न करने के लिए Control.GetChildAtPoint() का उपयोग करना होगा। इवेंट हैंडलर चलाने के लिए अपने टेस्ट लूप में एप्लिकेशन.डॉवेंट्स()।

+0

यह अच्छी शुरुआत की तरह लगता है। मुझे यह एमएसडीएन आलेख मिला है जिसमें उस दृष्टिकोण को रेखांकित करने में बहुत अच्छी जानकारी है: http://msdn.microsoft.com/en-us/magazine/cc163738.aspx –

+0

मुझे लगता है कि मैं इसके बजाय इस दृष्टिकोण के साथ जा रहा हूं मेरी खोज में पाए गए अस्पष्ट फ़ज़-परीक्षण टूल में से एक। इस तरह की घटनाओं को अनुकरण करके अपना खुद का दृष्टिकोण रोल करने से मुझे इसे अपने मौजूदा एनयूनीट परीक्षण ढांचे में एकीकृत करने की अनुमति मिलनी चाहिए। –

4

शुद्ध चारों ओर कुछ खोज करने के, मैं उपयोगी उपकरणों और परमाणु रूप में पृथक परीक्षण WinForms क्षुधा के बारे में जानकारी के साथ 2 लिंक नहीं मिला:

  • Monkey Fuzz Testing - codeplex पर एक अल्फा स्थिति उपकरण सुंदर के करीब हो गया लगता है कि क्या मुझे चाहिए। साइट से: "मंजीफज़ मुख्य रूप से एक प्रोग्राम में यादृच्छिक कीबोर्ड और माउस इवेंट भेजता है, लेकिन यह रास्ते में कार्यों को रिकॉर्ड कर सकता है। इससे उन्हें रिग्रेशन परीक्षण के लिए उपयोगी बनाया जा सकता है)।" मैं इसे आज़मा सकता हूं और अपने निष्कर्षों की रिपोर्ट कर सकता हूं।
  • विस्कॉन्सिन सीएस विभाग से Paper on Random Testing। यह 2000-2002 दिनांकित है, लेकिन इसमें कुछ अच्छी जानकारी शामिल है, और links to tools वे अपने अध्ययन में उपयोग करते हैं। हालांकि, ऐसा लगता है कि उपकरण कम से कम 10 साल पुराने हो सकते हैं।
+0

https://github.com/SJMakin/FuzzWinForms –

संबंधित मुद्दे