प्रोग्रामिंग में जुड़नार क्या हैं?


189

मैंने इस शब्द को कई बार (प्रोग्रामिंग के संदर्भ में) सुना है, लेकिन इसका कोई भी स्पष्टीकरण नहीं मिला कि इसका क्या मतलब है। कोई अच्छा लेख या स्पष्टीकरण?

जवाबों:


193

मुझे लगता है कि आप परीक्षण जुड़नार का जिक्र कर रहे हैं :

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

जुड़नार के उदाहरण:

  • डेटा के एक विशिष्ट, ज्ञात सेट के साथ एक डेटाबेस लोड हो रहा है
  • एक हार्ड डिस्क को मिटाना और एक ज्ञात क्लीन ऑपरेटिंग सिस्टम इंस्टॉलेशन स्थापित करना
  • फ़ाइलों के एक विशिष्ट ज्ञात सेट की प्रतिलिपि बनाना
  • नकली या नकली वस्तुओं के इनपुट डेटा और सेट-अप / निर्माण की तैयारी

(स्रोत: विकिपीडिया, ऊपर लिंक देखें)

यहां 'Google टेस्ट' ढांचे के प्रलेखन से कुछ व्यावहारिक उदाहरण भी दिए गए हैं ।


13

मुझे लगता है कि PHP- यूनिट परीक्षणों में इसकी बहुत अच्छी व्याख्या है:

लेखन परीक्षणों के सबसे अधिक समय लेने वाले भागों में से एक दुनिया को एक ज्ञात स्थिति में स्थापित करने के लिए कोड लिख रहा है और फिर परीक्षण पूरा होने पर इसे अपनी मूल स्थिति में वापस कर देता है। इस ज्ञात स्थिति को परीक्षण की स्थिरता कहा जाता है।

इसके अलावा Yii दस्तावेजों ने एक अच्छे आकार में जुड़नार परीक्षण का वर्णन किया:

स्वचालित परीक्षणों को कई बार निष्पादित करने की आवश्यकता होती है। यह सुनिश्चित करने के लिए कि परीक्षण प्रक्रिया पुन: प्रयोज्य है, हम परीक्षण को कुछ ज्ञात अवस्था में चलाना चाहते हैं जिसे स्थिरता कहा जाता है। उदाहरण के लिए, किसी ब्लॉग एप्लिकेशन में पोस्ट निर्माण सुविधा का परीक्षण करने के लिए, प्रत्येक बार जब हम परीक्षण चलाते हैं, तो पोस्ट के बारे में प्रासंगिक डेटा संग्रहीत करने वाले तालिकाओं (जैसे पोस्ट टेबल, टिप्पणी तालिका) को कुछ निश्चित स्थिति में बहाल किया जाना चाहिए।

यहाँ जुड़नार परीक्षण का सरल उदाहरण है

<?php
use PHPUnit\Framework\TestCase;

class StackTest extends TestCase
{
    protected $stack;

    protected function setUp()
    {
        $this->stack = [];
    }

    protected function tearDown()
    {
        $this->stack = [];
    }

    public function testEmpty()
    {
        $this->assertTrue(empty($this->stack));
    }

    public function testPush()
    {
        array_push($this->stack, 'foo');
        $this->assertEquals('foo', $this->stack[count($this->stack)-1]);
        $this->assertFalse(empty($this->stack));
    }

    public function testPop()
    {
        array_push($this->stack, 'foo');
        $this->assertEquals('foo', array_pop($this->stack));
        $this->assertTrue(empty($this->stack));
    }
}
?>

इस PHP यूनिट टेस्ट में नामों के साथ फ़ंक्शंस हैं setUpऔर tearDownआपके टेस्ट को चलाने से पहले आप अपना डेटा सेटअप करते हैं और समाप्त होने पर आप उन्हें प्रारंभिक स्थिति में पुनर्स्थापित कर सकते हैं।


6

शब्द की स्थिरता संदर्भ, प्रोग्रामिंग भाषा या रूपरेखा के आधार पर भिन्न होती है।

1. एक ज्ञात स्थिति जिसके खिलाफ एक परीक्षण चल रहा है

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

