2009-02-13 14 views
30

मैं यह देखने के लिए उत्सुक हूं कि अन्य डेवलपर्स अपनी वेबसाइटों का परीक्षण करने के बारे में कैसे जाते हैं। विशेष रूप से मेरे मामले में PHP, लेकिन यह शायद कई भाषाओं को फैलाता है। मैं एक साल से अधिक समय से साइट पर काम कर रहा हूं, और मैं वास्तव में संस्करणों के बीच बहुत सारे रिग्रेशन परीक्षण को स्वचालित करना चाहता हूं।इकाई एक वेबसाइट का परीक्षण

यह विशिष्ट साइट कोडइग्निटर में है, इसलिए मेरे मॉडल के लिए मेरे पास कुछ परीक्षण हैं। मैं बस उन लोगों का परीक्षण करने से आगे बढ़ना चाहता हूं। हालांकि, यह एक मुद्दा है कि गैर-एमवीसी डेवलपर्स को भी मुझे यकीन है कि मुझे यकीन है।

संपादित करें: मुझे लगता है कि मेरी कई परीक्षण इच्छाओं को पूरा करने वाली कार्यक्षमता यह है कि स्क्रिप्ट प्रोसेसिंग के अंत में पैरामीटर का एक विशिष्ट मूल्य है। मेरे मामले में नियंत्रक में बहुत सारे तर्क हैं, और यह वह मुख्य क्षेत्र है जिसका मैं परीक्षण करना चाहता हूं।

उत्तर

23

UI की जांच किए बिना वास्तविक इकाई परीक्षण के लिए, आपको मॉडल में फ़ंक्शंस का परीक्षण करना चाहिए। आपकी अधिकांश कार्यक्षमता वैसे भी होनी चाहिए।

आप अपनी साइट के यूआई का परीक्षण करने के लिए Selenium पर एक नज़र डालना चाहते हैं। यह आपके कार्यों को रिकॉर्ड कर सकता है और उन्हें वापस चला सकता है, या आप सीधे स्क्रिप्टिंग को संपादित कर सकते हैं। alt text http://seleniumhq.org/projects/ide/selenium-ide.gif

+0

मॉडल? वह अजीब है। मेरे एमवीसी अनुप्रयोगों में अधिकांश कार्यक्षमता (प्रोग्राम तर्क) नियंत्रक में है। मॉडल भंडारण (डेटाबेस या जो कुछ भी) को पुश/पुल करने के लिए उपयोग किया जाता है, बस एक साधारण रैपर होता है। –

+6

@ मिलन यह आपकी भाषा और आपकी कोडिंग शैली पर निर्भर करता है। रूबी, उदाहरण के लिए, प्रकाश नियंत्रकों और भारी मॉडल पसंद करते हैं। Windows XP स्क्रीनशॉट के बावजूद – ryeguy

+0

+1 :) – jonsibley

2

आप PHPUnit http://www.phpunit.de/manual/current/en/

मैं अपने पीएचपी परियोजनाओं पर इसे का उपयोग शुरू कर दिया है की जाँच करने के लिए चाहते हो सकता है और इसके साथ काम करने के लिए बहुत आसान और बहुत शक्तिशाली है। विशेष रूप से, जानें और मोजे का उपयोग करें: http://www.phpunit.de/manual/3.0/en/mock-objects.html

मॉकिंग विशेष रूप से महत्वपूर्ण है जब यूनिट परीक्षण अनुप्रयोग जो डेटाबेस संचालन करते हैं।

5

क्या आपने Fitnesse को आजमाया है?

यह स्वीकृति परीक्षण बनाने में मदद करता है। वे वेबसाइटों के लिए विशेष रूप से उपयोगी हैं, जो इस तरह के परीक्षण कर रहे हैं दर्द हैं।

वेबपेज के अंदर चाचाबोब से कुछ वीडियो भी हैं। अच्छी बात यह है कि फिटनेस वेबसाइट परीक्षण के लिए प्रतिबंधित नहीं है, इसलिए इसका उपयोग करने के बारे में आपका ज्ञान अन्य ऐप्स के साथ भी उपयोग किया जा सकता है।

