Teste Estático x Dinâmico
Sempre que o software é compilado, ele deve ser verificado quanto a erros e bugs antes de sua execução e durante sua execução para que o software funcione sem problemas e forneça os resultados esperados. Existem duas maneiras de testar software recém-escrito chamado teste estático e teste dinâmico. Qualquer um deles ou ambos são usados para testar o software, dependendo da precisão necessária e do orçamento disponível. O teste estático é feito antes que o software seja totalmente compilado e o teste dinâmico é feito somente após o software ser totalmente compilado e executado em um sistema.
Teste Estático
Este tipo de teste de software é realizado antes de colocar o software em ação. O teste estático é realizado para procurar os erros nos algoritmos, códigos ou documentos. Os erros cometidos durante a escrita do software são verificados para correção usando testes estáticos. Este teste é feito pelo escritor ou desenvolvedor do software ou testadores e é realizado percorrendo-o, verificando as revisões de código ou inspeção visual.
Teste Dinâmico
Este tipo de teste é realizado uma vez que o software foi totalmente compilado e carregado no sistema. No teste dinâmico, o software é verificado quanto à consistência dos parâmetros de entrada e saída usando outro software. Este teste analisa uma parte do software de cada vez para procurar bugs e erros. O software utilizado no teste dinâmico verifica os códigos do software a ser testado em padrões pré-definidos e verifica se o software testado está fornecendo o resultado desejado.
Resumindo:
Teste estático vs. Teste dinâmico
• O teste estático é uma maneira muito mais científica e abrangente de diagnosticar erros no código do software do que o teste dinâmico.
• O teste estático é muito mais rápido do que o teste dinâmico.
• O teste estático é muito superior em encontrar bugs e erros do que o teste dinâmico.
• Como o teste estático encontra os erros antes da compilação do software e pode ser facilmente corrigido, é muito mais barato do que o teste dinâmico.
• A diferença mais importante entre esses dois é que o teste estático é como prevenir o software de doenças e o teste dinâmico é como curar o software que foi afetado por uma doença.