2009-02-20 4 views
9

मैं एक वेब एप्लिकेशन लिख रहा हूं जो UI के संदर्भ में बहुत जटिल है और AJAX, DOM और छवि कुशलता पर भारी निर्भर करता है।वेब अनुप्रयोग के लिए यूनिट परीक्षण सर्वोत्तम तरीके से कैसे करें

क्या कोई मानक अभ्यास है (मुझे उपकरण नहीं चाहिए) जो कि बग को कम करने के लिए किया जा सकता है?

+0

ग्रेट प्रश्न। मैं वही बात सोच रहा हूं। – RSolberg

+0

यह एक बहुत अस्पष्ट सवाल है। आपके प्रश्न का सामान्य रूप से औजारों की सूची के साथ उत्तर दिया जा सकता है, लेकिन आप इसे ध्वनि बनाते हैं जैसे आपके कोड में कम बग प्राप्त करने के लिए कुछ जादुई तरीका है। आप वास्तव में क्या पूछ रहे हो – ryeguy

+0

@ryeguy उनका प्रश्न एक डिजाइन उन्मुख प्रश्न है। वह पूछ रहा है कि कैसे यूनिट परीक्षण शैली भारी यूआई ऐप के साथ फिट बैठती है। कार्लटन इसका उत्तर देने में सक्षम था। – DevinB

उत्तर

5

तर्क और यूआई भाग अलग करें - पृष्ठ के पीछे कोड में अपने सभी व्यवसाय तर्क और जटिल कोड नहीं है। इसके बजाय उन्हें मानक स्तर संरचना (डेटा परत, व्यवसाय नियम/तर्क परत, यूआई परत) से बाहर बनाएँ। यह सुनिश्चित करेगा कि आपका तर्क कोड जिसे आप परीक्षण करना चाहते हैं वह फ़ॉर्म का संदर्भ नहीं देता है, बल्कि इसके बजाय कक्षाओं का उपयोग करता है जो आसानी से यूनिट परीक्षण किए जाते हैं।

TextBox2.Text = DoWork(TextBox1.Text.ToString()); 

public class Work 
{ 
    public string DoWork(string str) 
    { 
     //do work 
     return str2; 
    } 
} 

इस तरह आप लिख सकते हैं:

string str = TextBox1.Text.ToString(); 
//do whatever your code does 
TextBox2.Text = str; 

इसके बजाय तर्क एक अलग वर्ग में एक विधि के साथ निकालें:

एक बहुत ही बुनियादी उदाहरण के लिए, करता है कि इस कोड की जरूरत नहीं है यूनिट परीक्षण यह सत्यापित करने के लिए कि DoWork सही मान वापस कर रहा है:

string return = DoWork("TestThisString"); 

अब आपका सभी तर्क यूनिट टेस है तालिका, केवल कोड के साथ जो सीधे आपके यूआई परत में पृष्ठ का संदर्भ देना है।

8

धुआं परीक्षण एक बहुत ही सरल तकनीक है, जहां आप अपने सभी एप्लिकेशन के क्लिक-थ्रू को स्वचालित करते हैं। यदि स्क्रिप्ट चलती है और लॉग में कहीं भी कोई त्रुटि नहीं है, तो आपके पास कम से कम एक परिभाषित स्तर की गुणवत्ता है।

यह तकनीक वास्तव में रिग्रेशन ब्रेक की उचित मात्रा को पकड़ती है और ऐसा लगता है उससे कहीं अधिक प्रभावी है। हम इसके लिए selenium का उपयोग करते हैं।

+0

क्या आपका मतलब विशिष्ट परीक्षण परिदृश्यों के साथ एक कार्यात्मक परीक्षण है या यह बस - हर संभव लक्ष्य पर क्लिक करें? – legesh

+0

हमारे द्वारा किए जाने वाले सबसे सरल संस्करण का उपयोग उन मुख्य मामलों के माध्यम से करना है जो हमारे मुख्य वितरण योग्य हैं। कम से कम हम मुख्य वैकल्पिक/त्रुटि प्रवाह भी शामिल करते हैं। इसका जरूरी अर्थ यह नहीं है कि हम प्रत्येक बटन/आइटम पर क्लिक करेंगे। – krosenvold

2

Watin इसके लिए एक शानदार उपकरण है।

1

एक साधारण चेकलिस्ट (कागज़ के टुकड़े पर भी!) यह सुनिश्चित करने का सबसे अच्छा तरीका है कि आप महत्वपूर्ण चीजों को कभी भी न छोड़ें। यह एक अच्छा "धूम्रपान परीक्षण" है कि कुछ भी "मानक" तोड़ा नहीं गया है।

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