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

       

Целенаправленный поиск


Учитывая структуру критерия , из задачи 1 можно выделить следующую подзадачу:

Задача 2. Для заданной тестовой системы S и заданного элемента тестового покрытия q, построить тест

Целенаправленный поиск
, удовлетворяющий условию
Целенаправленный поиск
.

Для решения исходной задачи 1, достаточно решить задачу 2 для

Целенаправленный поиск
попарно различных элементов тестового покрытия
Целенаправленный поиск
, то есть построить тесты
Целенаправленный поиск
такие, что

Целенаправленный поиск

Решением задачи 1 будет множество

Целенаправленный поиск
.

Рассмотрим генетический алгоритм решения задачи 2. В качестве множества кандидатов возьмём множество тестов T. Условие останова: в текущей популяции присутствует тест q такой, что

Целенаправленный поиск
. Оценочная функция
Целенаправленный поиск
каждому тесту t ставит в соответствие числовую меру
Целенаправленный поиск
того, насколько тест t близок к тому, чтобы покрыть элемент тестового покрытия q. При этом оценочная функция
Целенаправленный поиск
достигает своего максимального значения на тех и только на тех тестах, которые удовлетворяют условию
Целенаправленный поиск
. Иными словами:

Целенаправленный поиск
(5)

В частности, в качестве оценочной функции можно использовать следующую функцию, удовлетворяющую условию (5):

Целенаправленный поиск

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

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