Carregando...
Carregando...
Ajude a melhorar a plataforma
No contexto de testes de software baseados em grafos, a análise dos caminhos linearmente independentes é uma técnica usada para assegurar que todas as rotas críticas no código sejam cobertas por casos de teste específicos. Esses caminhos independentes garantem que o comportamento do software seja validado em diferentes condições, com base nas variações de dados de entrada utilizadas nas decisões condicionais.
Com relação a essa técnica de teste, assinale a alternativa que sintetiza corretamente a abordagem para projetar casos de teste que garantam a cobertura total dos caminhos linearmente independentes.
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
Alternativa (D) - Projetar casos de teste que utilizem a idade como parâmetro principal, variando-a entre valores menores e maiores que 18, garantindo que todas as condições sejam exercitadas.
A questão aborda o tema de testes de software baseados em grafos, com foco na cobertura de caminhos linearmente independentes. Essa técnica é fundamental para garantir a qualidade e a confiabilidade de um software, assegurando que todas as decisões condicionais do código sejam testadas adequadamente, minimizando a chance de falhas em tempo de execução devido a caminhos não exercitados.
No contexto de testes de software, a análise de grafos de fluxo de controle permite visualizar as diferentes rotas que a execução de um programa pode tomar. A métrica de complexidade ciclomática, por exemplo, é utilizada para determinar o número mínimo de caminhos linearmente independentes que devem ser testados para garantir que cada instrução condicional e cada ramificação (branch) do código seja percorrida ao menos uma vez. Caminhos linearmente independentes são aqueles que incluem pelo menos uma aresta (transição) não contida em nenhum outro caminho.
Para cobrir esses caminhos, é necessário projetar casos de teste que exercitem todas as condições lógicas, tanto as verdadeiras quanto as falsas, em cada ponto de decisão. Se o código contém uma decisão como se (idade < 18), para cobrir os caminhos independentes associados a essa condição, é preciso testar cenários em que a idade seja menor que 18 (ativando o ramo "verdadeiro") e cenários em que a idade seja igual ou maior que 18 (ativando o ramo "falso"). Isso garante que o comportamento do software seja validado para todas as variações de dados de entrada que influenciam as decisões.
Vamos analisar cada alternativa à luz do conceito de cobertura de caminhos linearmente independentes:
| Alternativa | Abordagem Proposta | Cobertura de Caminhos Independentes | Justificativa |
| :---------- | :----------------------------------------------------------------------------------------------------- | :--------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |
| (A) | Definir um único caso de teste com a idade igual a 18, garantindo que o caminho condicional seja coberto, sem necessidade de testar outros valores. | Incompleta | Testar apenas idade = 18 não cobre todos os caminhos. Se a condição for idade < 18, este teste pode cobrir o ramo "falso", mas não o ramo "verdadeiro". Se for idade >= 18, cobriria o ramo "verdadeiro", mas não o "falso" (idade < 18). Portanto, não garante a cobertura total das ramificações. |
| (B) | Utilizar apenas valores de idade menores que 18 para testar todas as possibilidades condicionais do código, sem alterar outros parâmetros. | Incompleta | Esta abordagem cobriria apenas um lado da condição (e.g., idade < 18). Os caminhos onde idade é 18 ou maior que 18 não seriam exercitados, deixando partes críticas do código sem validação. |
| (C) | Criar casos de teste que ignorem a idade como critério, focando apenas na execução dos métodos principais do código, sem variações. | Nula ou Irrelevante | Ignorar o parâmetro idade (que é o foco da decisão condicional no exemplo) significa que as condições baseadas nele não seriam testadas, contradizendo diretamente o objetivo da técnica de cobertura de caminhos independentes para decisões condicionais. |
| (D) | Projetar casos de teste que utilizem a idade como parâmetro principal, variando-a entre valores menores e maiores que 18, garantindo que todas as condições sejam exercitadas. | Completa | Esta é a abordagem correta. Para uma decisão como if (idade < 18), variar a idade para valores como 17 (menor que 18) e 18 ou 19 (não menor que 18) garante que ambos os ramos da condição sejam exercitados. Isso assegura que todos os caminhos linearmente independentes relacionados a essa decisão sejam cobertos. |
| (E) | Criar casos de teste utilizando a idade como único parâmetro, verificando apenas se o código retorna o valor correto quando a idade é menor que 18. | Incompleta | Similar à alternativa (B), esta opção foca apenas em um subconjunto dos caminhos (quando idade < 18), falhando em cobrir os cenários onde a idade é 18 ou maior, o que é essencial para a cobertura completa dos caminhos independentes. |
Para garantir a cobertura total dos caminhos linearmente independentes em testes de software baseados em grafos, é imperativo que os casos de teste sejam projetados para exercitar todas as ramificações de cada decisão condicional. A alternativa (D) descreve precisamente essa estratégia ao sugerir a variação do parâmetro idade (no exemplo) para cobrir tanto valores menores quanto maiores que o limiar 18. Esta abordagem permite validar o comportamento do software em todas as condições relevantes, garantindo uma validação robusta e completa do código.
Alternativa (D).