Целенаправленный поиск
Учитывая структуру критерия , из задачи 1 можно выделить следующую подзадачу:
Задача 2. Для заданной тестовой системы S и заданного элемента тестового покрытия q, построить тест
![](image/image075.gif)
![](image/image028.gif)
Для решения исходной задачи 1, достаточно решить задачу 2 для
![](image/image078.gif)
![](image/image080.gif)
![](image/image082.gif)
![](image/image084.gif)
Решением задачи 1 будет множество
![](image/image086.gif)
Рассмотрим генетический алгоритм решения задачи 2. В качестве множества кандидатов возьмём множество тестов T. Условие останова: в текущей популяции присутствует тест q такой, что
![](image/image028.gif)
![](image/image091.gif)
![](image/image094.gif)
![](image/image098.gif)
![](image/image028.gif)
![](image/image101.gif)
В частности, в качестве оценочной функции можно использовать следующую функцию, удовлетворяющую условию (5):
![](image/image103.gif)
В такой оценочной функции считается, что все тесты, не покрывающие элемент тестового покрытия q, одинаково далеки от того, чтобы покрыть элемент q. При использовании этой оценочной функции эффективность генетического алгоритма будет не выше, чем при случайном поиске. Примеры более эффективных оценочных функций для некоторых метрик полноты тестового покрытия можно найти в [,,].