Alternativa A
A questão aborda o teste de software utilizando Diagrams de Transição de Estados, especificamente o critério de Cobertura de Transições. O objetivo é encontrar o menor número de caminhos (casos de teste) que permitam executar todas as setas (transições) do diagrama, partindo do estado inicial e chegando ao final.
Análise do Diagrama:
O sistema possui 5 estados e 7 transições distintas que precisam ser cobertas:
INIT \rightarrow DEBUG MODE (evento: test)INIT \rightarrow IN OPERATION (evento: run)IN OPERATION \rightarrow DEBUG MODE (evento: error)IN OPERATION \rightarrow ON HOLD (evento: pause)ON HOLD \rightarrow IN OPERATION (evento: resume)DEBUG MODE \rightarrow OFF (evento: done)ON HOLD \rightarrow OFF (evento: done)
Construção dos Casos de Teste:
Para minimizar o número de testes, devemos agrupar transições em caminhos válidos do estado INIT ao estado OFF.
- Caso de Teste 1 (Ramo
test):
O sistema inicia e vai diretamente para modo de depuração.
Caminho: INIT \xrightarrow{test} DEBUG MODE \xrightarrow{done} OFF.
Cobre as transições: test e done (do DEBUG). - Caso de Teste 2 (Ramo
run com pause e done_hold):
O sistema opera, pausa e desliga.
Caminho: INIT \xrightarrow{run} IN OPERATION \xrightarrow{pause} ON HOLD \xrightarrow{done} OFF.
Cobre as transições: run, pause e done (do HOLD). - Caso de Teste 3 (Ramo
run com pause, resume e error):
O sistema opera, pausa, retoma e encontra erro, indo para depuração e desligando.
Caminho: INIT \xrightarrow{run} IN OPERATION \xrightarrow{pause} ON HOLD \xrightarrow{resume} IN OPERATION \xrightarrow{error} DEBUG MODE \xrightarrow{done} OFF.
Cobre as transições: run, pause, resume, error e done (do DEBUG).
Verificação de Cobertura:
Ao unir os três caminhos acima, verificamos que todas as 7 transições listadas foram percorridas pelo menos uma vez. Não é possível realizar essa cobertura com apenas 2 caminhos, pois existem ramificações críticas (como done_hold vs resume e error) que exigem destinos finais distintos ou fluxos cíclicos que não podem ser completados simultaneamente em um único trajeto linear.
Portanto, o número mínimo de casos de teste é 3.
Alternativa A.