DevSecOps

7 ago, 2012

Você testou. E aí, funcionou?

Publicidade

Antes de falarmos de testes propriamente ditos, vamos fortalecer os alicerces do nosso conhecimento com algumas palavras muito usadas quando abordamos esse assunto:

  • Defeito, falha e erro;
  • Verificação e validação (V & V).

Vamos às definições, segundo o documento ISO/IEC/IEEE 24765:2010:

  • Defeito: uma imperfeição ou deficiência em um componente do projeto, quando ele não cumpre os seus requisitos ou as especificações e precisa ser reparado ou substituído.
  • Erro: uma ação humana que produz um resultado incorreto, como o software que contém uma falha.
  • Falha: um passo, um processo ou definição de dados incorreta em um programa de computador.

Ok, primeiras definições dadas, termos bonitos, mas para o cliente existe pouca ou nenhuma diferença entre essas três palavras, pois qualquer uma delas se encaixa perfeitamente na seguinte frase que pode ser dita por ele com uma certa dose de fúria ou com aquele sorrisinho no canto dos lábios: “Encontrei um(a) … no software”. Para o cliente não importa a definição, o fato é que o software não está funcionando e ele quer uma resposta. Rápida, de preferência. Vamos prosseguir.

Verificação e validação são conceitos que devem estar no sangue de quem se propõe a participar do processo de desenvolvimento de um software. E, para facilitar o entendimento, vamos lançar mão das expressões criadas por Boehm em 1979:

  • Validação: estamos construindo o produto correto?
  • Verificação: estamos construindo o produto corretamente?

Verificação envolve determinar se o software está de acordo com suas especificações, ou seja, se atende aos requisitos especificados. Validação tem por finalidade assegurar que o software atenda às expectativas do cliente.

E por falar em expectativas dos clientes, uma pausa para reflexão: por qual motivo muitos deles ainda têm expectativas em um nível tão baixo, ao ponto de um erro no software não causar nenhuma surpresa ou indignação? Por que alguns clientes ainda aceitam as falhas de um software alegando que os benefícios são maiores que as desvantagens? Podemos discutir isso mais profundamente em um próximo artigo. Topa?

O cenário apresentado no parágrafo anterior apesar de, infelizmente, ainda ser comum em algumas instituições, é cada vez menos aceitável quando o desenvolvimento é encarado de maneira séria, com comprometimento e envolvimento de todos, e a meta é a entrega de software confiável e de valor ao cliente. O famigerado termo bug é comumente associado ao fracasso do profissional ou da empresa que desenvolveu o software. Sendo assim, é válido e eu ouso dizer, obrigatório, investir esforço na verificação e na validação do produto que está sendo desenvolvido.

Dentro desse processo de verificação e validação, temos os testes, que são um dos pilares do processo de desenvolvimento de software. Os testes de um software envolvem executar uma implementação do mesmo com dados de simulação.

O teste é uma técnica dinâmica de verificação e validação. Testando, podemos mostrar ao desenvolvedor e ao cliente que o software atende aos requisitos e descobrir falhas, comportamentos incorretos ou não conformidades com o que o produto se propõe a oferecer. Mas fique atento: teste planejado e executado de maneira incorreta pode ser tão ineficiente quanto não realizar testes.

Como existem vários tipos, elabore o seu plano com aqueles que melhor se adequem à sua realidade, ao seu ambiente, à sua equipe e ao produto que está sendo desenvolvido. Inclua ou remova tipos de teste sem medo. Automatize. Monte a infraestrutura necessária. Busque sempre a melhoria do seu plano de testes. Não acredite que achou ou tenha a pretensão de um dia ter, a bala de prata dos testes.

A cultura de teste deve estar viva, entranhada dentro da equipe de desenvolvimento e ser algo natural, tal como a pausa para o café.

Testar sempre será uma preocupação da equipe de desenvolvimento? Em que momento podemos parar de nos preocupar com os testes? Acredito que só quando decidirmos largar esse negócio de desenvolver software de qualidade e irmos para a praia pescar com os amigos. Ótima ideia. Mas, calma aí, será que não vamos precisar testar a isca e o anzol?

Bons testes.