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

       

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


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

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

, удовлетворяющий условию
.

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

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

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

.

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

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

(5)

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

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

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