-
3. MODALIDADES DE TESTE
3.1. Testes estáticos e dinâmicos
Uma primeira divisão que pode ser estabelecida em relação ao teste de
software corresponde à forma de utilização do código obtido na etapa de
implementação (ou codificação). Segundo esta ótica, pode-se organizar os
testes em estáticos e dinâmicos.
3.1.1. Os Testes Estáticos
Os testes estáticos são aqueles realizados sobre o código-fonte do
software, utilizando como técnica básica a inspeção visual. Este tipo de
teste é de simples implementação, uma vez que não há necessidade de
execução do programa para obter-se resultados. Eles podem ser utilizados
utilizando a técnica de leitura cruzada, onde um leitor é atribuído
para avaliar o trabalho de cada programador do software. Uma outra forma
de realizar o teste é por inspeção, onde uma equipe designada analisa o
código à luz de um questionário especialmente concebido — a check list.
Nos dois casos, os responsáveis pela realização do teste não realizam
nenhum tipo de correção no código, limitando-se a assinalar os erros
encontrados.
Eventualmente, o teste estático pode ser
automatizado com o auxílio de ferramentas de análise estática, que podem
ser simples geradores de referências cruzadas ou, no caso de
ferramentas mais sofisticadas, serem dotadas de funções de análise do
fluxo de dados do programa.
3.1.2. Os Testes Dinâmicos
Os testes dinâmicos são os procedimentos baseados na execução do código
binário do programa, sendo esta execução realizada com base em
subconjuntos de dados — o jogo de teste.
A escolha do
subconjunto de dados a ser utilizado para o teste pode ser feita com
base em aspectos estruturais do software (obtido a partir do
código-fonte) ou em aspectos funcionais (a partir da especificação do
programa).
Fonte: http://www.ebah.com.br/content/ABAAABga8AJ/engenharia-software-08
-
Análise estática como técnica de design de teste? Alguém tem referência de algum autor de onde essa questão poderia ter sido retirada?
Sommervile separa claramente análise estática x análise dinâmica:
Análise estática:
- Analisa e verifica representações do sistema, como documento de requisito, diagramas de projeto e código-fonte do programa
- Pode ser aplicado em todas as etapas do projeto
- Ex: inspeção de software, revisão por pares, análise estática automática por alguma programa(ex: Sonar)
Análise dinâmica:
- Envolve executar uma implementação do software com dados de teste. É verificado as saídas do software e seu comportamento esperado
- Aplicado apenas quando se tem algum código de software executável(Não é necessário que o sistema todo esteja implementado)
- Ex: testes de software em seus mais diversos níveis e tipos
-
Verificação estática→Inspeção (análise do sistema ou código, mas geralmente não há correção)
Verificação dinâmica→Testes (Caixa-Preta, Caixa-Branca, etc.)
Validação→Foco na verificação da conformidade da aplicação com os requisitos.
-
Testes de caixa branca, por exemplo. revisão do código fonte, é dinâmico ?
-
A palavra experiência me deixou na dúvida, mas no geral estava tudo correto.
-
Teste caixa branca visa verificar o código fonte em busca de validações erradas, erros de sintaxe, práticas e etc, não executa o software, logo é um teste estático, como a afirmação desta Questao pode estar certa se considera o mesmo como dinâmico?