2.2 Тестирование

Тестирование (testing) является методом верификации, в рамках которого результаты работы тестируемой системы или компонента в ситуациях из выделенного конечного набора проверяются на соответствие проектным решениям, требованиям, общим задачам проекта, в рамках которого эта система разрабатывается или сопровождается.

Ситуации, в которых выполняется тестирование, называют тестовыми ситуациями (test situations, test purposes), а процедуры, описывающие процесс создания этих ситуаций и проверки, которые необходимо выполнить над полученными результатами, — тестами.

Тестирование может использоваться и для валидации, в этом случае оно проверяет соответствие поведения ПО ожиданиям и потребностям пользователей и заказчиков, а для оценки этого соответствия должны привлекаться сами пользователи, их представители, бизнес-аналитики или эксперты в предметной области.

Тестирование, как и верификация вообще, служит для поиска ошибок или дефектов и для оценки качества ПО. Эффективность решения обеих этих задач во многом определяется тем, какой именно набор тестовых ситуаций выбран для проведения тестирования.

Чтобы иметь некоторые гарантии аккуратности полученных в ходе тестирования оценок качества, необходимо выбирать тестовые ситуации систематическим образом, в соответствии с основными задачами и рисками проекта. Правила, определяющие набор необходимых тестовых ситуаций, называют критериями полноты (или адекватности) тестирования (test adequacy criteria).

Обычно такой критерий использует разбиение всех возможных при работе проверяемого ПО ситуаций на некоторые классы эквивалентности, такие, что ситуации из одного класса достаточно похожи друг на друга и работа ПО в них не должна отличаться сколь-нибудь значительным образом. Полноту тестирования при этом можно определять по проценту задействованных, «покрытых» в нем классов ситуаций.

Такой критерий полноты называется критерием тестового покрытия (test coverage criterion), а процент покрытых в результате работы тестов классов ситуаций — достигнутым тестовым покрытием.

Различных критериев полноты довольно много, а тестирование, покрывшее 100% выделенных по одному из таких критериев классов ситуаций, и поэтому часто называемое полным, в действительности не является полным или исчерпывающим в каком-либо смысле, связанным со строгими гарантиями отсутствия ошибок и соответствия ПО требованиям. Такого рода исчерпывающее тестирование невозможно для практически значимых систем.


Last modified: Sunday, 5 July 2026, 5:14 PM