Сравнение с существующими подходами
Нам известен только один подход к автоматизированному построению тестовых программ для MMU, использующий формальные спецификации подсистемы, — DeepTrans, разработка исследовательской лаборатории IBM в г. Хайфе (IBM Haifa Research Lab) . Эта методика нацелена на тестирование части подсистемы, отвечающей за преобразование виртуальных адресов.
В DeepTrans используется язык спецификации, специально созданный для моделирования механизмов трансляции адресов. В спецификации процесс преобразования адреса представляется в виде ориентированного ациклического графа. Вершины графа соответствуют отдельным стадиям трансляции адреса, ребра — переходам между стадиями. Из каждой вершины может выходить несколько дуг, каждая из которых помечена своим условием перехода.
Подход DeepTrans предполагает ручную разработку шаблонов тестовых программ, но в шаблонах можно указывать тестовые ситуации, связанные с трансляцией адресов, извлеченные из спецификации. На основе шаблонов генератор Genesys-Pro путем разрешения ограничений строит набор тестовых программ [6, 7, 8].
Сравнение DeepTrans (в паре с генератором Genesys-Pro) с используемым нами подходом (MicroTESK) приводится в таблице 1.
Таблица 1. Сравнение DeepTrans с MicroTESK
Поддержка пользовательских шаблонов тестовых программ | Genesys-Pro предоставляет развитый язык описания шаблонов тестовых программ | MicroTESK позволяет описывать лишь сравнительно простые шаблоны тестовых программ |
Поддержка автоматической генерации тестовых шаблонов | Автоматическая генерация тестовых шаблонов не поддерживается | Поддерживается автоматическая генерация несложных тестовых шаблонов |
Поддержка описания тестовых ситуаций | Поддерживается | Поддерживается |
Поддержка описания зависимостей по адресам | Специальной поддержки нет, зависимости вручную описываются в тестовом шаблоне | Поддерживается описание сложных зависимостей по адресам |
Поддержка моделирования подсистемы управления памятью | DeepTrans предоставляет специальный декларативный язык описания механизмов трансляции | В MicroTESK реализована библиотека классов на языке Java, моделирующая устройства MMU |
Поддержка генерации самопроверяющих тестов | Поддерживается | Поддерживается |
Как видно из сравнения, в DeepTrans упор сделан на ручную разработку шаблонов тестовых программ, но при этом разработчику тестов предоставляются развитые средства описания шаблонов. В нашем подходе тестовые шаблоны генерируются автоматически, систематическим образом. Кроме того, в нашем подходе поддерживается описание сложных зависимостей по адресам.