Engenharia de Software / Ian Sommerville 9. edição
Capítulo 8 - Testes de software
Um teste automatizado tem três partes:
1. Uma parte de configuração, em que você inicia o sistema com o caso de teste, ou seja, as entradas e saídas esperadas.
2. Uma parte de chamada, quando você chama o objeto ou método a ser testado.
3. Uma parte de afirmação,
em que você compara o resultado da chamada com o resultado esperado. Se
a afirmação avaliada for verdadeira, o teste foi bem-sucedido; se for
falsa, ele falhou.
A questão foi uma combinação dos textos de pressman e do sommerville. Para evitar ter de decorar, você poderia acertar a questão lembrando que o Teste unitário é um nível/fase de teste. Ou seja, você faz os teste necessários no nível de uma pequena unidade funcional (método, classe, objeto, componente,etc). Vejamos os itens.
a) Esse é teste de caminho básico.
b) Aqui é preciso ter cuidado. O teste foi da interface com a unidade isolada. Por exemplo, você testou a interface de um objeto/método e não a inteface resultante da combinação de outros objetos ou da comunicação entre esses objetos. Senão estaria errado esse item, pois estaríamos falamos do nível de integração (teste de componente)
c) Ao fazer um teste, passamos entradas e comparamos a saída com a que deveria ser correta. Sommerville para sistematiza fala em 3 etapas. Configuração (Passo para o meu sistema de teste as entradas e saída esperar, também faço qq inicialização/configuração necessária), chamada (rodamos efetivamente o teste) e afirmação (comparamos o resultados: a saída obtida e a esperada. Se bateu passou, senão o teste falhou). A questão falou em Configuração, Comparação e Correção. As duas primeiras não vi problemas na definição. O erro está na terceira etapa. Correção "que corrige automaticamente os erros". Isso não faz sentido por causa do automaticamente. Se não tivesse esse automaticamente, seria razoável, basta lembrar do refactorin do TDD.
d) Quando usamos partições de equivalência é comum testar os limites das regiões dessa partições. A afirmação também lembra um teste de desempenho.
e) Pode-se escolher um terminado caminho de execução para verificar algum erro, como os exemplos citados