sábado, 26 de maio de 2012

Tipos de testes de software

Os testes de software visam aumentar a estabilidade e confiabilidade analisando diversos aspectos do sistema e identificando desvios contra o comportamento previsto. Desta forma, um sistema pode estar “praticamente” perfeito e não atender um determinado requisito como performance ou segurança por exemplo. Para aumentar a confiabilidade e estabilidade temos diversos tipos de testes que podem ser aplicados dependendo da situação.
Os testes não iniciam apenas após o desenvolvimento, deve-se começar a estruturar os testes logo no início do projeto no  levantamento de requisitos. Neste momento o planejamento e definição apropriada do que será testado e como será testado é fundamental para o sucesso do projeto e os seguintes tipos de testes podem lhe ajudar:

Teste unitário

Também conhecido como “teste do programador”, é o tipo de testes mais comum. Deve-se testar a menor unidade do software desenvolvida como uma  funcionalidade, pedaço de código ou componente. Pode ser feita de forma manual ou com a ajuda de uma ferramenta como por exemplo o JUnit ou NUnit.

Teste integrado

Neste tipo de testes testa-se a integração entre os diversos produtos e componentes desenvolvidos. Deve-se verificar se os componentes funcionam perfeitamente quando integrados, com componentes externos, com bases de dados, com serviços e outros. Este tipo de testes é executado normalmente pela equipe de desenvolvimento.

Teste de aceitação

Este é o tipo de testes realizado pelo usuário para atestar que o sistema atende aos requisitos definidos (e contratados). É executado normalmente pelo usuário com apoio do analista ou arquiteto do projeto.

Teste de interface

Deve-se verificar se a navegação no sistema está de acordo com o previsto. Se os botões acionam as funções esperadas e a usabilidade atende às necessidades do usuário.

Teste de performance

Neste tipo de teste, verifica-se se o tempo de resposta da aplicação está condizente com o planejado, se o sistema suporta um determinado número de conexões ao mesmo tempo e se determinadas situações de alta carga não “travam” o sistema.

Teste de segurança

Deve-se verificar se o sistema está preparado para as principais vulnerabilidades de segurança. Uma boa dica é seguir as recomendações do OWASP que discute as principais vulnerabilidades e apresenta meios para proteger os sistemas contra as mesmas.

Teste de regressão

Estes é um dos tipos mais complexos de se fazer manualmente pois implica em testar toda aplicação sempre que algo for mudado. Com este procedimento pode-se garantir que as mudanças não trarão impacto ao restante do sistema. Há diversas ferramentas que executam scripts para testes de regressão tornando esta atividade bem mais fácil.

Teste de caixa branca

Testa-se o código propriamente dito, seu comportamento e se há partes do mesmo que não são acessadas.

Teste de configuração

É o tipo de testes onde se verifica se a aplicação funciona em diferentes tipos de ambientes, hardware e software. No desenvolvimento web utiliza-se muito para verificar o comportamento em diferentes navegadores ou ambientes servidores.

Teste de caixa preta

Neste momento verifica-se se o comportamento das entradas e saídas está de acordo com o esperado. Os casos de saídas com resultados inesperados é classificado como erro. Não se verifica o código dos componentes.

Teste funcional

Deve-se testar todas as funcionalidades para verificar se as mesmas atendem aos requisitos e regras de negócio definidos no levantamento de dados ou especificação funcional. Uma boa prática é realizar esta validação contra a documentação e se houver alguma divergência, está deve ser tratada.

Teste de volume

O objetivo deste teste é verificar como o sistema se comporta com grandes volumes de dados .

Teste de instalação

Este tipo de testes é bem pragmático. Verifica-se se a instalação ocorreu conforme previsto.

Teste de Sistema

Verifica a boa execução dos componentes do aplicativo inteiro, incluindo as interfaces com outras aplicações.
Deve-se buscar o melhor índice de estabilidade e confiabilidade possível, todavia a partir de um determinado ponto como 97% por exemplo, o custo começa a aumentar exponencialmente.

Nenhum comentário:

Os melhores podcasts do spotify