एक परीक्षण स्थिरता (एक परीक्षण संदर्भ के रूप में भी जाना जाता है) एक परीक्षण चलाने के लिए आवश्यक पूर्व शर्त या राज्य का सेट है। डेवलपर को परीक्षणों से पहले एक ज्ञात अच्छे राज्य की स्थापना करनी चाहिए, और परीक्षणों के बाद मूल स्थिति में वापस आना चाहिए। विकिपीडिया (xUnit)

2. सैंपल डेटा वाली फाइल

नमूना डेटा के लिए फिक्स्चर एक फैंसी शब्द है। फिक्स्चर आपको अपने परीक्षण चलाने से पहले पूर्वनिर्धारित डेटा के साथ अपने परीक्षण डेटाबेस को आबाद करने की अनुमति देते हैं। फिक्स्चर डेटाबेस स्वतंत्र हैं और YAML में लिखे गए हैं। प्रति मॉडल एक फाइल है। RubyOnRails.org

3. एक प्रक्रिया जो एक आवश्यक राज्य स्थापित करती है। 

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


5

वास्तव में उस विषय के लिए, JUnit में एक अच्छी तरह से समझाया गया डॉक है। यहाँ लिंक है!

लेख का संबंधित हिस्सा है:

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

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

जब आपके पास एक सामान्य स्थिरता होती है, तो आप यहाँ क्या करते हैं:

फ़िक्सचर के प्रत्येक भाग के लिए एक फ़ील्ड जोड़ें @ org.junit.Before के साथ एक विधि की व्याख्या करें और उस विधि में चर को इनिशियलाइज़ करें @ org.junit के साथ एक विधि एनोटेट करें। सेटप में आवंटित किसी भी स्थायी संसाधन को जारी करने के लिए उदाहरण के लिए, लिखने के लिए। कई परीक्षण मामले जो 12 स्विस फ़्रैंक, 14 स्विस फ़्रैंक और 28 अमेरिकी डॉलर के विभिन्न संयोजनों के साथ काम करना चाहते हैं, पहले एक स्थिरता बनाएं:

public class MoneyTest {
    private Money f12CHF;
    private Money f14CHF;
    private Money f28USD;

    @Before public void setUp() {
    f12CHF= new Money(12, "CHF");
    f14CHF= new Money(14, "CHF");
    f28USD= new Money(28, "USD");
    }
}

2

Xamarin.UITest में इसे निम्नलिखित के रूप में समझाया गया है:

आमतौर पर, प्रत्येक Xamarin.UITest को एक विधि के रूप में लिखा जाता है जिसे परीक्षण के रूप में संदर्भित किया जाता है। जिस वर्ग में परीक्षण होता है उसे परीक्षण स्थिरता के रूप में जाना जाता है। परीक्षण की स्थिरता में या तो एक परीक्षण होता है या परीक्षणों का एक तार्किक समूह होता है और परीक्षण को पूरा करने के लिए किसी भी सेटअप के लिए जिम्मेदार होता है और परीक्षण समाप्त होने पर किसी भी सफाई की आवश्यकता होती है। प्रत्येक परीक्षण को व्यवस्था-अधिनियम-अभिकार पैटर्न का पालन करना चाहिए:

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

उपरोक्त अंश के मूल लेख के लिए लिंक

और Xamarin.UITest कोड के भीतर यह निम्नलिखित की तरह दिखता है:

using System;
using System.IO;
using System.Linq;
using NUnit.Framework;
using Xamarin.UITest;
using Xamarin.UITest.Queries;

namespace xamarin_stembureau_poc_tests
{
    [TestFixture(Platform.Android)]
    [TestFixture(Platform.iOS)]
    public class TestLaunchScreen
    {
        IApp app;
        Platform platform;

        public Tests(Platform platform)
        {
            this.platform = platform;
        }

        [SetUp]
        public void BeforeEachTest()
        {
            app = AppInitializer.StartApp(platform);
        }

        [Test]
        public void AppLaunches()
        {
            app.Screenshot("First screen.");
        }

        [Test]
        public void LaunchScreenAnimationWorks()
        {
            app.Screenshot("Launch screen animation works.");
        }
    }
}

आशा है कि यह किसी ऐसे व्यक्ति के लिए सहायक हो सकता है जो प्रोग्रामिंग में फिक्स्चर के बारे में बेहतर समझ की तलाश में है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.