A importância dos testes para a qualidade de software

Por Mayra Michels, consultora de Desenvolvimento de Software da Via Consulting

O Teste de Software é um processo que faz parte do desenvolvimento do software. É conhecido também como validação e verificação (V&V). A validação refere-se  ao conjunto de tarefas que asseguram que o software foi implementado corretamente. E a verificação garante que o software foi criado seguindo os requisitos do cliente.

O teste proporciona a descoberta de possíveis erros, mas não deve ser visto como uma rede de segurança, pois não é possível testar a qualidade se a mesma não está presente antes de realizar o teste. Quando o teste é deixado para ser feito nas fases finais do desenvolvimento, há uma possibilidade de aumento de até 100 vezes no custo da correção do bug.

Todas as atividades de teste têm um custo associado, que são o custo da falha, relacionado com produtos defeituosos entregues ao cliente; custo de prevenção, associado com atividades realizadas para evitar os defeitos; e o custo da avaliação, que são relacionados com a detecção de defeitos.

“In god we trust. Everything else we test…”

Os testes devem encontrar um erro, que é uma ação humana que produz um resultado incorreto, um defeito, que é a manifestação de um erro, e uma falha, que é a diferença entre o observado e o esperado. Uma falha é um evento; defeito é um estado do software, causado por um erro. Existem diversos tipos de testes, os mais conhecidos são:

  • Teste de Unidade: em um nível de componente ou classe, tem como objetivo testar um “pedaço do código”.
  • Teste de Integração: garante que um ou mais componentes combinados (ou unidades) funcionem.
  • Teste Operacional: garante que a aplicação rode muito tempo sem ter falhas.
  • Teste Positivo-Negativo: garante que a aplicação funcione no “caminho feliz” de sua execução e no seu fluxo de exceção.
  • Teste de Regressão: toda vez que algo for alterado, toda a aplicação deve ser retestada.
  • Teste Caixa-preta: todas as entradas e saídas desejadas devem ser testadas. Não há preocupação com o código, cada saída indesejada é vista como um erro.
  • Teste Caixa-branca: o objetivo é testar o código que nunca foi testado.
  • Teste Funcional: as funcionalidades, requerimentos, regras de negócio presentes na documentação são validadas.
  • Teste de Interface: verifica se a navegabilidade e os objetivos da tela funcionam como especificados e se atendem o usuário da melhor forma.
  • Teste de Performance: verifica se o tempo de resposta durante a utilização da aplicação é o esperado.
  • Testes de Stress: testa a aplicação em situações inesperadas e não previstas.
  • Teste de Segurança: testa a segurança da aplicação das mais diversas formas.

Aplicar apenas um teste dos apresentados têm pouco ou nenhum impacto ao garantir a qualidade do software. Cada tipo de teste tem sua função e um complementa o outro, podendo assim garantir a devida qualidade.

A realização dos testes de software pode ser de forma manual ou automatizada. Para os testes automatizados, ferramentas são utilizadas. As ferramentas de teste permitem ao testador automatizar parte do processo facilitando a retestagem.

Quando a prática de testes é adotada, ocorre a detecção precoce do defeito reduzindo assim o custo de correção, permitindo às empresas atenderem melhor aos clientes obtendo um impacto positivo da sua imagem. O plano de teste é o instrumento básico para o planejamento de um projeto. E o teste de software é uma atividade para todas as equipes, não apenas para o controle de qualidade.

CADASTRE-SE AGORA MESMO

Preencha com o seu email e receba as atualizações do ViaBlog.