Teste de software - Visão geral

O que é teste?

Teste é o processo de avaliação de um sistema ou de seu (s) componente (s) com a intenção de descobrir se ele satisfaz ou não os requisitos especificados. Em palavras simples, teste é executar um sistema para identificar quaisquer lacunas, erros ou requisitos ausentes que sejam contrários aos requisitos reais.

De acordo com o padrão ANSI / IEEE 1059, Teste pode ser definido como - Um processo de análise de um item de software para detectar as diferenças entre as condições existentes e necessárias (ou seja, defeitos / erros / bugs) e para avaliar os recursos do item de software.

Quem faz o teste?

Depende do processo e das partes interessadas associadas ao (s) projeto (s). Na indústria de TI, as grandes empresas têm uma equipe com responsabilidades para avaliar o software desenvolvido no contexto dos requisitos fornecidos. Além disso, os desenvolvedores também realizam testes que são chamadosUnit Testing. Na maioria dos casos, os seguintes profissionais estão envolvidos no teste de um sistema dentro de suas respectivas capacidades -

  • Testador de software
  • Desenvolvedor de software
  • Líder / Gerente de Projeto
  • Usuário final

Diferentes empresas têm diferentes designações para pessoas que testam o software com base em sua experiência e conhecimento, como testador de software, engenheiro de garantia de qualidade de software, analista de controle de qualidade, etc.

Não é possível testar o software em nenhum momento durante seu ciclo. As próximas duas seções indicam quando o teste deve ser iniciado e quando encerrá-lo durante o SDLC.

Quando começar o teste?

O início precoce dos testes reduz o custo e o tempo de retrabalho e produção de software livre de erros que é entregue ao cliente. No entanto, no Ciclo de Vida de Desenvolvimento de Software (SDLC), o teste pode ser iniciado na fase de Coleta de Requisitos e continuado até a implantação do software.

Também depende do modelo de desenvolvimento que está sendo usado. Por exemplo, no modelo em Cachoeira, o teste formal é conduzido na fase de teste; mas no modelo incremental, o teste é executado no final de cada incremento / iteração e todo o aplicativo é testado no final.

O teste é feito de diferentes formas em cada fase do SDLC -

  • Durante a fase de coleta de requisitos, a análise e verificação dos requisitos também são consideradas como teste.

  • A revisão do design na fase de design com a intenção de aprimorá-lo também é considerada um teste.

  • O teste realizado por um desenvolvedor na conclusão do código também é classificado como teste.

Quando parar de testar?

É difícil determinar quando interromper o teste, pois o teste é um processo sem fim e ninguém pode alegar que um software foi 100% testado. Os seguintes aspectos devem ser considerados para interromper o processo de teste -

  • Prazos de teste

  • Conclusão da execução do caso de teste

  • Conclusão da cobertura funcional e de código até um certo ponto

  • A taxa de bug cai abaixo de um certo nível e nenhum bug de alta prioridade é identificado

  • Decisão de gestão

Validação de verificação

Esses dois termos são muito confusos para a maioria das pessoas, que os usam de forma intercambiável. A tabela a seguir destaca as diferenças entre verificação e validação.

Sr. Não. Verificação Validação
1 A verificação aborda a preocupação: "Você está construindo certo?" A validação aborda a preocupação: "Você está construindo a coisa certa?"
2 Garante que o sistema de software atenda a todas as funcionalidades. Garante que as funcionalidades atendam ao comportamento pretendido.
3 A verificação ocorre primeiro e inclui a verificação de documentação, código, etc. A validação ocorre após a verificação e envolve principalmente a verificação de todo o produto.
4 Feito por desenvolvedores. Feito por testadores.
5 Ele tem atividades estáticas, pois inclui a coleta de revisões, orientações e inspeções para verificar um software. Possui atividades dinâmicas, pois inclui a execução do software em relação aos requisitos.
6 É um processo objetivo e nenhuma decisão subjetiva deve ser necessária para verificar um software. É um processo subjetivo e envolve decisões subjetivas sobre o quão bem um software funciona.