sexta-feira, 3 de setembro de 2010

Classificação dos testes de software

Na fase de construção dos softwares, os testes podem ter classificações diferentes, dependendo do enfoque que se pretende dar. Eles podem ser classificados quanto ao Nível, o Tipo e a Técnica. Veja abaixo mais detalhes de cada classificação:

Classificação quanto ao Nível do teste

  • Teste Unitário

Testa apenas o componente (ou a menor unidade de software) que o desenvolvedor construiu. Exemplo de ferramenta para auxiliar nos testes: JUnit.

  • Teste de Integração

Testa as integrações entre os diversos componentes construídos.

Normalmente, o Teste Unitário e o Teste de Integração são realizados pela própria equipe de desenvolvimento.

  • Teste de Sistema

Verifica a boa execução dos componentes do aplicativo inteiro, incluindo as interfaces com outras aplicações.

Geralmente é realizado pela equipe de testes funcionais.

  • Teste de Aceitação

Verifica se o sistema atende aos requisitos do usuário, conforme especificado. Exemplo de ferramenta para automação: Selenium.

Normalmente é realizado pela equipe de projeto do sistema. A partir deste teste é gerada a "Versão 1.0" do sistema.

Classificação quanto ao Tipo do teste

  • Teste Funcional

São testes que verificam a operação correta do sistema em relação a sua especificação.

Geralmente é realizado pela equipe de testes.

  • Teste Não Funcional

É realizado por uma equipe de testes mais especializada, porém, com foco em aspectos não funcionais como: desempenho, carga, estresse, usabilidade, segurança, etc. É feito em cima da versão 1.0 do sistema.

O teste de desempenho busca extrair informações sobre o desempenho do sistema em cenários normais de uso; o teste de carga busca extrair informações sobre o volume de usuários, transações, etc. que o sistema suporta; o teste de estresse busca extrair informações sobre quando o sistema não suporta a carga aplicada, sendo muito importante para saber estruturar e dimensionar a arquitetura do sistema e prover informações para escalar o sistema; o de usabilidade procura verificar se a interface de usuário é fácil de aprender e utilizar; o teste de segurança visa verificar se o software é seguro em garantir o sigilo dos dados armazenados e processados.

Exemplo de ferramenta para testes não funcionais: JMeter.

Classificação quanto à Técnica de teste

  • Testes Caixa Preta

Estes testes buscam verificar se as saídas do sistema estão coerentes com as entradas, sem se preocupar como elas são tratadas internamente. As principais técnicas são:

Partição de equivalência;
Análise de Valores Limites;
Derivados de especificação;
Baseado em estado-transição.

  • Testes Caixa Branca

Estes testes, chamados também de Testes Estruturais, se preocupam em avaliar aspectos internos do sistema. Para isso, utilizam técnicas de inspeção de código tais como: teste de condição, teste de fluxo de dados, teste de ciclos, teste de caminhos lógicos, códigos nunca executados.

Existem várias ferramentas para ajudar a aplicar estas técnicas de testes: FindBugs, PMD, Lapse, etc.

Nenhum comentário:

Postar um comentário