Gomes Andre Faria - Agile стр 28.

Шрифт
Фон

postos na pirâmide para se fazer bons investimentos em automação de testes.

Há também os testes exploratórios, que são executados sempre manualmente

69

4.1. Testes Ágeis

Casa do Código

por um membro do time, com a finalidade de ir além de onde os testes automati-

zados puderam chegar. Eles não seguem um script pré-planejado e se beneficiam

da capacidade de investigação, da observação, da analise e da adaptação do testador.

Através deles os testadores buscam e encontram riscos que extrapolam o universo

de riscos que puderam ser previstos de antemão pela equipe.

Em se falando de prevenção de defeitos de software, TDD (Test-Driven Deve-

lopment) é uma ótima ferramenta na maioria dos contextos. Essa técnica sugere a

escrita de testes de unidade antes mesmo de se codificar a funcionalidade a ser testada. Com isso, é possível garantir alta cobertura de testes [7] e, consequentemente, feedback rápido em caso de alterações que possam gerar efeitos colaterais quebrando outras funcionalidades.

A seguir exploraremos um pouco melhor cada um dos diferentes tipos de tes-

tes. É importante ter em mente que nenhuma abordagem é melhor do que a outra;

na verdade, cada um deles é uma boa ferramenta para resolver certos tipos de pro-

blema e, você, provavelmente, precisará combinar todos para garantir a qualidade

necessária no produto que está desenvolvendo.

Testes de Unidade

Escrever testes de unidade é uma prática essencial para se garantir a qualidade de

um software. Um desenvolvedor ágil evita ao máximo escrever código sem escrever

também um teste de unidade para verificar se tudo está funcionando da forma como

deveria, por isso, no método XP, utiliza-se uma prática conhecida como TDD - Test-

Driven Development ou Desenvolvimento

Guiado por Testes.

Com TDD os testes de unidade são escritos antes mesmo do que as classes e

métodos a serem testados, melhorando assim a garantia de que todo o código está

coberto por testes. É importante ressaltar que o conceito de TDD vai muito além de

apenas escrever testes de unidade, e apresenta, na verdade, uma forma inovadora de

se pensar no design de um software.

É muito raro que um desenvolvedor acredite que possa escrever código que sem-

pre funcionará na primeira vez. Na verdade, muitos ficam surpreendidos quando

isso acontece. Por isso, independente de escrever testes antes ou depois, é preciso testar para garantir que o software está funcionado da maneira que deveria funcionar.

Uma alteração em um determinado trecho de código de uma parte de um sistema

pode causar um problema em outra parte, e os componentes geralmente contêm de-

pendências, que quando alteradas podem modificar seus comportamentos de forma

70

Casa do Código

Capítulo 4. Entregando Valor

inesperada: são os conhecidos efeitos colaterais.

Além de ajudar na melhoria da qualidade, os testes de unidade podem ajudar

o desenvolvedor a entender melhor as regras de negócio do sistema, uma vez que,

provavelmente, haverá um teste para cada regra. Dessa forma, eles poderão ser con-

siderados também uma documentação viva, porque além servir como referência

para compreensão das regras de negócio, servirão também para garantir que essas

regras estejam implementadas corretamente e que o software esteja se comportando

da maneira que se espera.

É importante que os testes sejam fáceis de se executar, porque pouco adiantará

ter testes de unidade que nunca são executados ou que são executados com uma

frequência muito baixa.

Testando antes com Desenvolvimento Guiado por Testes

Desenvolvimento Guiado por Testes (TDD) é um processo em que o desenvolve-

dor começa a implementação de uma nova funcionalidade pelo teste e deve, o tempo

todo, fazer de tudo para que seu código fique simples e com qualidade [7].

TDD é realizado através de um ciclo com os seguintes passos:

Figura 4.2: Ciclo de TDD (Imagem de Maurício Aniche)

1) Adicione um teste rapidamente.

2) Execute todos os testes e observe o novo teste falhar.

71

4.1. Testes Ágeis

Casa do Código

3) Faça uma pequena mudança para fazer o teste passar .

4) Execute todos os teste e observe que foram bem sucedidos.

5) Refatore.

O uso de TDD assegura que todo código adicionado ao repositório seja testado

e, além disso, dá ênfase em se escrever apenas o código necessário para que os tes-

tes passem, evitando que o desenvolvedor escreva mais do que é necessário, contri-

buindo para um código mais simples, enxuto e também mais fácil de se dar manu-

tenção.

Testando de Ponta a ponta com testes de Aceitação

Testes de Unidade não são os únicos tipos de teste que devem ser realizados.

Existem outros tipos que, unidos aos unitários, poderão trazer uma qualidade ainda

melhor ao software. É o caso dos testes de aceitação, também conhecidos como testes funcionais ou testes de usuário final.

Testes de aceitação, diferente dos testes de unidade que verificam apenas o com-

portamento de uma classe ou método, testam o comportamento do sistema de uma

forma mais ampla. Geralmente, representam o contexto completo de uma história

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке