Похожие работы
|
«asm и Refinement», см также общее понятие медиаторного преобразования в документе - страница №1/1
Вариант от 9 октября 2002.
Темы для студенческих работ
-
Преобразования уровней абстракции программ
-
Теория
-
Предложить общую концепция преобразования уровня абстракции для алгоритмов (например, на основе универсальной модели ASM1, см. Работы Boerger’а и др. на тему «ASM и Refinement», см. также общее понятие медиаторного преобразования в документе ИББ).
Концепция должна узаконивать сложившуюся практику оформления преобразований уровней в виде медиаторов и допускать медиаторы общего вида.
-
Формализовать предусловия и результаты тестирование на соответствие модели при использовании преобразования уровня абстракции.
Что мы тестируем на нижнем уровне, обходя верхний автомат?
Эта проблема может рассматриваться как в общем случае, так и для разных классов преобразований уровня абстракции по отдельности.
-
Практика
-
Разработка алгоритма синхронизации состояния модельных объектов в многоуровневой тестовой системе. Практически важные примеры у нас уже есть.
-
Предложить общий алгоритм синхронизации данных в многоуровневой тестовой системе, построенной из объектов.
Обратить внимание на
-
Недопустимость проверок модельных данных объекта, пока его состояние не синхронизированно с нижним уровнем, и использования модельных ссылок, ведущих «против» реализационных.
-
Процедуру синхронизации статических данных. Похоже, что состояние класса должно синхронизовываться не позже состояния любого объекта этого класса.
-
Возможность динамического создания медиаторов, и, значит, динамического корректного включения их в систему синхронизации состояний.
-
Предложить механизм реализации в виде правил трансляции J@va Java.
-
Правила обращения с кластерами уточнения
-
Предложить алгоритм синхронизации данных в многоуровневой тестовой системе, построенной из объектов, с учетом отдельно проводимых синхронизаций в кластерах модельных объектов.
-
Предложить структуру тестового набора, учитывающую наличие спецификаций с уточнением, требующим модификации объектов-параметров.
-
Создать пример такого тестового набора.
-
Предложить механизм реализации в виде правил трансляции J@va Java.
-
Тестирование объектов с закрытым состоянием и функциональных систем
-
Теория
-
Предложить метод тестирования компонентов со скрытым состоянием на основе какого-либо способа обхода автоматной модели.
-
Определить теоретические количественные ограничения на число вызовов целевых операций и общее число операций, необходимое для тестирования по такому методу.
-
Практика
-
Предложить механизм тестирования компонента, имеющего методы с параметрами-объектами (входными и выходными), состояние которых, влияющее на поведение данного компонента, никак нельзя определить, кроме как по самому поведению.
-
Предложить механизм тестирования компонента, имеющего методы с функциональными параметрами (указатели на функции, делегаты, спец. интерфейсы и пр.) (входными и выходными), и накладывающего ограничения аксиоматического вида на эти параметры.
-
Повторное использование ранее определённых покрытий
-
Предложить правила создания спецификаций и схему тестового набора, в которой можно было бы повторно использовать покрытия, определённые в базовой или абстрактной спецификации, в наследнике или уточняющей спецификации, соответственно. Нужно уметь использовать покрытия из уточняемых/наследуемых спецификаций и расширять их, надо уметь динамически отслеживать такое расширенное покрытие в ходе теста и, предпочтительно, фильтровать тестовые данные по нему.
Схема тестового набора предпочтительна компонентная, т.е., только один компонент соответствует одному определённому покрытию. При использовании этого покрытия в других местах должен использоваться этот компонент.
-
Предложить правила создания медиаторов и схему тестового набора, в которой можно было бы использовать покрытия, определённые в медиаторах для тестирования по ним. Хорошо бы при этом уметь в медиаторах расширть определённые в спецификациях покрытия.
Схема тестового набора предпочтительна компонентная, т.е., только один компонент соответствует одному определённому покрытию, при использовании его в других местах должен использоваться этот компонент.
-
Библиотеки абстрактных спецификаций и тестов для них
-
Ввод/вывод
-
Разработать методику тестирования библиотечных компонентов ввода/вывода.
-
Разработать стандартный пакет спецификаций и тестов.
-
Образцы проектирования (patterns) и анализа.
-
Разработать возможные образцы тестирования систем, сконструированных при помощи общеизвестных образцов проектирования.
-
Библиотеки итераторов
-
Реализовать на основе технологии ATP инструмент и библиотечку для сбора покрытия кода по нескольким метрикам.
-
Статический анализ кода
-
Сделать обзор известных видов дефектов, обнаруживаемых при статическом анализе кода. В обзор надо включить способы обнаружения и, возможно, анализ области их применимости.
-
Определить виды дефектов, легко обнаруживаемых при использовании технологии ATP.
-
Определить направления расширения технологии ATP для возможности обнаружения новых видов дефектов при статическом анализе.
-
Генерация кода по неявным спецификациям
-
Предложить схему такой генерации, учитывающую разные возможности
-
Явные части спецификаций использовать, насколько это возможно
-
Выделять такие спецификации, которые легко разрешаются относительно результатов (несколько эвристических приёмов)
-
Использовать механизмы декомпозиции, генерации и обратной композиции, если возможно
-
Использовать библиотеку готовых компонент с известными спецификациями
-
Генерация документации по спецификациям
-
Предложить схему генерации документации из спецификаций на J@va, которая использовала бы формальный код для построения документации на естественном языке.
Основная задача — выявить как можно более слабые ограничения, следуя которым можно получить легко переводимые в документацию спецификации.
-
Генерация сценариев по аксиомам и алгебраическим спецификациям
-
Предложить схему такой генерации с возможностью для пользователя указывать нужный способ упрощения автомата (уменьшение числа состояний) Основная проблема — как использовать факторавтомат совместно с алгебраическими спецификациями. Скорее всего, требующееся преобразование не будет факторизацией.
-
Предложить схему такой генерации, основанную на выделении модели состояния на основе аксиом
-
Как минимизировать (в соответствии с некоторым покрытием) добавляемые в автомат (дополнительно к аксиомам и цепочкам в алгебраических спецификациях) переходы, с тем чтобы полученный автомат был обходим.
-
Автоматическое построение факторавтоматов
-
Предложить схему автоматического построения факторизованного автомата на основе спецификаций и критерия покрытия.
Основная задача здесь — выделить модель состояния из спецификаций и предикатов, определяющих покрытие. Надо определить ограничения, позволяющие делать это автоматически.
-
Тестирование различного рода автоматов.
-
Слабо детерминированные автоматы.
-
Указать точную оценку сложности алгоритмов ИБ.
-
Указать точную оценку сложности алгоритма ВК.
-
Есть ли более быстрые избыточные алгоритмы обхода слабо детерминированных автоматов.
-
Есть ли неизбыточный алгоритм обхода слабо детерминированных автоматов, работающий в среднем быстрее, чем известные нам.
-
Построить неизбыточный алгоритм обхода слабо детерминированных автоматов со взвешенными переходами, строящий путь минимального веса.
-
Слабо/сильно недетерминированные автоматы.
-
Является ли класс свободно обходимых автоматов радикалом среди неизбыточных алгоритмических подклассов всех графов. Доказано для детерминированных и слабо детерминированных.
-
Каково устройство свободно обходимых слабо/сильно недетерминированных автоматов.
По сути, нужно какое-либо их характеристическое свойство, требующее для своей проверки гораздо меньше времени, чем проверка существования обхода-Δ-продолжения любого Σ-обхода.
-
Построить оптимизированный неизбыточный алгоритм обхода свободно обходимых слабо/сильно недетерминированных автоматов.
-
Построить неизбыточный алгоритм обхода свободно обходимых слабо/сильно недетерминированных автоматов минимальной сложности в худшем случае.
-
Построить неизбыточный алгоритм обхода свободно обходимых слабо/сильно недетерминированных автоматов минимальной сложности в среднем случае.
-
Построить неизбыточный алгоритм обхода свободно обходимых взвешенных слабо/сильно недетерминированных автоматов, строящий Σ-маршрут минимального веса.
-
Автоматы с отложенными реакциями.
-
Пополнение спецификационных конструкций такими, которые облегчают спецификацию компонентов с отложенными реакциями.
Пример системы с отложенными реакциями и её спецификаций.
-
Формализация метода стационарного тестирования.
Определение и точные ограничения на автомат, допускающий стационарное тестирование.
Построение адекватно устроенной тестовой системы.
Демонстрация-пример работающей тестовой системы для стационарного тестирования.
-
Формализация серийного тестирования. Определение и точные ограничения на автомат, допускающий серийное тестирование. Можно ли с помощью серийного тестирования добиться более тонкого покрытия, чем при помощи стационарного.
Понимание стационарного тестирования как преобразования уровней абстракции.
Построение адекватно устроенной тестововй системы.
Построение алгоритма работы механизма серийного тестирования.
Демонстрация-пример работающей тестовой системы для стационарного тестирования.
-
Формализация общего нестационарного тестирования. Здесь все те же вопросы, с одним дополнением: можно ли вообще что-то оттестировать таким общим способом.
-
Покрытие путей в автоматах.
-
Общая постановка задачи покрытия множества путей в атомате. Формальная модель. Что тестируется в этом случае. Понимание такого тестирования как преобразования уровня абстракции.
Каким образом можно в описывать покрытие, определяемое множеством путей — предложения по расширению языка.
Архитектура тестовой системы подходящей для достижекния общего покрытия, определяемого множеством путей.
Алгоритмы тестирования, достигающие заданного таким образом покрытия.
Демонстрация-пример тестирования множества путей.
-
Построить неизбыточный алгоритм, проходящий все простые du-пути в атомате (переходы которого помечены символами dx и ux для некоторого набора переменных X={xi}).
То же, для минимальной сложности.
То же, для взвешенных переходов — строить обход минимального веса.
-
Композиция и декомпозиция автоматов.
-
Под этим заголовком собраны все задачи, относящиеся к специфицированию и тестированию автомата как композиции автоматов — построение спецификаций и тестов для композиции автоматов по известным спецификациям и тестам для её элементов.
Связи между элементами могут рассматриваться как статические и динамические.
Построение подходящей тестовой системы.
-
Всевозможные задачи следующего рода: вдруг тестируемый автомат можно так декомпозировать, что тестировать его как композицию будет проще (пример: тестирование двухуровневого детерминированного сильно связного автомата).
-
Теоретические основания нашего подхода к тестированию.
-
Абстрактная постановка задачи partition testing.
Есть 2 алгоритма, представленных в любой известной универсальной форме (лучше, наверно ASM).
Доказать, что существует такое конечное разбиение области определения (элемент области определения — «вход») первого, что, если результаты обоих алгоритмов на некотором входе из некоторого элемента этого разбиения совпадают (определить ...), то и на всех входах из этого элемента они совпадают, и наоборот, если на некотором входе их результаты различны, то и на любом входе из того же элемента этого разбиения они будут отличаться.
-
Определить разумные классы алгоритмов, для которых задача определения такого разбиения может быть решена автоматически.
Ясно, что она в общем случае неразрешима, так как её разрешимость влечёт разрешимость задачи эквивалентности алгоритмов, что, в свою очередь, влечёт разрешимость задачи об остановке.
-
Нагрузочное тестирование и тестирование быстродействия
-
Теория
-
Формализация задачи нагрузочного тестирования.
-
Формализация задачи тестирования быстродействия.
-
Методы нагрузочного тестирования.
-
Практика
-
Разработка методов, позволяющих определить вид зависимости показателей быстродействия нераспределенной системы от различных параметров.
-
Те же методы для распределенных систем.
-
Тестирование систем различного вида
-
Тестирование GUI
-
Методика тестирования элементов графического интерфейса на основе модели.
-
Графический генератор спецификаций, аналогичный средствам конструирования GUI.
-
Тестирование компиляторов
-
Методика построения моделей для тестирования трансформаций (в частности, оптимизаторов).
-
Тестирование протоколов
-
Методика построения моделей по одному из общепринятых форматов описания протоколов.
-
Методы обнаружения ошибок в спецификациях протоколов.
-
Тестирование бизнес-приложений (клиенты+сервер приложений (правила бизнес-логики)+СУБД)
-
Определение наиболее подверженных ошибкам мест при разработке бизнес-приложений
-
Методика построения эффективных моделей для тестирования бизнес-приложений.
Список сокращений
ASM
|
Abstract State Machine
|
http://research.microsoft.com/fse/ and/or kuliamin@ispras.ru
|
ATP
|
Attributed Tree Processing
|
demakov@ispras.ru
|
ВК
|
Виктор Кулямин
|
kuliamin@ispras.ru
|
ИБ, ИББ
|
Игорь Борисович и/или Игорь Бурдонов, Игорь Борисович Бурдонов
|
igor@ispras.ru
|
|