agile
Hoje, com a consolidação das metodologias ágeis de desenvolvimento de software, muito tem se falado em testes ágeis ou testes para desenvolvimento ágil.
Mas o que é teste ágil? Quais são seus benefícios e riscos?
Vamos então esclarecer alguns pontos.
Teste ágil nada mais é do que uma prática de teste de software que segue as regras do manifesto ágil, tratando o desenvolvimento de software como o cliente de testes.
Teste ágil envolve testes a partir da perspectiva do cliente, o mais cedo possível. E os primeiros testes com o código do software já disponível e estável o suficiente a partir de testes de nível de módulo / unidade.
Desde que partes funcionais do software, aquelas que agregam valor ao cliente, são liberadas para uso, há também a necessidade de se realizar testes por diversas vezes. Muitas vezes isso é feito por meio de testes de regressão automatizados para minimizar a quantidade de trabalho manual.
Como a cada nova versão/release liberada, existem funcionalidades novas para serem testadas, e o que já foi liberado ao cliente, precisa ser testado novamente, fazer apenas um teste manual em desenvolvimento ágil provavelmente resultaria em um atraso grande na entrega ao cliente.  Acarretando, ainda, riscos desnecessários, como por exemplo, não encontrar defeitos que podem ser pegos nos testes de regressão. Isso porque, na maioria das vezes, não seria possível testar todo o software manualmente antes de cada lançamento.
Mas testes ágeis são mais do que processos otimizados, automatizados ou técnicas de testes avançadas. Teste ágeis estão ligados diretamente a atitude da equipe em fazer bem feito, ao compromisso do time com qualidade e valor agregado que será entregue ao cliente e a pró-atividade de todos os envolvidos. Não quer dizer que não serão executadas tarefas necessárias ou aplicação de técnicas de testes que vão efetivamente aumentar a qualidade do sistema. É o chamado mindset que ser alterado. É o pensamento do time, em conjunto, unidos, que deverá estar voltado para um único objetivo: entregar valor ao cliente!
Uma proposta de manifesto de testes ágeis, que é nada mais, nada menos, que uma lista de princípios, foi elaborada por Sam Laing e é bem simples. A figura abaixo mostra de forma bem didática os princípios deste manifesto.

Os princípios do manifesto ágil de testes são, em tradução livre, os seguintes:

1)      Testar durante o desenvolvimento, mais que testar somente ao final

Os testes devem começar logo no início do projeto. O time deve pensar junto quais testes deverão ser criados e como serão criados, quais as estratégias de teste serão adotadas, quais riscos deverão ser evitados ou mitigados.

2)      Trabalhar a prevenção de defeitos, mais que procurar defeitos

Um bom design de solução, uma boa arquitetura, um desenvolvimento, vai fazer com que se tenha menos defeitos. Um dos fatores que podem fazer com que se tenha menos defeitos é um desenvolvimento lean, ou seja, um desenvolvimento sem desperdícios. E o que seria sem desperdícios? Desenvolver somente o código estritamente necessário para atender ao que o cliente vai precisar ou que irá gerar valor para ele. E nada mais do que isso. Quanto menos código, menos chance de se ter defeitos.

3)      Testar entendimentos, mais que checar funcionalidades

O foco é validar se o que o time entendeu sobre a necessidade do cliente é realmente o que o cliente precisa. Talvez seja necessário ter algum protótipo ou uma pequena parte funcional do sistema para se validar a ideia do cliente. E o cliente, dentro do possível, precisa participar junto com o time desta validação.

4)      Construir o melhor sistema, mais que quebrar o sistema

Aqui entra o dilema do ótimo é inimigo do bom. Então, façamos o ótimo! Sejamos excelentes. Façamos o melhor que pudermos. Se coloque no lugar do cliente. Você não gostaria de receber o melhor serviço possível, o melhor atendimento ou o melhor sistema?

5)      Time responsável pela qualidade, mais que responsabilidade exclusiva dos analistas de testes

Por muito tempo escutei uma frase: “A equipe de qualidade é a única responsável pela qualidade do sistema”. Então quer dizer que se a equipe de desenvolvimento fizer um sistema ruim, que não entrega valor ao cliente, o culpado é o analista de teste? Com certeza, não! Os responsáveis pela qualidade são todos os membros do time, incluindo o cliente. Sim, inclusive o cliente! Todos devem estar envolvidos em entregar a maior qualidade possível. Do contrário, vamos ter retrabalho, desperdício de tempo, um jogo de “caça às bruxas” e o cliente não será atendido.
Vejam que não se falam de técnicas ou níveis de certificação. Se fala em entrega de valor agregado ao cliente, em comprometimento, em trabalhar como um time.
Mas isto não nos permite fazer as coisas sem processos, técnicas ou padrões. Desenvolvimento de software com metodologias ágeis, consequentemente a realização dos testes, exige rigor, disciplina e técnicas apuradas, pois temos que entregar o melhor software com o menor prazo e o menor custo possíveis.
Logo, nem tudo são flores, e obviamente, temos que nos preocupar com os riscos de uma má implantação da automação de testes no processo ágil, que é crucial para o sucesso de um processo de desenvolvimento ágil de software.
Foque o seu processo de desenvolvimento de software em ter integração com o time de testes. Precisam ser um time só! E no seu processo de testes precisa estar claro que usar automação de testes não é uma opção. É uma obrigação! Quanto mais cedo for feita a automação dos testes, melhor. Testes unitários, testes de integração e testes de sistemas, devem ser automatizados, mas sempre com o foco sobre o que estará agregando mais valor ao cliente.
Quer saber como fazer com que os seus testes podem ser mais ágeis? Entre em contato comigo!

Leave a Reply

Your email address will not be published. Required fields are marked *

Post comment