Введение

В программировании охват кода, также называемый покрытием тестированием, является процентной мерой степени выполнения исходного кода программы при запуске определенного набора тестов. Программа с высоким покрытием тестирования имеет больший объем исходного кода, выполненного в процессе тестирования, что указывает на меньшую вероятность наличия необнаруженных программных ошибок по сравнению с программой с низким покрытием тестирования. Для расчета покрытия тестированием можно использовать различные метрики. К наиболее базовым относятся процент охваченных подпрограмм программы и процент выполненных операторов программы во время выполнения тестового набора. Охват кода был одним из первых методов, разработанных для систематического тестирования программного обеспечения. Первое опубликованное упоминание об этом методе принадлежит Миллеру и Малони в журнале Communications of the ACM в 1963 году.

Критерии охвата

Для измерения процента кода, выполненного набором тестов, используются один или несколько критериев покрытия. Как правило, они определяются в виде правил или требований, которым должен соответствовать набор тестов.

Покрытие значения параметров

Покрытие значений параметров (PVC) требует, чтобы в методе, принимающем параметры, были учтены все распространенные значения этих параметров. Идея заключается в том, что все типичные возможные значения параметра должны быть протестированы. Например, распространенные значения для строки: 1) null, 2) пустая строка, 3) строка, содержащая пробельные символы (пробелы, табуляции, переносы строк), 4) допустимая строка, 5) недопустимая строка, 6) строка из однобайтовых символов, 7) строка из двухбайтовых символов. Также может быть уместно использовать очень длинные строки. Отсутствие тестирования каждого возможного значения параметра может привести к ошибке. Тестирование только одного из этих значений может дать 100% покрытие кода, поскольку каждая строка будет выполнена, но поскольку протестирован только один из семи вариантов, покрытие значений параметров (PVC) составит всего 14,2%.

Применение в промышленности

Охват тестами является одним из аспектов, учитываемых при сертификации безопасности авиационного оборудования. Руководство, определяющее порядок сертификации авиационной техники Федеральным управлением гражданской авиации (FAA), задокументировано в стандартах DO 178B и DO 178C. Охват тестами также является обязательным требованием в части 6 автомобильного стандарта функциональной безопасности ISO 26262 "Функциональная безопасность дорожных транспортных средств".