Teste estático versus teste dinâmico: qual é a diferença?

Índice:

Anonim

O que é teste estático?

O teste estático é um tipo de teste de software no qual o aplicativo de software é testado sem execução de código. Revisões manuais ou automatizadas de código, documentos de requisitos e design de documentos são feitas para localizar os erros. O principal objetivo do teste estático é melhorar a qualidade dos aplicativos de software, encontrando erros nas fases iniciais do processo de desenvolvimento de software.

O teste estático envolve revisões manuais ou automatizadas dos documentos. Essa revisão é feita durante uma fase inicial de teste para detectar o defeito no início do STLC. Ele examina documentos de trabalho e fornece comentários de revisão. Também é chamado de teste de não execução ou teste de verificação.

Exemplos de documentos de trabalho-

  • Especificações de requisitos
  • Documento de design
  • Código fonte
  • Planos de Teste
  • Casos de teste
  • Scripts de teste
  • Ajuda ou documento do usuário
  • Conteúdo da página da web

O que é teste dinâmico?

Em Teste Dinâmico , um código é executado. Ele verifica o comportamento funcional do sistema de software, o uso de memória / CPU e o desempenho geral do sistema. Daí o nome "Dinâmico"

O principal objetivo desse teste é confirmar se o produto de software funciona em conformidade com os requisitos de negócios. Esse teste também é chamado de técnica de execução ou teste de validação.

O teste dinâmico executa o software e valida a saída com o resultado esperado. O teste dinâmico é executado em todos os níveis de teste e pode ser um teste de caixa preta ou branca.

DIFERENÇA CHAVE

  • O teste estático foi feito sem executar o programa, enquanto o teste dinâmico é feito executando o programa.
  • O teste estático verifica o código, os documentos de requisitos e os documentos de design para encontrar erros, enquanto o teste dinâmico verifica o comportamento funcional do sistema de software, o uso de memória / CPU e o desempenho geral do sistema.
  • Os testes estáticos tratam da prevenção de defeitos, enquanto os testes dinâmicos tratam da localização e correção dos defeitos.
  • O teste estático faz o processo de verificação, enquanto o teste dinâmico faz o processo de validação.
  • O teste estático é executado antes da compilação, enquanto o teste dinâmico é executado após a compilação.
  • As técnicas de teste estático são estruturais e abrangem as declarações, enquanto as técnicas de teste dinâmico são Análise de valor de limite e particionamento de equivalência.

Técnicas de teste estático:

  • Revisões Informais: É uma das tipo de revisão que não segue nenhum processo para encontrar erros no documento. Sob essa técnica, você apenas analisa o documento e faz comentários informais sobre ele.
  • Revisões técnicas: Uma equipe formada por seus pares analisa as especificações técnicas do produto de software e verifica se é adequado para o projeto. Eles tentam encontrar quaisquer discrepâncias nas especificações e padrões seguidos. Esta revisão concentra-se principalmente na documentação técnica relacionada ao software, como Estratégia de Teste, Plano de Teste e documentos de especificação de requisitos.
  • Passo a passo: O autor do produto de trabalho explica o produto para sua equipe. Os participantes podem fazer perguntas, se houver. Uma reunião é conduzida pelo autor. O escriba toma nota dos comentários da revisão
  • Inspeção: O objetivo principal é encontrar defeitos e a reunião é conduzida por um moderador treinado. Esta revisão é um tipo formal de revisão em que segue um processo rigoroso para localizar os defeitos. Os revisores têm uma lista de verificação para revisar os produtos de trabalho. Eles registram o defeito e informam os participantes para retificar esses erros.
  • Revisão do código estático: Esta é uma revisão sistemática do código-fonte do software sem executar o código. Ele verifica a sintaxe do código, os padrões de codificação, a otimização do código, etc. Isso também é denominado como teste de caixa branca. Essa revisão pode ser feita a qualquer momento durante o desenvolvimento.

Técnicas de teste dinâmico:

  • Teste de Unidade: Em Teste de Unidade, unidades ou módulos individuais são testados pelos desenvolvedores. Envolve o teste do código-fonte pelos desenvolvedores.
  • Teste de integração: módulos individuais são agrupados e testados pelos desenvolvedores. O objetivo é determinar quais módulos estão funcionando conforme o esperado, uma vez que são integrados.
  • Teste do sistema: O teste do sistema é executado em todo o sistema, verificando se o sistema ou aplicativo atende ao documento de especificação de requisitos.

Além disso, os testes não funcionais como o desempenho e os testes de segurança se enquadram na categoria de testes dinâmicos.

Diferença entre teste estático e dinâmico:

Teste Estático

Teste Dinâmico

O teste foi feito sem executar o programa O teste é feito executando o programa
Este teste faz o processo de verificação O teste dinâmico faz o processo de validação
O teste estático é sobre a prevenção de defeitos O teste dinâmico trata de encontrar e corrigir os defeitos
O teste estático fornece uma avaliação do código e da documentação O teste dinâmico fornece bugs / gargalos no sistema de software.
O teste estático envolve uma lista de verificação e um processo a ser seguido O teste dinâmico envolve casos de teste para execução
Este teste pode ser executado antes da compilação O teste dinâmico é realizado após a compilação
O teste estático cobre o teste de cobertura estrutural e de declaração As técnicas de teste dinâmico são Análise de Valor Limite e Particionamento de Equivalência.
O custo de encontrar defeitos e consertar é menor O custo de encontrar e corrigir defeitos é alto
O retorno sobre o investimento será alto, pois este processo está envolvido em um estágio inicial O retorno do investimento será baixo, pois este processo envolve após a fase de desenvolvimento
Mais comentários de resenhas são altamente recomendados para boa qualidade Mais defeitos são altamente recomendados para boa qualidade.
Requer muitas reuniões Requer comparativamente reuniões menores