Code Ferramenta de Cobertura: Teste de Declarações, Ramificações e Decisões
⚡ Resumo Inteligente
Code A cobertura é uma métrica de caixa branca que indica o grau em que o código-fonte foi testado por um conjunto de testes.ping As equipes localizam instruções, ramificações, condições e caminhos não testados que podem conter defeitos ocultos.

O que é a Code Cobertura?
Code cobertura É uma medida que descreve o grau em que o código-fonte de um programa foi testado. É uma forma de teste de caixa branca que identifica as áreas de um programa que não foram testadas por um conjunto de casos de teste. Também ajuda a criar casos de teste adicionais para aumentar a cobertura e determinar uma medida quantitativa da cobertura de código.
Na maioria dos casos, um sistema de cobertura de código coleta informações sobre o programa em execução. Em seguida, combina essas informações com o código-fonte para gerar um relatório sobre a cobertura de código do conjunto de testes.
Por que usar Code Teste de cobertura?
Aqui estão alguns motivos principais para usar a cobertura de código:
- Isso ajuda a medir a eficiência da implementação dos testes.
- Oferece uma medição quantitativa dos testes.
- Ele define o grau em que o código-fonte foi testado.
Code Métodos de cobertura
A seguir, apresentamos os principais métodos de cobertura de código:
- Cobertura do extrato
- Cobertura de decisão
- Cobertura de Filial
- Toggle Cobertura
- Cobertura FSM
Cobertura do extrato
Cobertura do extrato A cobertura de instruções é uma técnica de teste de caixa branca na qual todas as instruções executáveis no código-fonte são executadas pelo menos uma vez. Ela é usada para calcular o número de instruções no código-fonte que foram executadas. O principal objetivo da cobertura de instruções é abranger todos os caminhos, linhas e instruções possíveis no código-fonte.
A cobertura de instruções é usada para derivar cenários com base na estrutura do código em teste.
No teste de caixa branca, o testador concentra-se em como o software funciona. Em outras palavras, o testador concentra-se no funcionamento interno do código-fonte, considerando os diagramas de fluxo de controle ou fluxogramas.
Geralmente, em qualquer software, se você analisar o código-fonte, encontrará uma grande variedade de elementos como operadores, funções, etc.ping, manipuladores de exceção e assim por diante. Dependendo da entrada do programa, algumas instruções de código podem não ser executadas. O objetivo da cobertura de instruções é cobrir todos os caminhos, linhas e instruções possíveis no código.
Vamos entender isso com um exemplo de como calcular a cobertura de instruções. Aqui, consideramos dois cenários diferentes para verificar a porcentagem de cobertura de instruções em cada cenário.
fonte Code:
Prints (int a, int b) { ------------ Printsum is a function int result = a + b; If (result > 0) Print ("Positive", result) Else Print ("Negative", result) } ----------- End of the source code
Cenário 1: Se A = 3, B = 9
As instruções marcadas em amarelo são aquelas que foram executadas conforme o cenário. Número de instruções executadas = 5, Número total de instruções = 7, portanto, Cobertura de instruções = 5/7 = 71%.
Cenário 2: Se A = -3, B = -9
As instruções marcadas em amarelo são aquelas que foram executadas conforme o cenário. Número de instruções executadas = 6, Número total de instruções = 7, portanto, Cobertura de instruções = 6/7 = 85%.
Mas, no geral, como você pode ver, todas as afirmações são contempladas pelos dois cenários. Portanto, podemos concluir que a cobertura geral das afirmações é de 100%.
O que é coberto pela Cobertura da Declaração?
- Declarações não utilizadas
- Dead Code
- Ramos não utilizados
- Declarações ausentes
Teste de cobertura de decisão
Cobertura de decisão É uma técnica de teste de caixa branca que reporta os resultados verdadeiro ou falso de cada expressão booleana no código-fonte. O objetivo do teste de cobertura de decisão é cobrir e validar todo o código-fonte acessível, verificando e garantindo que cada ramificação de cada ponto de decisão possível seja executada pelo menos uma vez.
Nesse tipo de cobertura, as expressões podem se tornar complexas, dificultando a obtenção de 100% de cobertura. Por isso, diversos métodos são utilizados para reportar essa métrica. Esses métodos priorizam as combinações mais críticas. Embora seja semelhante à cobertura de ramificação, oferece maior sensibilidade ao fluxo de controle.
Exemplo de cobertura de decisão
Considere o seguinte código:
Demo(int a) { If (a > 5) a = a * 3 Print (a) }
Cenário 1: O valor de a é 2. O resultado "Não" da decisão (a>5) é verificado, portanto, a Cobertura da Decisão é de 50%.
Cenário 2: O valor de a é 6. O resultado "Sim" da decisão (a>5) é verificado, portanto, a Cobertura da Decisão é de 50%.
| Caso de teste | Valor de A | saída | Cobertura de decisão |
|---|---|---|---|
| 1 | 2 | 2 | 50% |
| 2 | 6 | 18 | 50% |
Teste de cobertura de filiais
Cobertura de Filial A cobertura de ramificação é um método de teste de caixa branca no qual cada resultado de um módulo de código (instrução ou laço) é testado. O objetivo da cobertura de ramificação é garantir que cada condição de decisão de cada ramificação seja executada pelo menos uma vez. Ela ajuda a medir a proporção de segmentos de código independentes e a identificar seções que não possuem ramificações.
Por exemplo, se os resultados forem binários, você precisará testar os resultados Verdadeiro e Falso.
A fórmula para calcular a cobertura da agência:
Exemplo de cobertura de filial
Para aprender sobre cobertura de ramificação, considere o mesmo exemplo usado anteriormente. A cobertura de ramificação também considerará a ramificação incondicional.
| Caso de teste | Valor de A | saída | Cobertura de decisão | Cobertura de Filial |
|---|---|---|---|---|
| 1 | 2 | 2 | 50% | 33% |
| 2 | 6 | 18 | 50% | 67% |
Vantagens da cobertura de filiais:
- Permite validar todos os ramos do código.
- Ajuda a garantir que nenhuma ramificação cause qualquer anormalidade na operação do programa.
- Remove problemas que ocorrem devido aos testes de cobertura de instruções.
- Permite encontrar áreas que não são testadas por outros métodos de teste.
- Permite encontrar uma medida quantitativa da cobertura de código.
- A cobertura de ramificações ignora ramificações dentro de expressões booleanas.
Teste de cobertura de condição
Cobertura de condiçãoA cobertura de expressão, ou cobertura condicional, é um método de teste usado para testar e avaliar as variáveis ou subexpressões em uma instrução condicional. O objetivo da cobertura condicional é verificar os resultados individuais para cada condição lógica. A cobertura condicional oferece maior sensibilidade ao fluxo de controle do que a cobertura de decisão. Nesse tipo de cobertura, apenas expressões com operandos lógicos são consideradas.
Por exemplo, se uma expressão tiver operações booleanas como AND, OR ou XOR, isso indica o total de possibilidades. A cobertura de condições não garante a cobertura total de decisões.
A fórmula para calcular a Cobertura da Condição:
Para uma expressão com dois operandos, existem quatro combinações possíveis: TT, FF, TF e FT. Considere a entrada X=3, Y=4 (x b) FALSO, o que resulta em uma cobertura de condição de 1/4 = 25%.
Cobertura de máquinas de estados finitos
A cobertura de máquinas de estados finitos é certamente o tipo mais complexo de método de cobertura de código. Isso ocorre porque ela se baseia no comportamento do projeto. Nesse método de cobertura, é necessário observar quantas vezes estados específicos são visitados ou transitados. Também verifica quantas sequências estão incluídas em uma máquina de estados finitos.
Qual tipo de Code Cobertura à sua escolha
Essa é certamente a resposta mais difícil de dar. Para selecionar um método de cobertura, o testador precisa verificar se:
- O código em teste apresenta um ou mais defeitos não detectados.
- custo da possível penalidade,
- custo da reputação perdida,
- custo das vendas perdidas, e assim por diante.
Quanto maior a probabilidade de os defeitos causarem falhas de produção dispendiosas, mais severo será o nível de cobertura que você precisa escolher.
Code Cobertura versus Cobertura Funcional
| Code Global | Cobertura Funcional |
|---|---|
| Indica o quão bem o código-fonte foi testado pela sua plataforma de testes. | Mede o quão bem a funcionalidade do projeto foi coberta pela sua bancada de testes. |
| Nunca utiliza uma especificação de projeto. | Utiliza uma especificação de projeto. |
| Feito pelos desenvolvedores. | Feito pelos testadores. |
Code Ferramentas de cobertura
Segue uma lista de ferramentas importantes para análise de cobertura de código:
| Nome da Ferramenta | Descrição |
|---|---|
| Cobertura | Uma ferramenta de código aberto para cobertura de código. Ela mede a cobertura de testes instrumentando uma base de código e analisando quais linhas de código são executadas e quais não são quando o conjunto de testes é executado. |
| Trevo | Trevo (OpenCloverAlém disso, reduz o tempo de teste, executando apenas os testes que abrangem o código do aplicativo modificado desde a versão anterior. |
| Parceiro de desenvolvimento | DevPartner permite que os desenvolvedores analisem Java Código para qualidade e complexidade do código. |
| Emma | O EMMA oferece suporte à cobertura de classe, método, linha e bloco básico, agregada nos níveis de arquivo de origem, classe e método. |
| Kalistick | Kalistick é um aplicativo de terceiros que analisa o código sob diferentes perspectivas. |
| CoView e CoAnt | Uma ferramenta de cobertura de código para métricas, criação de objetos mock, testabilidade de código, cobertura de caminhos e ramificações, e muito mais. |
| Alvo para C++ | BullseyeCoverage é uma ferramenta de cobertura de código para C++ e C. |
| Sonar | O Sonar é uma ferramenta de código aberto para cobertura de código que ajuda você a gerenciar a qualidade do código. |
Vantagens e Desvantagens de Usar Code Global
| Vantagens | Desvantagens |
|---|---|
| Útil para avaliar uma medida quantitativa da cobertura de código. | Mesmo quando uma funcionalidade específica não é implementada no projeto, a cobertura de código ainda indica 100%. |
| Permite criar casos de teste adicionais para aumentar a cobertura. | Não é possível determinar se todos os valores possíveis de uma funcionalidade foram testados usando a cobertura de código. |
| Permite encontrar as áreas de um programa que não foram testadas por um conjunto de casos de teste. | Code A abrangência não indica o quanto e quão bem você abordou sua lógica. |






