Você está na página 1de 15

Cobertura de Código

 code coverage 

João Leonardo Fragoso

Cobertura de Código
2

 Objetivo
 Métrica para verificação

 As simulações foram suficientemente?

 Os test-cases estressam o circuito o suficiente?

 O que não é:
 Não substitui o engenheiro de verificação

 Não defini os test-cases

 Não garante que o circuito está correto

João Leonardo Fragoso

1
Cobertura de Código
3

 O que é então:
 A cobertura do código HDL é a medida de alguns parâmetros
que conseguem identificar funcionalidades que não foram
verificadas/simuladas
 Indica a qualidade da regressão atual.

João Leonardo Fragoso

Cobertura de Código
4

 Cobertura VHDL RTL


 As ferramentas comerciais oferecem o cálculo das métricas de
cobertura de código RTL.
 Nenhuma idéia semântica do funcionamento do circuito.

João Leonardo Fragoso

2
Tipos de Cobertura
5

 Statement Coverage
 Branch Coverage
 Condition Coverage
 Expression Coverage
 Toggle Coverage

João Leonardo Fragoso

Tipos de Cobertura
6

 Statement Coverage
 Controla o número de execuções dos comandos (statements)
contidos no código
 Em geral as ferramentas reportam quantas vezes um comando
foi executado no teste e destaca os que não foram

João Leonardo Fragoso

3
Tipos
7

 Branch Coverage
 Mede a cobertura de decisão em comandos if e case que afetam
o fluxo de controle de uma determinada rodada.

João Leonardo Fragoso

Tipos
8

 Condition Coverage
 É uma extensão da branch coverage. Na verdade avalia a
condição que definiu a decisão do branch em todos os seus
subtermos.

João Leonardo Fragoso

4
Tipos
9

 Expression Coverage
 É parecida com a cobertura de condição, mas ao invés de
analisar decisões, analisa atribuições concorrentes

João Leonardo Fragoso

Tipos
10

 Toggle coverage
 Conta as trocas de estado em nodos específicos

 Alguns levam em conta somente 0s e 1s, outros levam Zs ou


outros valores em conta

João Leonardo Fragoso

5
O uso desta técnica
11

 Uma indicação da qualidade da verificação


 Cobertura só é interessante se o resultado for para o
conjunto de test-cases
 Precisa acumular o resultado
 O resultado de um test-case individual não é significativo

João Leonardo Fragoso

Atenção !!
12

 Na verdade é difícil mensurar objetivamente o que


significa conseguir 100% de cobertura nos testes.
 Esta informação é certamente valiosa de forma a
depurar a bateria de testes
 Mas conseguir 100% de cobertura não garante que
a verificação está completa!!

João Leonardo Fragoso

6
O uso desta técnica
13

 Os VIP para determinados módulos devem trazer


definidas a cobertura que ele se propões a oferecer
 uma USB, ou um protocolo, se os test-cases não cobrem os
casos inválidos de comunicação, isto deve ficar definido no
plano de verificação

João Leonardo Fragoso

O uso desta técnica


14

João Leonardo Fragoso

7
O uso desta técnica
15

 Coverage driven Simulation


 i.e., simulação só pode parar qdo atingir uma determinada
cobertura
 Idéia: Padrões randômicos até atingir a cobertura necessária.

João Leonardo Fragoso

O uso desta técnica


16

 Pra funcionar, precisa-se então:


 Definir qual coverage se quer atingir!

 Não cair no desnecessário.

 False Paths ☺

 Imprecisa mas imprescindível

João Leonardo Fragoso

8
O uso desta técnica
17

 Instância
 Uma boa ferramenta deve dar a cobertura por cada instância
de um determinado componente

João Leonardo Fragoso

O uso desta técnica


18

 FSM coverage
 Olha o quanto os estados da máquina de estados foram
cobertos.

João Leonardo Fragoso

9
O uso desta técnica
19

 “Entender” o comportamento
 OBD (observed coverage) analisa a influência da
linha (observabilidade)
 O uso de assertions deve ser levada em consideração
pela ferramenta, senão tenho uma métrica sem valor.

João Leonardo Fragoso

Exemplo de resultados
20

João Leonardo Fragoso

10
Exemplo de resultados
21

João Leonardo Fragoso

Exemplo de resultados
22

João Leonardo Fragoso

11
Exemplo de resultados
23

João Leonardo Fragoso

Exemplo de resultados
24

João Leonardo Fragoso

12
Exemplo de resultados
25

João Leonardo Fragoso

Exemplo de resultados
26

João Leonardo Fragoso

13
Exemplo de resultados
27

João Leonardo Fragoso

Exemplos de telas
28

João Leonardo Fragoso

14
Exemplos de telas
29

João Leonardo Fragoso

Exemplos de telas
30

João Leonardo Fragoso

15

Você também pode gostar