2. Санкт-Петербургский государственный политехнический университет
2
Проблемная область
•Проверки на модели недостаточно, необходимо проведение тестирования на основе результатов верификации
•Проблема взрыва количества состояний
•Мощность инструментов верификации позволяет получить огромное количество трасс
•Необходимость автоматизации тестирования и верификации для сокращения количества тестов
3. Санкт-Петербургский государственный политехнический университет
3
Формальные модели
•Типы формальных моделей
–Структурные
–Поведенческие
•Проблемы
–Однозначность интерпретации модели исполнителем и заказчиком
•Тенденции
–Использование формальных моделей
–Повышение уровня абстракции в формальных
3
4. Санкт-Петербургский государственный политехнический университет
4
Методы создания тестовых сценариев
•Поведенческие формальные модели
–Обычные и расширенные автоматы
–Системы переходов
–…
•Методы сокращения пространства состояний
–Методы на основе классов эквивалентности
–Методы на основе дедуктивного анализа
–Методы символьного анализа
–…
•Типы дефектов
–использование неинициализированных объектов, тупики, гонки параллельных потоков…
5. Санкт-Петербургский государственный политехнический
университет 5
Нотация UCM
5
UCM (U,S,E,R), где
U – множество элементов
S – множество начальных состояний
E – множество конечных состояний
R – множество переходов
6. Санкт-Петербургский государственный политехнический университет
6
Предлагаемый подход
•Ручная формализация модели в высокоуровневой графической нотации
•Верификация модели и ее корректировка
•Генерация символьных тестовых сценариев по модели
•Генерация исполняемых тестов
•Исполнение тестов и оценка результатов
6
8. Санкт-Петербургский государственный политехнический университет
8
Критерии покрытия
•Число выполненных операторов программы
•Покрытие ветвей
•Покрытие путей
•Покрытие проверенных значений данных
•Покрытие граничных значений функции
•Покрытие переходов между состояниями
8
9. Санкт-Петербургский государственный политехнический
университет 9
Использование гидов
9
{ # , # ,..., # } i i k k n n Guide u d u d u d
u — элемент диаграммы
d — глубина между
элементами
Метод подразумевает
наложение ограничений на
размер тестового сценария, что
дает возможность проверить
его допустимость.
Критерии покрытия
формулируют дополнительные
ограничения на поиск, отсекая
ветви поведения модели, не
удовлетворяющие тестовому
сценарию.
Использование глубин :
• для сокрытия альтернативного выбора
•для сокрытия цикла
•для сокрытия параллелизма.
10. Санкт-Петербургский государственный политехнический университет
10
Использование гидов с глубиной
10
Для покрытия R6 необходимо построить 4 гида:
• R0, R1, R3, R4, R6;
• R0, R1, R3, R4, R5, R4, R6;
• R0, R2, R3, R4, R6;
• R0, R2, R3, R4, R5, R4, R6. С использованием глубины можно построить один гид:
• R0, R3#2, R6#3
11. Санкт-Петербургский государственный политехнический университет
11
Генерация на основе критерия ветвей
11
• Генерация базовых протоколов по UCM проекту.
• Выделение ветвей в структуре UCM.
• Генерация гида для каждой ветви.
• Произведение оптимизации - удаление избыточных диаграмм.
R1
R1 R2
R1 R3
R1 R4
R1 R5(#2)
R1 R5(#2) R6
R1 R5(#2) R7
R1 R2 R1 R3 R1 R4 R1 R5(#2) R6 R1 R5(#2) R7
12. Санкт-Петербургский государственный политехнический университет
12
Результаты применения
12
Название проекта
Кол-во базовых протоколов
Кол-во ветвей
Кол-во гидов
Кол-во сгенерированных символьных трасс
Количество сгенерированных тестов
Проект 1
358
149
437
372
958
Проект 2
163
240
139
131
522
Проект 3
191
111
87
72
216
Проект 4
214
200
118
104
312
13. Санкт-Петербургский государственный политехнический университет
13
Заключение
13
• 70%-ное сокращении временных затрат на весь цикл тестирования по сравнению с подходом основанным на простом обходе дерева поведения системы без использования гидов.
• Сокращение количества тестов сгенерированных системой верификации более чем в 10 раз.