Тест — это последовательность входных векторов , ,..., и соответствующих им выходных векторов , , ..., , получаемых в исправном блоке, где — длина теста, т. е.
= {,}.
Пара (,) называется элементарной проверкой.
Тест обнаруживает неисправность, если ее появление вызывает изменение . хотя бы в одной элементарной проверке. Тест является полным, если он обнаруживает все неисправности из заданного класса. Полнота теста оценивается отношением числа выявляемых тестом неисправностей к общему числу возможных неисправностей заданного класса в данном блоке. Полный тест называют минимальным, если он состоит из минимально возможного числа элементарных проверок. Число элементарных проверок в тесте называют его длиной.
Процесс проектирования тестов состоит из двух этапов: синтеза и анализа. На этапе синтеза тест генерируется, а на этапе анализа определяются списки неисправностей, обнаруживаемых тестом, и делается заключение о его пригодности для практического использования.
Существует два подхода к синтезу тестов цифровых блоков и устройств: функциональный и структурный. Функциональный подход основан на анализе выполняемых объектом функций. Трудности автоматического составления тестов этого вида обусловлены ориентацией на поведенческие свойства схемы, непосредственно не связанные с особенностями ее реализации. Поэтому функциональные тесты обычно строятся разработчиком схемы, детально знающим, что от нее требуется.
Функциональные тесты находят применение в условиях эксплуатации РЭА, их создание облегчается для микропроцессорных БИС.
Структурный подход состоит в синтезе тестов, исходя из структуры логического блока без учета конкретного, возможно, весьма ограниченного набора функций, которые он будет выполнять в устройстве. Подобные тесты могут генерироваться более или менее успешно автоматически. Используются они в первую очередь в процессе производства, так как обеспечивают поиск дефектов.