1.3k likes | 1.64k Views
Игорь Борисович Бурдонов Александр Сергеевич Косачев Виктор Вячеславович Кулямин ТЕОРИЯ КОНФОРМНОСТИ ДЛЯ СИСТЕМ С ОТКАЗАМИ И РАЗРУШЕНИЕМ ( формализация тестового эксперимента ). Институт Системного Программирования РАН RedVerst. Игорь Бурдонов, Александр Косачев, Виктор Кулямин.
E N D
Игорь Борисович Бурдонов Александр Сергеевич Косачев Виктор Вячеславович Кулямин ТЕОРИЯ КОНФОРМНОСТИ ДЛЯ СИСТЕМ С ОТКАЗАМИ ИРАЗРУШЕНИЕМ (формализация тестового эксперимента) Институт Системного Программирования РАНRedVerst
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst • Введение • Реализация как модель тестируемой системы • Управление и наблюдение внешних действий • Остановка машины и наблюдение отказов • Протокол взаимодействия и безопасное тестирование • Гипотеза о безопасности и безопасная конформность • Примеры тестовых семантик и отношений конформности • Разрушение • Дивергенция • Лампочки меню и трассы готовности • Репликация и симуляции • Глобальное тестирование • Бесконечные и отрицательные наблюдения • Приоритеты • Заключение
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Введение Формализация конформности Реальный мир Модельный мир Требования Спецификация конформна ! ! ! ??? конформна ! ! ! ??? моделирование Целевая система Реализация Реализация Модельная конформность Реальная конформность. Спецификационная модель считается заданной. Конформность Реализации Спецификации Этот вывод основан на предположении, что моделирование требований, системы и конформности «правильное». Правильность моделирования – вне рамок нашего рассмотрения. Мы предполагаем, что моделирование «правильное». Что делать, если реализационная модель не известна ? Тестовая гипотеза[G.Bernot]: Реализационная модель существует. Она может быть известна или не известна.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Введение Тестирование конформности Целевая система проходит реальный тест Реализационная модель проходит модельный тест. Этот вывод основан на предположении, что моделирование взаимодействия и трансляция тестов «правильные». Правильность моделирования и трансляции – вне рамок нашегорассмотрения. Мы предполагаем, что они правильные. Реальный мир Модельный мир Требования Спецификация конформна ! ! ! ??? конформна ??? ! ! ! моделирование Целевая система Реализация генерация трансляция проходит проходит Мы будем рассматривать только такие требования к системе,которые можно сформулировать в терминах её взаимодействия с окружением. Набор тестов Набор тестов Что делать, если реализационная модель не известна ? Полный набор тестов: реализация конформна спецификации реализация проходит каждый тест из тестового набора Становится возможным тестирование, когда тест подменяет собой окружение и, взаимодействуя с системой, наблюдает её поведение. Практическое ограничение:каждый тест должен заканчиваться за конечное время.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Введение Три базовые положения • Спецификационная и реализационная модели, а также модель конформности «правильные»: • реальный мирмодельный мирIconfS ImodelconfSmodel • Модельные отношения conf и passes«согласованы»: • модельный мир: существует полный тестовый наборTSImodelconfSmodel ImodelpassesTS • Моделирование взаимодействия и трансляция тестов тоже «правильные»: • модельный мирреальный мирImodelpassesTS Ipassestranslation(TS)
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Введение Этапы проверки конформности • Выбор классов моделей спецификации и реализации. • Без ограничения общности можно иметь один класс моделей. • Выбор модели взаимодействия. • Тестовые возможности и гипотезы о реализации. • Выбор отношения конформности для класса моделей реализации и спецификации и модели взаимодействия: как понимать спецификацию? • Генерация полного набора тестов по спецификации и отношению конформности. • Трансляция тестов: программирование медиаторов. • Прогон реальных тестов на целевой системе.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Введение Формализация взаимодействия Будем задавать операционную семантику взаимодействия с помощью специальной машины тестирования. Выбор машины определяется тестовыми возможностями по управлению и наблюдению. Конформность должна быть проверяема при тестировании с заданными тестовыми возможностями. Реальное взаимодействие не любое: оно определяется • операционной обстановкой – как окружение может взаимодействовать с реализацией, • требованиями к окружению – как окружение должно взаимодействовать с реализацией.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Введение • Анализ тестовых возможностейпо трём аспектам: • что мы хотим проверять при тестировании, • что мы теоретически можем проверять с помощью данных тестовых возможностей («мощность тестирования») , • на какие тестовые возможности и при каких условиях мы практически можем рассчитывать.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Введение Принцип независимости(как понимать спецификацию) Любое поведение реализации в данной ситуации правильно или неправильно независимо от других её поведений:I(t)Sp(t), где Sp(t) - поведения, разрешаемые спецификацией в ситуацииt, I(t) - все возможные поведенияреализации в ситуацииt Если при завершении прогона теста наблюдается поведениеhI(t), то выносится вердиктpass, еслиhSp(t), и fail, еслиhSp(t). Общий вердикт равен конъюнкции вердиктов для всех прогонов всех тестов полного набора (если считать pass=trueи fail=false ).
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Введение • Не рассматриваются • конформности, для которых недостаточно анализировать отдельные поведения реализации и требуется (дополнительный) анализ множества наблюдаемых поведений. • В частности, конформности, требующие обязательного наличия в реализации некоторых поведений. • Если спецификация в ситуацииt определяет множество обязательных поведенийSr(t), то конформность требует обратной вложенностиI(t)Sr(t). • Требуется анализ всего множества наблюдаемых поведенийI(t) и проверкаsI(t) для каждогоsSr(t). • Не рассматриваются эквивалентностиSr(t)=Sp(t). Для такого рода конформностей предикат конформности не равен конъюнкции вердиктов всех прогонов всех тестов.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Введение • Три машины тестирования • Мы рассмотрим две известные машины тестирования, предложенные Милнером и Ван Глаббеком. • Параллельно будем определять машину с ограниченным управлением, которая предоставляет минимальные тестовые возможности, доступные в большинстве практических случаев. • Эта машина параметризуется набором тестовых возможностей. • Другие тестовые возможности либо «избыточны» (позволяют проверять то, что нам не нужно), либо в настоящее время не проработаны в теории, либо «непрактичны».
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Введение • Системы ввода-вывода • В качестве примера будем использовать системы ввода-вывода, в которых применяется широко распространенный частный вид взаимодействия, сводимый к обмену дискретными порциями информации (сообщениями) между реализацией и окружением. • Сообщение, передаваемое из окружения в систему, называется стимулом (input). • Сообщение, передаваемое в окружение из системы, называется реакцией (output). • Следуя нотации алгебры процессов CCS (Calculus of Communicating Systems), мы обозначаем: • стимулы как ?m, • реакции как !m, гдеm – символ сообщения.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst • Введение • Реализация как модель тестируемой системы • Управление и наблюдение внешних действий • Остановка машины и наблюдение отказов • Протокол взаимодействия и безопасное тестирование • Гипотеза о безопасности и безопасная конформность • Примеры тестовых семантик и отношений конформности • Разрушение • Дивергенция • Лампочки меню и трассы готовности • Репликация и симуляции • Глобальное тестирование • Бесконечные и отрицательные наблюдения • Приоритеты • Заключение
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Реализация как модель тестируемой системы Чёрный ящик чёрный ящик, в котором реализация Для формализации взаимодействия реализации с окружением не важно, как реализация устроена «внутри». Важен её внешний интерфейс, позволяющий оказывать на неётестовые воздействия и наблюдать еёвнешнее поведение. Машина тестирования = «чёрный ящик» с тестируемой реализацией внутри и разного рода «устройствами» для тестовых воздействий и наблюдения внешнего поведения. Воздействия и наблюдения совершает оператор машины, поведение которого моделирует поведение окружения. Тест =инструкция оператору, моделирующая вариант поведения окружения, плюс вердикт pass илиfailв конце.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Реализация как модель тестируемой системы • Система размеченных переходовLTS (Labelled Transition System) • Эту модель реализации мы будем использовать для наглядности. • LTS = ориентированный граф с выделенной начальной вершиной, дуги которого помечены некоторыми символами. • Формально: LTS = совокупностьS=LTS(VS,L,ES,s0), где • VS– непустое множество состояний (вершин графа), • L – алфавит символов, называемых внешними действиями, • L2L– символ внутренних действий, • ESVS(L{})VS– множество переходов (помеченных дуг), • s0VS– начальное состояние (начальная вершина графа). • szs`=def(s,z,s`)ES • sz=defs` szs`.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Реализация как модель тестируемой системы • Внешние (наблюдаемые) действия • Внешнее поведение = последовательность дискретных внешних действий, выполнение которых оператор может наблюдать. • Для машины задаётся алфавитL внешних действий. • СимволzL обозначает множество действий машины, выполнение каждого из которых наблюдаемо оператором какz. • Выполнение в одной и той же ситуации одного или другого действия, когда они оба видимы извне какz, не означает, что последствия выполнения действий также внешне неразличимы. • Фиксация алфавитаL не означает, что тестируемая система не может выполнять ещё какие-то действия, которые могли бы наблюдаться извне. Но они нас не интересуют. • В LTS: выполнение внешнего действия = переходszs`. • Сами состоянияs иs` не наблюдаемы.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Реализация как модель тестируемой системы Внутренняя активность Кроме внешних действий, машина может иметь внутреннюю активность, внешне не наблюдаемую. Обозначается символом. -активность может быть как конечной, то есть, исчезающей через какое-то время, так и бесконечной =дивергенция. Можно считать, что -активность = последовательность дискретных -действий, тоже внутренних, ненаблюдаемых. Символомобозначает множество всех внутренних действий машины, которые не наблюдаемы (и неразличимы) оператором. Конечная -активность = конечная, а дивергенция = бесконечная последовательность выполнения -действий. В LTS: выполнение-действия = переходss`.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Реализация как модель тестируемой системы Время выполнения Будем предполагать, что время выполнения любого внешнего или -действия конечно и ограничено снизу ненулевым значением. Тогда конечная последовательность действий выполняется за конечное время, а бесконечная последовательность действий (в частности, дивергенция) выполняется бесконечно долго.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Реализация как модель тестируемой системы • Определённые и разрешённые действия • Взаимодействие всегда предполагает участие обеих сторон: реализации и окружения. • Например, в системах ввода-вывода: • окружение посылает стимул, а реализация принимает его, • реализация выдаёт реакцию, а окружение её получает. • Тем не менее, могут существовать ограничения на допустимое поведение окружения или реализации. • Машина тестирования может выполнять только те действия, которые определены в ней и разрешены оператором. • В LTS-реализации действиеz определено, если в текущем состоянииs есть хотя бы один переход видаszs`. • Воздействие = оператор указывает, какие действия разрешены. • -действия всегда разрешены, оператор не может их запретить.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Реализация как модель тестируемой системы Приоритеты Хотя выполняться может только определённое и разрешённое действие, обратное в общем случае не верно. Выполнимость действияz есть предикат от множества определённых действий и множества разрешённых действий. Предикат может быть различным в различные моменты времени (в различных состояниях LTS-реализации) и для различных действий (для различных переходов LTS-реализации). Таким способом в машине могут быть заданы приоритеты выполнения действий. Мы рассматриваем, как правило, машиныбез приоритетов: всякое определённое и разрешённое действие выполнимо.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Реализация как модель тестируемой системы Правило недетерминированного выбора: Если несколько действий выполнимы, то выполняется только одно из них, выбираемое недетерминированным образом. В этом причина недетерминизма системы, поскольку мы абстрагируемся от тех факторов («погодных условий»), которые определяют выбор того или иного действия. В LTS-реализации это означает, что в текущем состоянииs может быть определено несколько переходов видаszs`, отличающихся только конечным состояниемs`.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Реализация как модель тестируемой системы Оператор параллельной композиции LTS Машина без приоритетов! На универсуме внешних действий определяется инволюция «подчёркивание», которая каждому внешнему действиюz ставит в соответствие противоположное действиеzтак, чтоz=z. Заметим, чтоzL не обязательно влечётzL. Композиция алфавитов:LM=(L\M)(M\L).p ДляS=LTS(VS,L,ES,s0) иT=LTS(VT,M,ET,t0) ST=LTS(VSVT,LM,E,s0t0), гдеE – это наименьшее Множество, порождаемое следующими правилами вывода: l(L\M){}&sls` stls`t m(M\L){}&tmt`stmst` zLM&szs`&tzt`sts`t`
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Реализация как модель тестируемой системы Композиция LTS-реализации и LTS-теста Если оператор в машине с LTS-реализациейSразрешает действияzL, то в LTS-тестеTэтому соответствует переход видаtzt`. Если оператор может «передумать» и, не дожидаясь выполнения внешнего действия, разрешить другое множество внешних действий, то в LTS-тестеTэтому соответствует -переход видаtt`. Обычно система <реализация-тест> замкнута, то есть они взаимодействуют только друг с другом и не взаимодействуют с остальным внешним миром. ТогдаM=LиLM=, то есть в композицииSTостаются только -переходы (наследованные от операндов или синхронные).
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Реализация как модель тестируемой системы • Асинхронное тестированиеили тестирование в контексте • На практике тест может взаимодействовать с тестируемой системой не напрямую, а через некоторую среду передачи. • Пример: очередь стимулов и очередь реакций в системах ввода-вывода. • Кроме того, система может взаимодействовать не только с тестом и/или средой передачи, но и другой частью окружения. • Например, не можем «перехватывать» всё внешнее взаимодействие системы. • Это значит: тестируется композиция реализации со средой передачи и другой частью окружения. • Реализация погружена в тестовый контекст. • Фактически, здесь меняется само отношение конформности. • Далее будем считать, что система <реализация-тест> замкнута.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst • Введение • Реализация как модель тестируемой системы • Управление и наблюдение внешних действий • Остановка машины и наблюдение отказов • Протокол взаимодействия и безопасное тестирование • Гипотеза о безопасности и безопасная конформность • Примеры тестовых семантик и отношений конформности • Разрушение • Дивергенция • Лампочки меню и трассы готовности • Репликация и симуляции • Глобальное тестирование • Бесконечные и отрицательные наблюдения • Приоритеты • Заключение
B b a A c C Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Управление и наблюдение внешних действия Управление внешними действиями Генеративная машина (van Glabbeek, R. J.). Действиеzразрешается переключателем “z” в положении on. Можно разрешать несколько действий. ... Реактивная машина (R. Milner). ДействиеzLразрешается кнопкой “z”. Вкаждом состоянии окружения не более одного перехода по каждому внешнему действию. После выполнения внешнего действия машина приостанавливается до следующей кнопки. ... Параметризованная машина:семейство R2L. Кнопка “P”, гдеPR,разрешает все действияzP. Нажатая кнопка автоматически отжимается, если машина выполняет внешнее действие или оператор нажимает другую кнопку. ...
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Управление и наблюдение внешних действия Сравнение машин • Параметризованная машинагенеративная машина, в которой не любое положение переключателей допустимо. • Генеративная машина реактивная машина, в которой разрешается одновременно нажимать несколько кнопок. • С этими модификациями все три машины эквивалентныза исключением поведения после внешнего действия до нового нажатия кнопок (изменения положения переключателей). • Реактивная машина приостанавливается до тех пор, пока не будут ещё раз нажаты те же или другие кнопки. • Генеративная машина продолжает работать, выполняя внутренние действия и внешние действия, разрешённые переключателями в положении on. • Параметризованная машина продолжает работать, но выполняются только внутренние действия (кнопка отжата).
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Управление и наблюдение внешних действия Сравнение машин • Приостановкареактивной машины в генеративной машине нажатие переключателя (on/off-switch), блокирующего выполнение всех действий (внешних и внутренних). • Поведение генеративной машины, когда есть разрешённое действие,поведение реактивной машины при последовательном нажатии одного и того же набора кнопок. Все переключатели в положении offкнопка «лишнего» действия в реактивной машине (добавляется в алфавитL). • Поведение генеративной машины в параметризованной машинебыстрое нажатие той же самой кнопки после выполнения внешнего действия. • Поведение параметризованной машины модификация генеративной машины, когда переключатели автоматически сбрасываются в положении off при выполнении внешнего действия.
B b a c A C Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Управление и наблюдение внешних действия Наблюдение внешних действий Генеративная машина. Выполняемое внешнее действиеa высвечивается на дисплее. При наблюденииaaa… дисплей мигает: гаснет на времяt0. ... a a b c Реактивная машина. Кнопка выполняемого действияa «проваливается». Машина приостанавливается и для продолжения нужно отжать кнопку. ... Параметризованная машина: R2L. Выполняемое внешнее действиеa высвечивается на дисплее. При нажатии следующей (может быть той же самой) кнопки дисплей гаснет. ... a
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Управление и наблюдение внешних действия Переключение без наблюдений Без приоритетов выполнимость -действий не зависит от разрешённых внешних действий (кнопок и переключателей). Поэтому нет смысла переключать кнопки без наблюдения: это не увеличивает мощность тестирования. Если была нажата кнопка “P”, а потом без наблюдения нажата другая кнопка “Q”, то в этом интервале времени машина могла выполнять только -действия. Но эти -действия она могла бы выполнять и в том случае, когда вместо кнопки “P” сразу нажималась кнопка “Q”. Любое поведение, которое можно наблюдать в первом случае, можно было бы наблюдать и во втором случае. Если приоритеты есть, переключение без наблюдения нужно для полноты тестирования, т.к. различные множества разрешённых действий по-разному влияют на выполнение -действий, что ведёт к внешне различимым поведениям.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Управление и наблюдение внешних действия Тестовые истории и трассы наблюдений Тестовая история = последовательность нажимавшихся кнопок и наблюдаемых внешних действий. Трасса наблюдений, наблюдаемая трасса или просто трасса = подпоследовательность наблюдений. Всё, что можно узнать при тестировании о реализации, сводится к множеству всех тестовых историй. Если есть приоритеты, недостаточно трасс, нужны истории. Без приоритетов выполнимость действия не зависит от того, какие ещё действия разрешены. Если действиеzP наблюдалось после нажатия кнопки “P”, то оно могло наблюдаться после нажатия любой кнопки “Q” такой, чтоzQ. Без приоритетов множество тестовых историй однозначно восстанавливается по множеству трасс наблюдений.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Управление и наблюдение внешних действия Трассовые модели Трассовая реализация = трассовая модель реализации = множество наблюдаемых трасс реализации. Реализации различимы при взаимодействии с точностью до их трассовой модели. В LTS: трасса = последовательность внешних действий, которыми помечены переходы маршрута, начинающегося в начальном состоянии (символ пропускается). Трассовая спецификация = трассовая модель спецификации = множество трасс LTS-спецификации. Трассовая спецификация однозначно определяет множество разрешаемых трасс, но может с ним не совпадать!
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Управление и наблюдение внешних действия Тестирование до первой ошибки Трассовая модель (как реализации, так и спецификации) является деревом (prefix-closed): если наблюдается некоторая трасса, то любой её префикс также наблюдается. если разрешается некоторая трасса, то любой её префикс также разрешается. Если после наблюдения разрешённой трассынаблюдается внешнее действиеz, а трассаz запрещена, то тестирование можно завершить с вердиктом fail, поскольку любое продолжениеzтакже запрещено. Более того, как мы увидим ниже, продолжение тестирования в этой ситуации может быть опасным.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst • Введение • Реализация как модель тестируемой системы • Управление и наблюдение внешних действий • Остановка машины и наблюдение отказов • Протокол взаимодействия и безопасное тестирование • Гипотеза о безопасности и безопасная конформность • Примеры тестовых семантик и отношений конформности • Разрушение • Дивергенция • Лампочки меню и трассы готовности • Репликация и симуляции • Глобальное тестирование • Бесконечные и отрицательные наблюдения • Приоритеты • Заключение
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Остановка машины и наблюдение отказов Остановка машины и отказы Если в машине нет выполнимых действий, она останавливается. Если остановку можно обнаружить, имеем новый вид наблюдения: машина стоит в состоянии, в котором не выполнимо ни одно действие, а разрешённые действия образуют множествоPL. Такое множествоPL называется отказом (refusal set). Трассы наблюдений (тестовые истории) = последовательность действийzLи наблюдаемых отказовPL(и кнопок). Трассы с отказами (failure traces).
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Остановка машины и наблюдение отказов Отказы в машине без приоритетов Остановка возможна только тогда, когда нет-активности. LTS останавливается в состоянииs, где нет-переходовs; такое состояние называется стабильным. ОтказP может наблюдаться в таком стабильном состоянииs, в которомzPsz. Переключение без наблюдения: наблюдения - это внешние действия и отказы. При отказе полезно нажимать другую кнопку, поскольку та же самая кнопка вызовет наблюдение того же самого отказа. Восстановление тестовых историй по трассам с отказами: отказP можно наблюдать только при нажатии кнопки “P”. Трассы с отказами в LTS: в каждом стабильном состоянии добавить переходы-петли по отказам в этом состоянии.
a c b Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Остановка машины и наблюдение отказов Зелёная лампочка ... ... a b c Первый режим: Зелёная лампочка горит, пока машина не стоит. • Второй режим: Зелёная лампочка горит при выполнении -действий и не горит при выполнении внешних действия. • Остановка = зелёная лампочка погасла и • реактивная машина: кнопка не провалилась, • генеративная машина: дисплей погашен достаточно долго: t>t0. Отказ вычисляется как множество действий, написанных на переключателях в положении onв генеративной машине, или на тех кнопках, которые нажимает оператор в реактивной машине.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Остановка машины и наблюдение отказов Зелёная лампочка: второй режим • Мощность тестирования больше: есть отдельное наблюдение внутренней активности, обозначаемое. • Сами -действия неразличимы между собой, в том числе неразличимы одно -действие и конечная последовательность -действий. • Если наблюдение внутренней активности обозначить, то различаются трассыzz` иzz`, а также трассыzP иzP, гдеz,z`L иPL, которые в первом режиме не различимы. • Практичность зависит от условий взаимодействия. • Например, можно «подсмотреть», тратит ли программа процессорное время, изменяет ли переменные или файлы. • Но, если взаимодействие удалённое, то такой возможности нет. Хотим ли мытрактовать как ошибку наличие или отсутствие конечной -активности между внешним действием (началом работы) и следующим внешним действием или отказом (концом работы)?
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Остановка машины и наблюдение отказов Другие способы обнаружения остановки • По тайм-ауту: время выполнения внешнего действия и конечной -активности ограничено сверху. Если истекает тайм-аути нет внешних действий и дивергенции, то это остановка. • Системы ввода-вывода: тайм-аут на приём реакций. • Отказ =стационарность= множество всех реакций. • В LTS наблюдается в стационарном состоянии (quiescent state) = стабильном состоянииs, где!yL s!y. • Достоверное «уведомление о вручении» при передаче стимула ?x, которое должно придти за ограниченное время. • Отказ {?x}=блокировка стимула ?x(input refusal).В LTS {?x} наблюдается в стабильном состоянии, гдеs?x. • Тайм-аут не различает дивергенцию и остановку. • Реализация сама сообщает об остановке. • Стационарность: достоверное «уведомление об отсутствии реакций». • Блокировка стимула: достоверное «уведомление о невручении».
B C A Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Остановка машины и наблюдение отказов Параметризованная машина: -наблюдение Абстрагируемся от способа обнаружения остановки. Если обнаруживается остановка, то это делает сама машина и высвечивает на дисплей специальный символ. LTSтеста (окружения):добавляем в алфавит символи определяем-переходыtt`. ...
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Остановка машины и наблюдение отказов Композиция с -переходами При композиции -переход выполним тогда и только тогда, когда никакие другие переходы не выполнимы. Для машины без приоритетов добавляется правило вывода: Deadlock&tt`stst`, где Deadlock=defs&t&zLM(sztz). • Для замкнутой системы <реализация-тест>M=LиLM=. • В состоянииs любой отказP{zL|s&sz}. • В машине, параметризованной семействомR, должно быть такжеPR.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Остановка машины и наблюдение отказов Наблюдаемые и ненаблюдаемые отказы • Два семейства кнопок: ((R))((Q))=L,RQ=. • УдалениеQ:=Q\Rне изменяет мощность тестирования. • RL –наблюдаемые отказы,QL –ненаблюдаемые отказы. • R/Q-машина определяет R/Q-семантику взаимодействия. • R-трасса = трасса с отказами только из семействаR. • R-модель = множество R-трасс LTS–модели. • 2L/-машина – тотальная,2L-модель - тотальная. • R-проекция тотальной моделиT:TR=T(LR)*. • R-модели =R-проекции тотальной модели. • I – тотальная модель реализации. • S – тотальная модель спецификации. • Однозначно определяет (но ) множество разрешённых трасс.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst • Введение • Реализация как модель тестируемой системы • Управление и наблюдение внешних действий • Остановка машины и наблюдение отказов • Протокол взаимодействия и безопасное тестирование • Гипотеза о безопасности и безопасная конформность • Примеры тестовых семантик и отношений конформности • Разрушение • Дивергенция • Лампочки меню и трассы готовности • Репликация и симуляции • Глобальное тестирование • Бесконечные и отрицательные наблюдения • Приоритеты • Заключение
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Протокол взаимодействия и безопасное тестирование Тупик при взаимодействии • Тупик при остановке машины не возникает в двух случаях: • 1)Окружение может продолжить независимо от наблюдений. • Оператор переключает кнопку без наблюдений. • LTS-окружение в состоянииs, гдеs. • 2) Возникает наблюдаемый отказ и окружение реагирует на него. • Оператор наблюдает отказ и нажимает (другую) кнопку. • LTS-окружение в состоянииs, гдеsиs. • Нормальное завершение взаимодействия = тупик в терминальном состоянии окружения (нет переходов). • Оператор не нажимает кнопки: все внешние действия запрещены, никаких наблюдений больше не будет. • LTS-окружении в терминальном состоянии. В тесте вердикт passили fail. Ошибка взаимодействия= тупик в нетерминальном состоянии окружения:окружение хочет продолжить, но это невозможно. Машина останавливается и возникает ненаблюдаемый отказ. Ошибка взаимодействия не проверяема при тестировании.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Протокол взаимодействия и безопасное тестирование Безопасное тестирование • Кнопка “P”безопасна в реализации после трассы, если нажатие кнопки не может вызвать ошибку взаимодействия. • P safe in I after =def PRPI. • Протокол взаимодействия= правило, определяющее, • какиеQ-кнопки после каких трасс безопасны, а какие опасны. • R-кнопки безопасны после любой трассы. • Предусловие тестирования: i-аягипотеза о безопасности: • Если окружение взаимодействует с реализацией поi-ому протоколу, то не возникает ошибок взаимодействия. • i-ый класс безопасно-тестируемых реализаций. Тестирование безопасно, если реализация отвечает i-ой гипотезе о безопасности, а тест соблюдает i-ый протокол.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Протокол взаимодействия и безопасное тестирование Безопасное тестирование и конформность • Конформность = вложенность наблюдаемых трасс реализации во множество трасс, разрешаемых спецификацией. • Конформность параметризуется i-ым протоколом взаимодействия: • Реализации только из i-го класса безопасно-тестируемых. • Не все трассы реализации, наблюдаемые на R/Q-машине, а те, • что наблюдаются при взаимодействии по i-ому протоколу. • Разрешённые трассы – не все трассы конформных реализаций, а только наблюдаемые при безопасном тестировании. Будем считать, что для тотальнойспецификацииSмножество разрешённых трасс в любом протоколе– это R-проекцияSR. Остальные трассы конформных реализаций, не наблюдаемые при безопасном тестировании, определяются протоколом. • Ограничимся протоколами, которые следуюттрём правилам.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Протокол взаимодействия и безопасное тестирование Три правила протокола взаимодействия Все R-кнопки безопасны после любой R-трассы. Все трассы изSRмогут быть проверены при тестировании. zSRPRQzPи кнопка“P” безопасна после. Это правило позволяет проверить,zIилиzI. Если после кнопки “P” наблюдаемz, то тестирование можно продолжить, чтобы сравнить поведение реализации и спецификации после трассыz. Если наблюдаем действие (или отказPR)z`иz`S, то это ошибка. Протокол не налагает на реализациюлишних ограничений. Если кнопка не объявлена безопасной по правилам 1 и 2, она опасна и, по гипотезе о безопасности, опасна в реализации. В частности, еслиPQиzPzS, то кнопка “P” опасна после трассыпо любому протоколу. Если бы протокол объявил безопасной эту кнопку, все безопасно-тестируемые реализации с трассойоказались бы неконформными.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Протокол взаимодействия и безопасное тестирование «Лишние» трассы конформных реализаций • Кроме трассSRI, в конформной реализацииIмогут быть «лишние» трассы. • 1) Последопустим ненаблюдаемый отказPQ,если • кнопка “P” опасна послеи не нарушены гипотеза о безопасности и конформность: для безопасной после кнопки “Q”u: (uQ\P u=QR)& uIS. • 2) Допускается любая трассаz, где внешнее действиеz • разрешается только кнопками, опасными после. • Причина: опасные кнопки не нажимаютсяв безопасном тестировании, и такие продолжения трассыне проверяемы. • Эти «лишние» трассы реализации не могут наблюдаться при безопасном тестировании по данному протоколу.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst Протокол взаимодействия и безопасное тестирование Пример В качестве примера рассмотрим R/Q-машину сR=иQ={{a,b},{b,c}} и спецификациюSR={,b}. S b Возможны три типа протокола взаимодействия в зависимости от того, какие кнопки считаются безопасными в самом начале: 1) только “{a,b}”, 2) только “{b,c}”, 3) любые. РеализацияI безопасно-тестируема, если: 1) bI aI, 2) bI cI, 3) bI aI & cI. a a a b b b c c c Реализация конформна, если: 1) bI & aI, 2) bI & cI, 3) bI & aI & cI. В этом примере в конформной реализации вместе с любой непустой трассойможет быть любое продолжение.
Игорь Бурдонов, Александр Косачев, Виктор Кулямин ИСП РАНRedVerst • Введение • Реализация как модель тестируемой системы • Управление и наблюдение внешних действий • Остановка машины и наблюдение отказов • Протокол взаимодействия и безопасное тестирование • Гипотеза о безопасности и безопасная конформность • Примеры тестовых семантик и отношений конформности • Разрушение • Дивергенция • Лампочки меню и трассы готовности • Репликация и симуляции • Глобальное тестирование • Бесконечные и отрицательные наблюдения • Приоритеты • Заключение