Введение
В программировании охват кода, также называемый покрытием тестированием, является процентной мерой степени выполнения исходного кода программы при запуске определенного набора тестов. Программа с высоким покрытием тестирования имеет больший объем исходного кода, выполненного в процессе тестирования, что указывает на меньшую вероятность наличия необнаруженных программных ошибок по сравнению с программой с низким покрытием тестирования. Для расчета покрытия тестированием можно использовать различные метрики. К наиболее базовым относятся процент охваченных подпрограмм программы и процент выполненных операторов программы во время выполнения тестового набора. Охват кода был одним из первых методов, разработанных для систематического тестирования программного обеспечения. Первое опубликованное упоминание об этом методе принадлежит Миллеру и Малони в журнале Communications of the ACM в 1963 году.
coverage based on source code
In software engineering, code coverage, also called test coverage, is a percentage measure of the degree to which the source code of a program is executed when a particular test suite is run. A program with high test coverage has more of its source code executed during testing, which suggests it has a lower chance of containing undetected software bugs compared to a program with low test coverage. Many different metrics can be used to calculate test coverage. Some of the most basic are the percentage of program subroutines and the percentage of program statements called during execution of the test suite. Code coverage was among the first methods invented for systematic software testing. The first published reference was by Miller and Maloney in Communications of the ACM, in 1963.
Критерии охвата
Для измерения процента кода, выполненного набором тестов, используются один или несколько критериев покрытия. Как правило, они определяются в виде правил или требований, которым должен соответствовать набор тестов.
Покрытие значения параметров
Покрытие значений параметров (PVC) требует, чтобы в методе, принимающем параметры, были учтены все распространенные значения этих параметров. Идея заключается в том, что все типичные возможные значения параметра должны быть протестированы. Например, распространенные значения для строки: 1) null, 2) пустая строка, 3) строка, содержащая пробельные символы (пробелы, табуляции, переносы строк), 4) допустимая строка, 5) недопустимая строка, 6) строка из однобайтовых символов, 7) строка из двухбайтовых символов. Также может быть уместно использовать очень длинные строки. Отсутствие тестирования каждого возможного значения параметра может привести к ошибке. Тестирование только одного из этих значений может дать 100% покрытие кода, поскольку каждая строка будет выполнена, но поскольку протестирован только один из семи вариантов, покрытие значений параметров (PVC) составит всего 14,2%.
Применение в промышленности
Охват тестами является одним из аспектов, учитываемых при сертификации безопасности авиационного оборудования. Руководство, определяющее порядок сертификации авиационной техники Федеральным управлением гражданской авиации (FAA), задокументировано в стандартах DO 178B и DO 178C. Охват тестами также является обязательным требованием в части 6 автомобильного стандарта функциональной безопасности ISO 26262 "Функциональная безопасность дорожных транспортных средств".