Relações entre diferentes critérios de cobertura:
-
Cobertura de nós (NC):
- Garante que cada nó do gráfico de fluxo de controle (CFG) seja visitado pelo menos uma vez durante o teste.
- Subsumido por critérios mais abrangentes, como cobertura de borda e cobertura de caminho.
-
Cobertura de borda (EC):
- Requer que cada borda do CFG seja percorrida pelo menos uma vez durante o teste.
- Mais abrangente do que a cobertura de nós, pois considera o fluxo de controle entre os nós.
-
Cobertura de pares de bordas (EPC):
- Amplia a cobertura de borda garantindo que cada par de bordas adjacentes no CFG seja percorrido pelo menos uma vez.
- Fornece uma avaliação mais completa das interações do fluxo de controle.
-
Cobertura de caminho principal (PPC):
- Envolve a identificação e o teste de todos os caminhos principais no CFG, em que um caminho principal é um caminho exclusivo do nó inicial ao final que não contém nenhum subcaminho que também seja um caminho principal.
- Oferece um nível mais alto de cobertura do que a cobertura de par de bordas, pois considera caminhos mais longos.
-
Cobertura de caminho completo (CPC):
- Requer que todos os caminhos possíveis no CFG, incluindo loops e condicionais, sejam percorridos pelo menos uma vez.
- É o critério de cobertura mais completo, garantindo que todos os caminhos de execução possíveis sejam testados.
-
Cobertura de todos os caminhos de UD (ADUP):
- Assegura que todos os caminhos possíveis de def-use (caminho DU) no programa sejam cobertos por casos de teste.
- Concentra-se no teste de fluxo de dados, garantindo que todas as interações entre definições e usos de variáveis sejam testadas.
-
Cobertura de todos os usos (AUC):
- Requer que cada uso de uma variável seja coberto por pelo menos um caso de teste.
- Concentra-se em garantir que todos os possíveis usos de variáveis sejam testados, contribuindo para a cobertura do fluxo de dados.
-
Cobertura de todas as definições (ADC):
- Garante que cada definição de uma variável seja coberta por pelo menos um caso de teste.
- Concentra-se em verificar se todas as definições de variáveis são utilizadas corretamente em todo o programa.
Relacionamentos:
- Critérios mais específicos, como cobertura de nós e bordas, são subsumidos por critérios mais amplos, como cobertura completa de caminhos e cobertura de todos os caminhos duplos.
- Os critérios de fluxo de dados (AUC, ADC, ADUP) concentram-se em definições e usos de variáveis e são complementares aos critérios de cobertura baseados em caminhos.
Conclusão: Compreender as relações entre os diferentes critérios de cobertura ajuda os testadores a escolherem as estratégias apropriadas para o projeto do caso de teste, equilibrando o rigor com a eficiência para obter testes eficazes dos sistemas de software.
Atomic Note: Graph Coverage Criteria Subsumption
Relationships Between Different Coverage Criteria:
-
Node Coverage (NC):
- Ensures that every node in the control flow graph (CFG) is visited at least once during testing.
- Subsumed by more comprehensive criteria like edge coverage and path coverage.
-
Edge Coverage (EC):
- Requires that every edge in the CFG is traversed at least once during testing.
- More comprehensive than node coverage as it considers the flow of control between nodes.
-
Edge-Pair Coverage (EPC):
- Extends edge coverage by ensuring that every pair of edges that are adjacent in the CFG is traversed at least once.
- Provides a more thorough assessment of control flow interactions.
-
Prime Path Coverage (PPC):
- Involves identifying and testing all prime paths in the CFG, where a prime path is a unique path from the start to end node that does not contain any subpath that is also a prime path.
- Offers a higher level of coverage than edge-pair coverage as it considers longer paths.
-
Complete Path Coverage (CPC):
- Requires that every possible path in the CFG, including loops and conditionals, is traversed at least once.
- The most thorough coverage criterion, ensuring that every possible execution path is tested.
-
All-DU-Paths Coverage (ADUP):
- Ensures that every possible def-use path (DU path) in the program is covered by test cases.
- Focuses on data flow testing, ensuring that all interactions between variable definitions and uses are tested.
-
All-uses Coverage (AUC):
- Requires that every use of a variable is covered by at least one test case.
- Focuses on ensuring that all potential uses of variables are tested, contributing to data flow coverage.
-
All-defs Coverage (ADC):
- Ensures that every definition of a variable is covered by at least one test case.
- Focuses on verifying that all variable definitions are correctly utilized throughout the program.
Relationships:
- More specific criteria like node and edge coverage are subsumed by broader criteria such as complete path coverage and all-du-paths coverage.
- Data flow criteria (AUC, ADC, ADUP) focus on variable definitions and uses and are complementary to path-based coverage criteria.
Conclusion: Understanding the relationships between different coverage criteria helps testers choose appropriate strategies for test case design, balancing thoroughness with efficiency to achieve effective testing of software systems.