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 |