I am working in a HW area. Recently I have been given a device to test (just hardware validation) but there is no detailed specification, just a block diagram where each block performs certain functions. As I need to produce a report with coverage criteria, my only idea is to use these block as inputs to my coverage analysis but still it it cannot be precise as I do not know all functions these blocks are capable block. Any ideas?
As for all metrics, it's a matter of definition, e.g. in unit tests you distinguish between
- line coverage
- branch coverage
One line of code can have many conditions, of which not all are evaluated due to short-circuiting.
In your case, test coverage could be defined as
- block coverage
- function coverage (a block has several functions)
The term "test coverage" is not precise enough, so you should ask someone who can make a decision about it. Be prepared to be asked for your opinion. If so, mention your favorite coverage type and give some reasons why that coverage type is better.
From tester's perspective I'd say a fine granular coverage method (function coverage) is preferable, since it enables you to identify gaps in testing and define new tests more easily.
However, from management perspective, someone may decide for the rough coverage (block coverage), e.g. if they want to hide problems for business reasons. In such a case, you can still create the detailed report (function coverage) for yourself and pass the summary report (block coverage) to your boss. Since it is a 1:n relationship, that should be easy to achieve.
Such an approach enables you to
- get your work done,
- satisfy your boss and
- be prepared for the situation that you need to provide more details on short notice.