O que são equipamentos de programação?


191

Já ouvi falar desse termo muitas vezes (no contexto da programação), mas não consegui encontrar nenhuma explicação sobre o que significava. Algum bom artigo ou explicação?

Respostas:


195

Eu acho que você está se referindo aos equipamentos de teste :

O objetivo de um equipamento de teste é garantir que exista um ambiente bem conhecido e fixo no qual os testes sejam executados para que os resultados sejam repetíveis. Algumas pessoas chamam isso de contexto de teste.

Exemplos de acessórios:

  • Carregando um banco de dados com um conjunto conhecido específico de dados
  • Apagando um disco rígido e instalando uma instalação conhecida limpa do sistema operacional
  • Copiando um conjunto conhecido específico de arquivos
  • Preparação de dados de entrada e configuração / criação de objetos falsos ou simulados

(fonte: wikipedia, veja o link acima)

Aqui também estão alguns exemplos práticos da documentação da estrutura "Teste do Google" .


13

Eu acho que os testes de unidade PHP têm uma explicação muito boa disso:

Uma das partes mais demoradas dos testes de gravação é escrever o código para configurar o mundo em um estado conhecido e, em seguida, retorná-lo ao seu estado original quando o teste estiver concluído. Esse estado conhecido é chamado de dispositivo elétrico do teste.

Os documentos da Yii também descrevem os dispositivos de teste em boa forma:

Testes automatizados precisam ser executados várias vezes. Para garantir que o processo de teste seja repetível, gostaríamos de executá-los em algum estado conhecido chamado dispositivo elétrico. Por exemplo, para testar o recurso de criação de postagens em um aplicativo de blog, sempre que executamos os testes, as tabelas que armazenam dados relevantes sobre postagens (por exemplo, a tabela Post, a tabela Comment) devem ser restauradas para algum estado fixo.

Aqui o exemplo simples de teste de luminárias

<?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));
    }
}
?>

Este teste de unidade PHP possui funções com nomes setUpe, tearDownantes de executar seu teste, você configura seus dados e, ao final, pode restaurá-los para o estado inicial.


7

O termo dispositivo elétrico varia com base no contexto, linguagem de programação ou estrutura.

1. Um estado conhecido no qual um teste está sendo executado

Uma das partes mais demoradas dos testes de gravação é escrever o código para configurar o mundo em um estado conhecido e, em seguida, retorná-lo ao seu estado original quando o teste estiver concluído. Esse estado conhecido é chamado de dispositivo elétrico do teste. Documentação da unidade PHP

Um dispositivo de teste (também conhecido como contexto de teste) é o conjunto de pré-condições ou estado necessário para executar um teste. O desenvolvedor deve configurar um bom estado conhecido antes dos testes e retornar ao estado original após os testes. Wikipedia (xUnit)

2. Um arquivo contendo dados de amostra

Luminárias é uma palavra chique para dados de amostra. As luminárias permitem que você preencha seu banco de dados de testes com dados predefinidos antes da execução dos testes. As luminárias são independentes do banco de dados e gravadas em YAML. Há um arquivo por modelo. RubyOnRails.org

3. Um processo que configura um estado necessário. 

Um dispositivo de teste de software configura o sistema para o processo de teste, fornecendo todo o código necessário para inicializá-lo, satisfazendo, assim, quaisquer pré-condições que possam existir. Um exemplo pode ser carregar um banco de dados com parâmetros conhecidos de um site do cliente antes de executar seu teste. Wikipedia


5

Exatamente nesse tópico, o JUnit tem um documento bem explicado. Aqui está o link!

A parte relacionada do artigo é:

Os testes precisam ser executados no fundo de um conjunto conhecido de objetos. Esse conjunto de objetos é chamado de acessório de teste. Quando você está escrevendo testes, geralmente descobre que gasta mais tempo escrevendo o código para configurar o equipamento do que realmente testando valores.

Até certo ponto, você pode facilitar a escrita do código do equipamento, prestando muita atenção aos construtores que escreve. No entanto, uma economia muito maior vem do compartilhamento do código do dispositivo elétrico. Freqüentemente, você poderá usar o mesmo acessório para vários testes diferentes. Cada caso enviará mensagens ou parâmetros ligeiramente diferentes para o aparelho e verificará resultados diferentes.

Quando você tem um acessório comum, aqui está o que você faz:

Adicione um campo para cada parte do equipamento. Anote um método com @ org.junit. Antes e inicialize as variáveis ​​nesse método. Anote um método com @ org.junit. vários casos de teste que desejam trabalhar com diferentes combinações de 12 francos suíços, 14 francos suíços e 28 dólares americanos, primeiro criam um dispositivo elétrico:

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

No Xamarin.UITest, é explicado da seguinte maneira:

Normalmente, cada Xamarin.UITest é gravado como um método chamado de teste. A classe que contém o teste é conhecida como dispositivo de teste. O dispositivo de teste contém um único teste ou um agrupamento lógico de testes e é responsável por qualquer configuração para executar o teste e qualquer limpeza que precise ser executada quando o teste terminar. Cada teste deve seguir o padrão Arrange-Act-Assert:

  • Organizar - O teste configurará as condições e inicializará as coisas para que o teste possa ser acionado.
  • Atuar - O teste irá interagir com o aplicativo, inserir texto, pressionar botões e assim por diante.
  • Afirmar - O teste examina os resultados das ações executadas na etapa Atuar para determinar a correção. Por exemplo, o aplicativo pode verificar se uma mensagem de erro específica é exibida.

Link para artigo original do trecho acima

E no código Xamarin.UITest, ele se parece com o seguinte:

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.");
        }
    }
}

Espero que isso possa ser útil para alguém que esteja em busca de um melhor entendimento sobre os dispositivos elétricos na programação.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.