Professional Documents
Culture Documents
Марат Ахин
2018
1 Проблема «останова»
Проблема «останова» в тестировании
Тестовое покрытие
Покрытие потока управления
Покрытие потока данных
Мутационное тестирование
Оценка тестового покрытия
Проблема останова
По заданному алгоритму и входным данным определить, завершится
ли за конечное время его выполнение
Что же делать?
Когда?
У нас кончилось время и/или деньги на тестирование
Мы протестировали ПО достаточно хорошо
По узлам
По дугам
По условиям
По путям
...
1 Никак
2 Покрытие операторов включает покрытие
ветвлений
3 Покрытие ветвлений включает покрытие
операторов
Никак
Почему покрытие ветвлений не включает
в себя покрытие операторов?
Потому что в программе может
присутствовать «мертвый код»
Потому что в программе могут вообще
отсутствовать ветвления
Никак
Циклы и рекурсия
Циклы и рекурсия
Циклы и рекурсия
Один из вариантов
Требуем, чтобы тело цикла было выполнено
0
1
k
max
Def-Use Chain
Пара (d, u) операторов программы, для которой выполняются
следующие условия
d – определение переменной v
u – использование переменной v
между d и u существует хотя бы один путь, на котором
переменная v не переопределяется
c
Who observes the observer?
Что же делать?
c
The whole is more than the sum of its parts
Эквивалентные мутанты
Эквивалентные мутанты
Что же делать?
c
The whole is more than the sum of its parts