Guia Completo de Testes de Software: Técnicas e Fases
Classificado em Matemática
Escrito em em
português com um tamanho de 4,08 KB
O que é Teste de Software?
O teste de software é a investigação realizada a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.
Visão Geral
O teste de software pode ser visto como uma parcela do processo de qualidade de software. Os atributos qualitativos previstos na norma ISO 9126 são funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade e portabilidade. Uma maneira viável para se assegurar a melhoria seria tomar como base modelos como, por exemplo, os SW-CMM, SE-CMM, ISO/IEC 15504 e o mais conhecido CMMI.
Técnicas de Teste
- Caixa-branca: Também chamada de teste estrutural, avalia o comportamento interno do componente de software. Trabalha diretamente sobre o código-fonte para avaliar aspectos como: teste de condição, fluxo de dados, ciclos, caminhos lógicos e códigos nunca executados. Um exemplo prático é o uso da ferramenta JUnit para Java.
- Caixa-preta: Também chamada de teste funcional, avalia o comportamento externo do componente de software sem considerar o interno. Dados de entrada são fornecidos e o resultado é comparado ao esperado.
- Caixa-cinza: Mescla técnicas de caixa-preta e caixa-branca. Envolve ter acesso a estruturas de dados e algoritmos para desenvolver casos de teste, podendo incluir engenharia reversa.
- Regressão: Técnica aplicável a uma nova versão de software ou à necessidade de executar um novo ciclo de teste durante o desenvolvimento.
- Técnicas não funcionais: Verificam a operação correta do sistema em relação a casos inválidos ou inesperados, testando a tolerância e a robustez do software.
Fases do Teste
Uma prática comum é testar o software após uma funcionalidade por um grupo de profissionais diferente da implementação.
- Teste de unidade: Conhecido como teste unitário ou de módulo, testa as menores unidades de software (sub-rotinas ou trechos de código).
- Teste de integração: Foca em encontrar falhas na integração interna dos componentes, geralmente relacionadas à transmissão de dados.
- Teste de sistema: Executa o sistema sob o ponto de vista do usuário final, validando funcionalidades frente aos objetivos originais.
- Teste de aceitação: Realizado por um grupo restrito de usuários finais para verificar se o comportamento está de acordo com o solicitado.
- Teste de operação: Conduzido por administradores para garantir que a entrada em produção será bem-sucedida (instalação, backups, etc.).
- Testes Alfa e Beta: Fases especiais para softwares distribuídos em larga escala. O teste alfa ocorre entre o término do desenvolvimento e a entrega. O teste beta é conduzido em instalações do cliente pelo usuário final, sem a presença do desenvolvedor.
- Candidato a lançamento (Release Candidate): Versão candidata a ser a final, comum em software livre, após a correção de erros encontrados no beta.
Papéis no Processo de Teste
- Líder do projeto de testes: Responsável pela liderança de um projeto de teste específico.
- Engenheiro de teste: Responsável pelo levantamento de necessidades e montagem da infraestrutura.
- Analista de teste: Responsável pela operacionalização, detalhando a forma de execução e condições de teste.
- Testador: Responsável pela execução dos testes.
- Automatizador de teste: Responsável pela automação de situações de teste em ferramentas, seguindo os passos documentados pelo analista.