Тестирование софта - статьи

ce076b8f

Критерии полноты тестового покрытия


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

Пусть P - множество программных систем, T - множество тестов, а Σ - множество тестовых наборов, то есть множество всех конечных подмножеств множества T . Тогда задача генерации тестов может быть сформулирована следующим образом: для заданной тестируемой системы S

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

Многие критерии полноты тестового покрытия, имеющие практическое применение, строятся по следующей схеме: для тестируемой системы S критерий F определяет множество элементов тестового покрытия

Критерии полноты тестового покрытия
. Элементом тестового покрытия можно считать некоторый класс событий, которые могут произойти в ходе работы тестируемой программной системы. По появлению в процессе исполнения программы элементов тестового покрытия и различных их комбинаций можно судить о полноте или качестве проверки, которую выполняет данный тестовый набор. Например, элементами тестового покрытия могут быть исполняемые строки исходного кода (соответствующие событиям их исполнения); рёбра графа потока управления; пути в графе потока управления; логические выражения, встречающиеся в исходном коде и т.п. Кроме того, критерий F определяет логическую функцию
Критерии полноты тестового покрытия
, которая принимает значение
Критерии полноты тестового покрытия
, если элемент тестового покрытия q покрывается тестом t. Тестовый набор
Критерии полноты тестового покрытия
для системы S удовлетворяет критерию полноты тестового покрытия F, если каждый элемент тестового покрытия из множества
Критерии полноты тестового покрытия
покрывается хотя бы одним тестом из тестового набора
Критерии полноты тестового покрытия
. Иными словами:

Критерии полноты тестового покрытия
(1)

Приведём несколько примеров часто упоминаемых критериев полноты тестового покрытия:

  • каждый оператор в исходном коде выполняется хотя бы один раз;
  • каждая ветвь графа потока управления выполняется хотя бы один раз;
  • каждый путь графа потока управления исполнение выполняется хотя бы один раз;
  • каждое логическое выражение хотя бы один раз вычисляется со значением «истина» и хотя бы один раз - со значением «ложь»;
  • тестовый набор убивает всех мутантов из заданного набора.

Заметим, что все критерии, приведённые в качестве примеров, соответствуют ранее изложенной схеме.

Содержание раздела