जिस परियोजना पर मैं काम कर रहा हूं वह डेस्कटॉप एपीपी है जो सी ++ में लिखा गया है जो फिटनेस टेस्ट का उपयोग करता है।

लेकिन यदि आप इकाई का परीक्षण करने वाले यूनिट का परीक्षण करते हैं (जो मुझे लगता है कि आपने नहीं किया है), तो उन्हें phpunit lib का उपयोग करके बनाया जा सकता है। मुझे लगता है कि ZEND ढांचे के लिए एक समान lib है।

+0

वेब ऐप्स के लिए फिटनेस –

0

वेब ऐप्स का परीक्षण करने के लिए मैंने जो सबसे अच्छा विचार सुना है, वह एक स्क्रिप्ट बनाना था जो साइट के सभी पृष्ठों पर जायेगा और पिछले स्कैन से भिन्नता के लिए उन्हें जांचें, आपको दे रहा है परिवर्तन स्वीकार करें और रिग्रेशन ठीक करें।

आम तौर पर, जीयूआई अनुप्रयोगों (वेबसाइट्स जीयूआई ऐप्स) का स्वचालित परीक्षण कठिन और आमतौर पर अनावश्यक है। यूनिट परीक्षण सरल पुस्तकालयों के साथ सबसे अच्छा काम करते हैं।

+0

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

+0

ओपी ने यूनिट परीक्षण के बारे में नहीं पूछा, लेकिन सामान्य रूप से वेब एप्लिकेशन का परीक्षण करने के बारे में। मैं ओओडी से परिचित हूं, और मुझे लगता है कि मुझे पता है कि यूनिट टेस्ट क्या है। –

+0

क्या आपने वास्तव में वेब ऐप में यूनिट परीक्षणों का उपयोग करने का प्रयास किया है? समय के साथ बदलते वास्तविक वेब ऐप पर लागू होने पर व्यापक स्वचालित परीक्षण एक उत्तरदायित्व हो सकता है। लेकिन आप उसे नहीं जानते। कोई अपराध नहीं। –

0

मैं कैनू वेबटेस्ट का उपयोग करता हूं। यह वहां पर सबसे अच्छा मुफ्त वेब साइट यूनिट परीक्षण ढांचा है। यह एक्सएमएल के साथ पूरी तरह से पठनीय है और इसके लिए कोई ब्राउज़र की आवश्यकता नहीं है ताकि यह एक बिल्ड सर्वर से चल सके।

0

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

+0

क्या एचटीएमएल की तुलना करना आसान नहीं होगा? जब तक आप अपनी जावास्क्रिप्ट आदि का परीक्षण नहीं कर रहे हैं –

+0

साइट पर दृश्य परिवर्तनों के लिए एक प्रतिगमन परीक्षण - सीएसएस परिवर्तन, फ़ाइलों को शामिल करने में, प्रस्तुति बदल सकता है - और छवियां बदल सकती हैं। हम कैप्चर पर MASKS को अनुमति देते हैं (उदा। दिनांक/समय दिखाता है) जो HTML तुलना में करना कठिन हो सकता है। हमारी छवि परिवर्तन के क्षेत्रों पर प्रकाश डाला गया है – Kristen

1

TOAST पर एक नज़र डालें। यह कोडइग्निटर के लिए विशेष रूप से निर्मित है। यह सीआई आधारभूत संरचना का उपयोग करता है, ताकि आप ब्राउज़र के माध्यम से सभी परीक्षण परीक्षण चला सकें और परिणाम वेब पेज (एचटीएमएल) के रूप में वापस प्रदर्शित किए जा सकें। इसका उपयोग करना बहुत आसान है।

मेरा सुझाव है कि आप अपने नियंत्रकों का भी परीक्षण करें। परीक्षण मॉडल ठीक है, लेकिन मॉडल सिर्फ डीबी भंडारण है। नियंत्रकों में सभी "व्यावसायिक तर्क" होते हैं और वे स्थान होते हैं जहां अधिकांश चीजें गलत होती हैं।

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