Download presentation
Presentation is loading. Please wait.
Published byKevin Parrish Modified over 9 years ago
1
1 Игорь Борисович Бурдонов Александр Сергеевич Косачев Тестирование и верификация систем на основе формальных моделей Институт Системного Программирования РАН
2
2 План курса лекций Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 1.Формализация тестирования 2.Модели реализации и спецификации 3.Гипотеза о безопасности и безопасная конформность 4.Генерация тестов 5.Оптимизация тестов 6.Проблемы практического тестирования 7.Тестирование с закрытым состоянием 8.Тестирование с открытым состоянием 9.Развитие теории конформности
3
3 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 5. Оптимизация тестов. Отношение следования ошибок (одиночное) Тестовая ошибка = трасса максимальной истории теста с вердиктом fail. Если тест значимый, то тестовая ошибка – это ошибка по спецификации. Отношение следования ошибок: a b, если в любой безопасно-тестируемой реализации, где есть a, есть и b. Предпорядок (рефлексивно и транзитивно). Набор тестов полный, если он обнаруживает хотя бы одну тестовую ошибку из каждого минимального (по предпорядку) класса эквивалентности ошибок. Удаляем тесты, если оставшиеся тесты обнаруживают тестовые ошибки из всех минимальных классов эквивалентности тестовых ошибок, обнаруживаемых удаленными тестами. Примеры следования ошибок: Вычисляемые отказы: если трасса ошибки содержит такой отказ, то трасса без этого отказа тоже ошибка. Вторичные ошибки: ошибка с неконформным строгим префиксом.
4
4 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 5. Оптимизация тестов. Отношение следования ошибок (множественное) Множественное следование: A B, если в любой безопасно-тестируемой реализации, где есть a A, есть некоторое b B. Предпорядок. Ищем минимальное по вложенности множество ошибок, эквивалентное множеству всех ошибок. Значимый набор тестов: множество обнаруживаемых тестовых ошибок множество всех ошибок. Исчерпывающий набор тестов: множество обнаруживаемых тестовых ошибок множество всех ошибок. Полный набор тестов: множество обнаруживаемых тестовых ошибок множество всех ошибок.
5
5 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 5. Оптимизация тестов. Пример множественного следования ошибок Актуальные ошибки такие: 1. Отказ {ab} после пустого отказа и ненулевого количества действий x : состояние 2. Таких ошибок бесконечно много (из-за действий x ). 3. Действие a или действие b после пустой трассы: состояния 0 и 1. 2. Действие a или действие b после пустого отказа: состояние 1. Пусть в б.-т. реализации I есть (1) x x * {a,b} и нет (2) ( a | b ). Тогда после нет действий из {a,b} (полнота) трасса {a,b} x x* {a,b} (согласованность) после {a,b} x x* {a,b} нет a (конвергентность) трасса {a,b} x x* {a,b} {a} (замкнутость) трасса {a,b} x x* {a} {a} safe in I after {a,b} x x* нарушена гипотеза о безопасности для I “{ab}” pass fail {ab} a b множ. один.
6
6 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 5. Оптимизация тестов. Гипотеза о трёх оптимизациях ГИПОТЕЗА: Если существует конечный полный набор тестов для класса всех безопасно-тестируемых реализаций, то его можно построить с помощью трех оптимизаций, основанных на 1) удалении неконформных трасс (пополнение), 2) учете демонических трасс, 3) множественном следовании ошибок: выделении конечного минимального по вложенности множества ошибок, эквивалентного множеству всех ошибок. ДОПОЛНИТЕЛЬНАЯ ПРАКТИЧЕСКАЯ ГИПОТЕЗА: Для конечной спецификации в конечной семантике при регулярном отношении safe by это можно сделать алгоритмически за конечное время.
7
7 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Проблемы практического тестирования. Метрики полноты тестирования = покрытия. Мы будем заниматься полным тестированием.
8
8 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Проблемы практического тестирования. Проблема конечности Проблема конечности:- времени генерации тестов, - времени тестирования по этим тестам. Конечность полного набора тестов (или одного теста с рестартом). Для этого «почти» необходимы, хотя и недостаточны, конечность алфавита внешних действий L и конечность LTS-спецификации Конечность времени тестирования: - конечность полного набора тестов, - конечность времени прогона теста, - конечность числа прогонов теста. ПРОБЛЕМЫ
9
9 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Проблемы практического тестирования. Бесконечность полного набора тестов ПРОБЛЕМЫ Два источника бесконечного числа трасс: Бесконечное ветвление (и, следовательно, бесконечный алфавит), Бесконечные трассы. a n+1 b n+1 c n+1 ………. z 1,z 2,z 3,…,z n z 1,z 2,z 3,z 4,… z 1 z 1,z 2 z 1,z 2,z 3 z 1,z 2,z 3,z 4 …………….. Бесконечное число существенных трасс. Трассы: несущественные и существенные.
10
10 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Проблемы практического тестирования. Проблема конечности Конечность полного набора тестов и числа прогонов теста: Ограничения на классы реализаций и спецификаций, Дополнительные тестовые возможности. Конечность времени прогона теста – Практические предположения о конечности: времени выполнения конечной последовательности любых действий, времени передачи воздействия в реализацию и наблюдения от реализации. Конечность множества кнопок – является достаточным условием генерации конечного числа тестов из одной трассы. При конечном множестве кнопок для конечного набора тестов нам достаточно конечности набора трасс, по которому генерируются примитивные тесты
11
11 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Проблемы практического тестирования. Ограничения на недетерминизм реализации Конечность числа неэквивалентных погодных условий. Управление недетерминированным выбором (погодой) или ограничение на недетерминированный выбор. Пример управления погодой: Недетерминизм как следствие псевдопараллелизма. Вмешательство в работу планировщика процессорного времени. Пример ограничения на недетерминизм: Часто ограничиваются классом детерминированных реализаций даже при недетерминированной спецификации.
12
12 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Проблемы практического тестирования. Три вида детерминизма реализации Слабый детерминизм: трасса реализации заканчивается в одном состоянии. Нет -переходов и в состоянии не более одного перехода по действию. Семантика : L = {a,b,x} R = {{a,b}} Q = {{x}} Наблюдаемый детерминизм: после трассы кнопка разрешает ровно одно наблюдение, определённое в реализации. Сильный детерминизм: Нет -переходов и в состоянии не более одного перехода по действию из кнопки. 0 2 1 a b Слабый 0 2 1 a b Сильный 0 2 1 a b Сильный недетерминизм 0 2 1 a a 1 4 5 6 23 0 2 1 a a Наблюдаемый 0 2 1 a a 3
13
13 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Проблемы практического тестирования. Три вида детерминизма реализации Слабый детерминизм: трасса реализации заканчивается в одном состоянии. Нет -переходов и в состоянии не более одного перехода по действию. Наблюдаемый детерминизм: после трассы кнопка разрешает ровно одно наблюдение, определённое в реализации. Сильный детерминизм: Нет -переходов и в состоянии не более одного перехода по действию из кнопки. сильный недетерминизм наблюдаемый слабый сильный
14
14 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Проблемы практического тестирования. Ограничения на недетерминизм реализации Почему спецификация недетерминирована, если все исследуемые реализации детерминированы? Первая причина: спецификация описывает не одну реализацию, а класс (детерминированных) реализаций, удовлетворяющих спецификационным требованиям. Иными словами: требования недетерминированные. Пример: функция вычисления квадратного корня: Имплицитная спецификация:y 2 = x Эксплицитная спецификация:y = + (x) y = - (x)
15
15 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Проблемы практического тестирования. Ограничения на недетерминизм реализации Почему спецификация недетерминирована, если все исследуемые реализации детерминированы? Вторая причина: недетерминизм спецификации как следствие повышения уровня абстракции при задании спецификационных требований. Пример: программа распределения памяти блоками переменной длины. A – суммарный объём свободной памяти, n – число занятых блоков. x – размер запрашиваемого блока памяти. Если x > A, запрос не должен удовлетворяться. Если x A/(n+1), запрос должен удовлетворяться. Если A/(n+1) < x A, недетерминизм.
16
16 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Проблемы практического тестирования. ограниченный недетерминизм (t-недетерминизм) Мы используем следующую гипотезу о t-недетерминизме: если в состоянии i кнопку P или кнопку рестарта нажимать t раз, то реализация продемонстрирует все возможные варианты поведения, то есть будут получены все пары (наблюдение, постсостояние) или все состояния после рестарта. При этом нажатия кнопки P в данном состоянии могут чередоваться с нажатием кнопок в других состояниях и других кнопок в этом состоянии. 1-недетерминизм = сильный детерминизм. сильный недетерминизм наблюдаемый слабый сильный t-недетерминизм
17
17 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) Недетерминизм как следствие псевдопараллелизма. Вмешиваясь в работу системы, мы можем на каждом шаге перебирать все возможные варианты выбора того или иного активного процесса на выполнение. Если у нас есть t процессов, то получается t-недетерминизм. 6. Проблемы практического тестирования. ограниченный недетерминизм (t-недетерминизм)
18
18 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) Тестирование с преобразованием семантик. Медиатор. Недетерминизм как следствие повышения уровня абстракции. Медиатор преобразует: спецификационную кнопку в t реализационных кнопок. (и реализационные наблюдения – в спецификационные). Из-за этого реализация «кажется» недетерминированной. Поскольку медиатор работает детерминированно, получается t-недетерминизм. Пример: вычисление квадратного корня: 4 = +2 или -2. 6. Проблемы практического тестирования. ограниченный недетерминизм (t-недетерминизм)
19
19 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Проблемы практического тестирования. Тестирование с открытым и закрытым состоянием Если есть операция опроса текущего состояния реализации (status message) и эта операция достоверная (всегда выполняется правильно), то ее можно использовать при тестировании. Такое тестирование называется тестированием с открытым состоянием. Если возможности опроса нет, тестирование - с закрытым состоянием. Открытое состояние дает возможность использовать для полного тестирования конечный набор тестов во многих случаях, когда тестирование с закрытым состоянием требует бесконечного полного набора тестов.
20
20 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Проблемы практического тестирования. 6. Проблемы практического тестирования. LTS- и RTS-спецификация Детерминизация: По исходной LTS-спецификации с k состояниями всегда можно построить детерминированную RTS-спецификацию. Число состояний RTS K 2 k -1. Будем считать, что отношение safe by ограниченное: после всех трасс, заканчивающихся в RTS в одном состоянии, безопасность кнопок одинаковая.
21
21 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 7. Тестирование с закрытым состоянием. 7. Тестирование с закрытым состоянием. Простые тесты RTS-спецификация S и безопасно-тестируемая LTS-реализация I. Трасса - безопасная в S и кнопка P безопасна после . Обозначим:s - (единственное) состояние S, в котором заканчивается . i - одно из состояний I, в котором заканчивается . Если для тройки (s , i , P) есть примитивный тест, сгенерированной по трассе ` такой, что s = s `, в котором после ` нажимается кнопка P, то такой набор тестов будет полным. При однократном прогоне теста на реализации I мы получаем последовательность пар состояний (s , i ), где - префикс трассы . Тест простой для I, если хотя бы при одном его прогоне в полученной последовательности пар состояний нет одинаковых пар. Для полноты тестирования I достаточно тестов простых для I.
22
22 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 7. Тестирование с закрытым состоянием. 7. Тестирование с закрытым состоянием. Оценка длины простого теста Оценка сверху длины N простого теста: N nK n(2 k -1), где n – число состояний реализации, K – число состояний RTS-спецификации, k – число состояний исходной LTS-спецификации. Набор всех тестов длины N содержит все простые тесты для всех реализаций с числом состояний n, т.е. полон на этом классе реализаций. Точность оценки по порядку: Для любых k и n существуют семантика с O(k) действиями, LTS-спецификация с O(k) состояниями и неконформная реализация с O(n) состояниями, ошибка в которой не может быть обнаружена тестом длины меньше O(n2 k ).
23
23 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 7. Тестирование с закрытым состоянием. 7. Тестирование с закрытым состоянием. Оценка длины простого теста Даже для семантики с ограниченным числом действий оценка остается суперполиномиальной: Существует семантика с двумя действиями, для которой в точной верхней оценке O(n(2 k -1)) показатель степени k заменяется на c(ln k) 2. LTS-спецификации, на которых достигаются эти оценки, существенно недетерминированы. В фиксированной семантике для детерминированной LTS-спецификации K = O(k), а не O(2 k ). Даже минимальный недетерминизм (нет -переходов и только в одном состоянии только по одному действию есть два перехода в разные состояния) оставляет оценки суперполиномиальными.
24
24 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 7. Тестирование с закрытым состоянием. 7. Тестирование с закрытым состоянием. Оценка числа прогонов простого теста Оценка числа прогонов простого теста, задаваемого чередующейся последовательностью кнопок и наблюдений P 1,u 1,…,P N-1,u N-1,P N при t-недетерминизме: O( t N ). Эта оценка достижима для некоторых реализаций, но для каких-то (классов) реализаций она может оказаться меньше. Для детерминированных реализаций тест достаточно прогонять один раз.
25
25 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Один адаптивный тест с рестартом Не набор тестов, а один адаптивный тест с рестартом. Для полноты тестирования нужно проверить все переходы реализации, лежащие на маршрутах с трассами, безопасными в спецификации. Для одного теста LTS-реализация должна быть сильно-связной: из каждого достижимого состояния достижимо каждое другое достижимое состояние. Рестарт гарантированно переводит реализацию в начальное состояние. Переход по рестарту делает трассу пустой и дополнительно учитывается при определении сильно-связности.
26
26 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Один адаптивный тест с рестартом Начальное состояние реализации стабильно или хотя бы в одном состоянии, достижимом по безопасной трассе спецификации, определен рестарт.
27
27 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Построение модели реализации I в процессе тестирования Получая наблюдения и опрашивая состояния реализации, будем поэтапно строить LTS-реализацию I с одновременной проверкой тестируемого условия. Более точно: строится LTS-модель, имеющая такое же как в реализации множество трасс, безопасных в спецификации, и такое же множество состояний, достижимых по этим трассам. При этом переходы-петли по отказам мы будет рисовать явно.
28
28 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Построение модели реализации I в процессе тестирования Перед тестированием и после каждого перехода опрашиваем состояние. Переход i z i` по внешнему действию z добавляется, когда после опроса состояния i нажимается кнопка P, наблюдается действие z P и опрашивается постсостояние i`. Если наблюдается отказ P с тем же самым постсостоянием i` = i, то добавляется виртуальный переход-петля по отказу i P i. Если отказ P наблюдается с другим постсостоянием i` i, то добавляются переходы i i` P i`. Вместе с каждым переходом по внешнему действию i z i` сохраняем кнопку P. Это управляющая кнопка перехода.
29
29 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Соответствие состояний В процессе тестирования будем строить соответствие между состояниями реализации и спецификации: i s. Состояния соответствуют друг другу, если они достижимы по одной и той же трассе, которая безопасна в спецификации. В частности, начальное состояние спецификации и каждое состояние спецификации после пустой трассы соответствуют каждому состоянию реализации, которое опрашивается в начале тестирования и после каждого рестарта.
30
30 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Допустимые в состоянии кнопки и их счётчики Кнопка P допустима в реализационном состоянии i, если она безопасна хотя бы в одном соответствующем состоянии спецификации. Для каждой допустимой кнопки P будем вести счётчик числа ее нажатий в состоянии i. Кнопка P полна в состоянии i, если 1) счётчик = t. 2)счётчик = 1 и есть переход-петля по отказу i P i. В обоих случаях уже получены все возможные переходы из состояния i при нажатии кнопки P. Состояние полно, если каждая допустимая в нем кнопка полна.
31
31 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Начало тестирования В начале тестирования после опроса состояния это состояние реализации соответствует каждому состоянию спецификации в конце пустой трассы. Других состояний реализации пока нет. Переходов тоже нет. Счётчик каждой кнопки в этом состоянии равен 0.
32
32 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Общая схема работы алгоритма тестирования
33
33 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Общая схема работы алгоритма тестирования В графе I выберем такое множество деревьев, покрывающих все состояния, что: из каждого состояния выходит не более одного перехода деревьев, деревья ориентированы к корням, которыми являются все неполные состояния. Двигаемся по переходам i u i` деревьев, нажимая управляющие кнопки переходов. Из-за недетерминизма мы можем оказаться не в i`, а в другом состоянии i``. Если это не корневое состояние, то в нем тоже определен переход.
34
34 Если текущее состояние i неполное, выбираем неполную в нём кнопку P, нажимаем ее и получаем один переход i z i` или i P i`=i или два перехода i i` P i`. Это трасса i u i` (u=z или u=P). Постсостояние i` становится новым текущим состоянием. Корректируем счетчик кнопки P в состоянии i. Переход, который мы получили, может быть новым или построенным ранее. Если получен старый переход, то возвращаемся к началу. Если получен новый переход, то добавляем его в I. После этого выполняется блок «Распространение с верификацией». Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Общая схема работы алгоритма тестирования
35
35 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Общая схема работы алгоритма тестирования Проверяем тестируемое условие для полученной новой трассы i u i` и каждого s такого, что i s : u безопасно в s s` s u s`. Если не было i` s`, то делаем i` s` и проверяем тестируемое условие для каждой трассы i` v i`` и состояния s`. И т.д. Если ошибка – fail. Иначе – на начало.
36
1 5 0 6 2 4 a a x a I a a a b x 36 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Пример работы алгоритма тестирования 1 5 0 6 2 4 a a x a S a a a b b 1 5 0 6 2 4 a a x a I a a a b x ioco-семантика L ={a,b, x} R ={{a,b}} Q ={{x}} переход sisi счётчики {ab}счётчики {x} комментарий 01234560123456 0000 00 Рестарт ВН=«Воздействие и наблюдение» +РВ=«Распростр. с верификацией» ВН 0a10a1 1111 100- 1a21a2 2222 1100-- 2a12a1 1110-- 1b61b6 6666 12100--- 6a26a2 12110--- 2a12a1 12210--- 1a21a2 12210--- переход в неполное состояние 2a12a1 12210--- 1b61b6 12210--- 6a26a2 12220--- ВН 0a10a1 22220--- Рестарт+ВН 0x40x4 4444 22221--- Рестарт+ВН+РВ 4a54a5 5555 222021---- ВН+РВ 5a65a6 2221021----- 0x00x0 4040 2221122----- Рестарт+ВН+РВ рестарт ОШИБКА !!! (вычисляемая) ошибка минимальной длины x,a,a.a,b b 4040 5151 6262 2121 1212?6?6 5656 a a a aa a b b верификация с распространением
37
37 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Сравнение тестирования с открытым и закрытым состоянием При тестировании с открытым состоянием верифицируются не только наблюдения, полученные после трасс, реально пройденных при тестировании, как в случае тестирования с закрытым состоянием, но и возможные наблюдения после потенциальных трасс, то есть верифицируются наблюдения и трассы, про которые установлено, что они есть в реализации. То есть: мы выполняем множество проверок без реального тестирования, основываясь на полученном знании о поведении реализации. Например, если при тестировании получены две трассы 1 и 2, где трассы 1 и 2 заканчиваются в реализации в одном состоянии i, то мы можем проверить обе трассы: как 1 , которую реально прошли при тестировании, так и потенциальную трассу 2 . В примере: ошибка xaaab, проходили трассы: x и aaab. Это преимущество дает дополнительная тестовая возможность опроса состояния.
38
38 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Оценки сложности алгоритма. Число тестовых воздействий Оценка O T = O( bnt n ) для t > 1, и O T = O( bn 2 ) для t = 1. где b — число кнопок, n – максимальное число состояний LTS-реализации O T = O( bn 2 ) достигается не только для детерминированной реализации, но и во всех случаях, когда переход в неполное состояние можно гарантированно выполнить, проходя путь (маршрут без самопересечений), длина которого ограничена n.
39
39 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 7. Тестирование с закрытым состоянием. 7. Тестирование с закрытым состоянием. Оценка числа прогонов простого теста Пример 1: Сильно- -связные реализации. LTS сильно- -связна, если для любой пары состояний a и b можно в каждом состоянии i найти такую кнопку P(i,a,b), что, нажимая такие кнопки, мы гарантированно перейдём из a в b. Детерминированные LTS — это частный случай сильно- -связных LTS. Пример 3: Недетерминизм как следствие преобразования семантик. Тестирование через медиатор. Пример 2: Недетерминизм как следствие псевдопараллелизма.
40
40 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 8. Тестирование с открытым состоянием. 8. Тестирование с открытым состоянием. Оценки сложности алгоритма. Объем вычислений Оценка объема вычислений содержит три слагаемых: 1) вычисления, необходимые для поиска опрошенного состояния среди пройденных при каждом тестовом воздействии, nO T = O( bn 2 t n ) для t > 1 или nO T = O( bn 3 ) для t = 1; 2) построение множества деревьев O( b 2 tn 2 ); 3) вычисления в блоке «Распространение с верификацией» O( mK ). где b — число кнопок, n – максимальное число состояний LTS-реализации, m – максимальное число переходов LTS-реализации, m btn, k – максимальное число состояний LTS-спецификации, K 2 k ‑ 1 – максимальное число состояний RTS-спецификации.
41
41 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 9. Развитие теории конформности: Проблема монотонности Важный частный случай: конформна? Композиция спецификаций Спецификация системы спецификация компонента 1 спецификация компонента 2 Реализация системы реализация компонента 1 реализация компонента 2 конформна Монотонность = сохранение конформности при композиции Асинхронное тестирование (тестирование в контексте). Два компонента: реализация и известная среда передачи. спецификация среда передачи реализация среда передачи
42
42 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 9. Развитие теории конформности. Асинхронное тестирование = тестирование в контексте T Context (I)= T (I Q) тестовый контекст реализация I T I cреда передачи Q тест T Синхронное тестированиеАсинхронное тестирование I saco S I Q saco T (S) Q Context (I)=I Q преобразование T очередь стимулов очередь реакций Проблема несохранения конформности (асинхронный тест ловит ложные ошибки) Предлагаемое решение проблемы: I saco S I Q saco S Q Проблема вседозволенности (permissiveness): I saco S I Q saco S Q
43
43 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) ? 9. Развитие теории конформности. Асинхронное тестирование = тестирование в контексте Среда передачи Queue = одна неограниченная очередь стимулов и одна неограниченная очередь реакций ioco-семантика Ничего не поделаешь... i0i0 i2i2 i4i4 i1i1 ?x !a ?z i3 !b i5i5 !c ?z Реализация I2 I2 ioco S ( I2 ioco Queue S ) Несохранение соответствия i0i0 i2i2 i1i1 ?x !a i3 !a Реализация I1 Вседозволенность ( I1 ioco S ) I1 ioco Queue S s0s0 s2s2s3s3 s1s1 ?x !a !b s4 ?z Спецификация S Это нехорошо!
44
44 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 9. Развитие теории конформности. Монотонное преобразование Несохранение конформности при асинхронном тестировании – особый случай общей проблемы несохранения конформности при композиции: I 1 saco S 1 & I 2 saco S 2 I 1 I 2 saco S 1 S 2 Решение - монотонное преобразование T : сохраняется класс конформных реализаций I saco S I saco T (S) сохраняется класс безопасно-тестируемых реализаций I safe for S I safe for T (S) конформность сохраняется при композиции I 1 saco S 1 & I 2 saco S 2 I 1 I 2 saco T (S 1 ) T (S 2 ) I saco S I Q saco T (S) Q (для асинхронного тестирования) НО! Это решение годится только тогда, когда нет Q-кнопок.
45
45 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 9. Развитие теории конформности. Пополнение как первый шаг к монотонному преобразованию Пополнение C : сохраняется класс конформных реализаций I saco S I saco C (S) не сужается класс безопасно-тестируемых реализаций I safe for S I safe for C S) пополненную спецификацию можно рассматривать в семантике, где все отказы наблюдаемые: I saco S в R/Q-семантике I saco C (S) в R Q/ -семантике
46
46 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 9. Развитие теории конформности. Проблема монотонности Пополнение C + Монотонное преобразование T : сохраняется класс конформных реализаций I saco S I saco T ( C (S)) не сужается класс безопасно-тестируемых реализаций I safe for S I safe for T ( C (S)) конформность сохраняется при композиции I 1 saco S 1 & I 2 saco S 2 I 1 I 2 saco T ( C (S 1 )) T ( C (S 2 )) I saco S I Q saco T ( C (S)) Q (для асинхронного тестирования)
47
47 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) Монотонное преобразование решает две основные задачи: 1)верификация декомпозиции системных требований, то есть верификация согласованности имеющейся спецификации системы со спецификациями компонентов: S согласована с S 1, S 2 S 1 S 2 saco S 2)генерация спецификации системы по спецификациям её компонентов (при отсутствии спецификации системы). Это позволяет генерировать системные тесты даже при отсутствии явно заданной спецификации системы. 9. Развитие теории конформности. Проблема монотонности В какой семантике следует рассматривать композицию монотонно преобразованных спецификаций? Ответ: в любой!
48
48 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 9. Развитие теории конформности. -модель как средний уровень абстракции LTS-модель Трассовая модель LTS-модель … -модель … … 1.Трассовая модель однозначно определяется -моделью. 2.Можно определить композицию -моделей: -модель композиции LTS = композиции -моделей LTS. Игорь Бурдонов. Теория конформности (функциональное тестирование программных систем на основе формальных моделей). LAP LAMBERT Academic Publishing, Saarbrucken, Germany, 2011. содержание книги доступно по адресу: http://panda.ispras.ru/~RedVerst/RedVerst/Publications/TR-01-2007.pdf
49
49 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 9. Развитие теории конформности. ОБЩАЯ СТРУКТУРА ТЕОРИИ Тестирование избегает a) ненаблюдаемых отказов, b) попыток выйти из дивергенции ( ) и c) запрещённого (не декларированного) поведения (разрушение, обозначается символом ). 1.T (S) S (сохраняет безопасные и конформные реализации). 2.Композиция конформных реализаций конформна композиции преобразованных спецификаций. 3.Это самая сильная спецификация композиции. Генерация тестов Монотонное преобразование Пополнение спецификации класс семантик - AB - класс семантик обобщение параметризация 2.Безопасность Безопасное тестирование Гипотеза о безопасности Безопасная конформность 3.Монотонность Монотонное преобразование T (S) 4.Пополнение Пополнение спецификаций C (S) 1. Формализация тестового эксперимента а л г о р и т м и з а ц и я a A b B : S in a C (S) in a C (S) in b семантика взаимодействия
50
50 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 9. Развитие теории конформности. Приоритеты Примеры систем с приоритетами: 1. Выход из дивергенции (приоритет внешних действий над -действиями). 2. Выход из осцилляции (приоритет приема над выдачей). 3. Прерывание цепочки действий (команда «отменить» - «cancel»). 4. Приоритетная обработка входных воздействий. Что сделано: Определена LTS-модель с приоритетами. Модифицированы гипотеза о безопасности и безопасная конформность. Модифицирована генерация тестов. Определена композиция LTS с приоритетами. Что не сделано: Пополнение. Монотонное преобразование.
51
51 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 6. Развитие теории конформности. Безопасная симуляция Симуляция – конформность, основанная не только на трассах, но и на соответствии Состояний реализации и спецификации. Что сделано: Определена безопасная симуляция ss – слабая симуляция с учетом отказов (наблюдаемых и ненаблюдаемых), дивергенции и разрушения; соответствующим образом модифицирована гипотеза о безопасности. Установлена связь с трассовой конформностью: ss saco. Теоретически исследовано полное тестирование безопасной симуляции. В отличие от трассовой конформности полное тестирование не всегда возможно. Найдено достаточное условие полноты тестирования. Предложен общий алгоритм тестирования безопасной симуляции. Для практического использования предложена модификация общего алгоритма: исследование реализации (аналогично saco) + верификация. Конечны семантика, спецификация и реализация (t-недетерминированная). Что не сделано: Пополнение. Монотонное преобразование. Тестирование с открытым состоянием.
52
52 Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей (53) 9. Развитие теории конформности. Тестирование с преобразованием семантик Реализация и спецификация заданы в разных семантиках. Преобразованием семантик при тестировании осуществляет программа-медиатор: спецификационные кнопки реализационные кнопки, реализационные наблюдения спецификационные наблюдения, [необязательно] реализационные состояния спецификационные состояния. Что сделано: Предложена формализация устройства теста и медиатора. Модифицированы гипотеза о безопасности и безопасная конформность. Дополнительная модификация при преобразовании состояний. Для практического использования предложена модификация алгоритма конечного полного тестирования с открытым состоянием. В том числе – для случая преобразования состояний. Не до конца исследованы: Пополнение. Монотонное преобразование.
53
53 Спасибо за внимание! Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей
54
54 Переходим к практическому тестированию. Вопросы есть? Игорь Борисович Бурдонов & Александр Сергеевич Косачев, ИСП РАН Тестирование и верификация систем на основе формальных моделей
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.