Carregando...
Carregando...
Ajude a melhorar a plataforma
O teste de caminho básico é uma técnica de teste estrutural que visa garantir que todos os caminhos lineares e independentes dentro do código sejam testados. Para aplicar esta técnica, o código é frequentemente representado como um grafo de fluxo. Cada nó no grafo representa um conjunto de comandos que são executados em sequência.
Diante disso, selecione a alternativa que descreve corretamente a definição de um caminho linearmente independente em um grafo de fluxo.
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 (A) - Um caminho que adiciona pelo menos uma nova aresta que não estava presente em caminhos anteriores, permitindo a cobertura de novas partes do código.
O teste de caminho básico (Basis Path Testing) é uma técnica fundamental no teste de software, enquadrada nos testes estruturais ou de "caixa branca". Seu objetivo é garantir a cobertura exaustiva das decisões lógicas dentro do código, assegurando que todos os caminhos linearmente independentes sejam exercitados. Para isso, o código-fonte é transformado em um grafo de fluxo (ou grafo de controle de fluxo), onde nós representam sequências de instruções e arestas representam transições de controle. A complexidade ciclomática é uma métrica chave usada para determinar o número mínimo de caminhos linearmente independentes necessários para essa cobertura.
Um grafo de fluxo é uma representação visual da estrutura de controle de um programa. Nele:
if, while, for, case).A complexidade ciclomática (V(G)) de um grafo de fluxo G é uma métrica que indica o número de caminhos linearmente independentes e, portanto, o número mínimo de casos de teste necessários para exercitar todos os caminhos. Ela pode ser calculada por:
O conceito de caminhos linearmente independentes deriva da teoria dos grafos e da álgebra linear. Em um contexto de teste, um conjunto de caminhos é considerado linearmente independente se cada novo caminho no conjunto introduz pelo menos uma aresta que não estava presente em nenhum dos caminhos anteriores já incluídos no conjunto. O objetivo é construir um conjunto de caminhos que, quando combinados, cubram todas as arestas do grafo, mas sem redundância desnecessária.
Vamos analisar cada alternativa à luz da definição de caminho linearmente independente no contexto de teste de caminho básico:
| Alternativa | Análise da Definição | Justificativa | | :---------- | :----------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | (A) Correta | Um caminho que adiciona pelo menos uma nova aresta que não estava presente em caminhos anteriores, permitindo a cobertura de novas partes do código. | Esta é a definição precisa de um caminho linearmente independente para o propósito do teste de caminho básico. Para construir o conjunto de base, cada novo caminho é selecionado de modo a exercitar uma aresta (ou um conjunto de arestas) que ainda não foi percorrida pelos caminhos já selecionados. Isso garante que todas as decisões e ramificações do código sejam alcançadas com o menor número de testes. | | (B) Incorreta | Um caminho que segue uma sequência fixa de comandos, sem variações, assegurando a repetição de padrões conhecidos. | Esta descrição se refere a um único caminho sequencial ou a um conjunto de caminhos idênticos, o que contradiz o propósito de encontrar caminhos independentes para cobrir diferentes variações de fluxo de controle. O teste de caminho básico busca explorar as variações, não repetir padrões. | | (C) Incorreta | Um caminho que sempre começa e termina nos mesmos nós de outros caminhos, mantendo uma estrutura fixa para facilitar a comparação. | Embora muitos caminhos possam compartilhar o mesmo nó de início e fim (especialmente em um único módulo), a independência não é definida por isso. A independência reside na travessia de diferentes arestas internas que representam as ramificações lógicas do código, não na fixidez dos pontos de entrada/saída. | | (D) Incorreta | Um caminho que nunca repete arestas já utilizadas em outros caminhos, garantindo a exclusividade de cada trajeto. | Esta afirmação é muito restritiva. Um caminho linearmente independente pode e frequentemente irá compartilhar algumas arestas com outros caminhos da base. O que o torna "independente" é o fato de ele introduzir pelo menos uma nova aresta que ainda não foi coberta por nenhum dos caminhos previamente selecionados para a base. Não é que ele não possa repetir qualquer aresta, mas sim que ele deve adicionar algo novo à cobertura total das arestas. | | (E) Incorreta | Um caminho que ignora as condições lógicas do código, focando apenas na execução linear das instruções. | Esta alternativa descreve o oposto do que o teste de caminho básico se propõe. A essência do teste de caminho básico é justamente exercitar as condições lógicas (nós predicados) para garantir que todas as ramificações de decisão sejam testadas. Ignorar as condições lógicas seria um teste meramente sequencial, sem cobrir a complexidade do controle de fluxo. |
A compreensão do conceito de caminhos linearmente independentes é crucial para aplicar o teste de caminho básico de forma eficaz. A alternativa correta descreve precisamente que a independência de um caminho é determinada pela sua capacidade de introduzir pelo menos uma nova aresta que ainda não foi coberta por outros caminhos já estabelecidos na base. Isso garante que o conjunto mínimo de testes cobre todas as ramificações lógicas do código, otimizando o esforço de teste e maximizando a detecção de defeitos relacionados à lógica de controle de fluxo.
Alternativa (A).