Опубликован: 05.03.2005 | Уровень: специалист | Доступ: платный
Практическая работа 10:

Описание автоматической генерации MSC тестов

Конструкция loop (рис. 10.5) имеет несколько форм. Наиболее общая форма - loop <n, m>, где n и m - натуральные числа. Это означает, что конструкция может быть выполнена от n до m раз. Вместо натурального числа может использоваться ключевое слово inf, обозначающее бесконечность.

Цикл

Рис. 10.5. Цикл

Оператор opt имеет структуру, аналогичную loop, но без операндов, и обозначает то же, что и оператор alt с пустой MSC в качестве второго операнда.

Одним из важных понятий в MSC является условие или состояние. Состояние - это особое событие на трассе объекта. В отличие от прочих событий, одно и то же состояние может разделяться одним, двумя и более объектами. По числу объектов на диаграмме, разделяющих некоторое состояние, различают глобальные состояния (общее для всех объектов), разделяемые состояния (разделяемые несколькими, но не всеми объектами) и локальные состояния (разделяемые единственным объектом). Если два объекта разделяют одно и то же состояние, то сопряженные события приема и посылки сообщений должны происходить либо оба до соответствующего состояния, либо оба после соответствующего состояния.

Состояние (условие)

Рис. 10.6. Состояние (условие)

Основной недостаток стандартной MSC - невозможность описать отношения данных в параметрах сообщения. Эта проблема решается с использованием некоторого расширения стандартного MSC - mMSC (macro MSC). Основные из этих расширений включают в себя:

Макроподстановки (рис. 10.7). Они позволяют создавать множество MSC-диаграмм с одинаковой структурой и разными параметрами сообщения, циклами и т. п. Макроподстановки начинаются с символа # и могут быть константами или функциями. Функции, кроме названия, содержат параметры, заключенные в скобки.

Макроподстановки

Рис. 10.7. Макроподстановки

Типы макроподстановок описываются в определенном файле, и на основе этой информации вместо них подставляются конкретные значения.

Временные ограничения служат для указания времени посылки/приема сообщения, его длительности и типа (синхронное с явно заданным моментом выполнения, асинхронное). Время может задаваться относительно начала работы (абсолютное), относительно предыдущего сообщения (относительное) или относительно метки. На рис. 10.8 сообщение M01 должно отправиться через 5 единиц времени, в течение 5 единиц после получения сообщения M00 (указано с помощью метки).

Использование времени

Рис. 10.8. Использование времени

Применение MSC-диаграмм для описания поведения моделей

Благодаря своему главному преимуществу - ясному графическому представлению, которое дает интуитивное понимание поведения описываемой системы, MSC-диаграммы широко применяются для различных целей:

  • для определения требований;
  • как спецификация интерфейсов;
  • как спецификация взаимодействия процессов;
  • как базис для генерации тестов;
  • для документации;
  • для объектно-ориентированного анализа и разработки.

Хотя изначально MSC-диаграммы предназначались для описания телекоммуникационных систем, сейчас они с успехом применяются и в других областях.

Обработка MSC-диаграмм

В случае достаточно сложных систем могут быть обнаружены ошибки, возникшие как при создании диаграммы, так и при проектировании тестируемой системы. Исправление тех же ошибок, если они будут обнаружены на более позднем этапе жизненного цикла продукта, потребует гораздо больших затрат.

Проверка MSC-диаграммы на полноту

Большинство систем или их частей можно в том или ином виде представить с помощью механизма state-машин. Тогда каждому состоянию системы на диаграмме будет соответствовать условие - конструкция condition. Для каждого события диаграммы (под событием будем понимать сообщение или действие - action) можно составить множество всех состояний, которые могут непосредственно предшествовать ему (предусловия). В этом случае проверка на полноту MSC-диаграммы будет заключаться в проверке того, все ли возможные случаи предусловий для каждого события представлены в ней. Если это не так, то, возможно, диаграмма не описывает полностью все возможные сценарии работы системы, и множество тестов, сгенерированных по этой диаграмме, будет неполным.

Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Сергей Чурбанов
Сергей Чурбанов
Тимофей Миргород
Тимофей Миргород
Беларусь, Минск
Иван Сердюковtwo
Иван Сердюковtwo
Россия, Город Урюпинск