ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Journal influence

Higher Attestation Commission (VAK) - К1 quartile
Russian Science Citation Index (RSCI)

Bookmark

Next issue

1
Publication date:
24 December 2024

The article was published in issue no. № 3, 2007
Abstract:
Аннотация:
Author: () -
Ключевое слово:
Page views: 10181
Print version
Full issue in PDF (2.31Mb)

Font size:       Font:

Представленная около пяти лет назад методология управляемой тестами разработки сейчас достаточно широко и успешно применяется на практике при создании программного обеспечения в различных предметных областях (см.: К. Бек. Экстремальное программирование. Разработка через тестирование. СПб. 2003). Однако существует ряд приложений, где эффективность, да и сама возможность ее использования неочевидны и требуют отдельных исследований, например, в задачах разработки пользовательского интерфейса, визуализации данных, хранения и обработки больших объемов информации, компьютерного имитационного моделирования. Источниками проблем, потенциально ограничивающими возможности применения методологии управляемой тестами разработки, здесь могут стать:

·     стохастическое поведение моделируемой системы (результаты выполнения тестов должны быть детерминированными);

·     моделирование динамических систем (тесты должны отражать не только конечный результат, но и ожидаемые изменения состояния системы);

·     большие объемы данных, значительно повышающие трудоемкость создания тестов.

Таким образом, можно говорить о необходимости разработки метода управляемого тестами имитационного моделирования, обеспечивающего требуемую степень гибкости при создании моделей сложных систем. Метод обоснован методологически и прошел практическую апробацию. На основе полученного опыта были выработаны рекомендации по применению метода управляемого тестами имитационного моделирования.

Случайности. Наличие случайных величин не оказывает серьезного влияния на процесс управляемой тестами разработки. Представление определенных факторов как случайных является отказом от их детального моделирования, поэтому структура соответствующего программного модуля обычно проста и представляет собой генерацию случайной величины по заданному закону. Создание направляющих тестов и их реализация в этом случае не представляют особых трудностей. Тем не менее, этим тестам следует уделить достаточное внимание, поскольку в ходе развития модели может возникнуть необходимость перехода к более детальному моделированию процессов, стоящих за случайными факторами.

Динамика. Тесты, отражающие изменения в системе, могут быть построены на базе одного из следующих подходов.

·     Проверка факта возникновения события. Подход реализуется на базе механизмов оповещения (например, Announcements в современных средах Smalltalk) и удобен для описания отдельных событий в системе.

·     Анализ протокола. Подход более удобен для описания сложных процессов, включающих в себя множество событий. Задействованные объекты должны протоколировать (сами или с помощью специального компонента) интересующие разработчика события. Проверка осуществляется путем сравнения протоколов, представленных в виде набора объектов, характеризующих отдельные события.

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

Большие объемы тестовых данных. Эта проблема в первую очередь связана с динамикой, так как при создании тестов требуется описать состояние системы для значительного количества моментов модельного времени. Ограничить рост объемов данных, требующихся при создании модульных тестов, можно за счет правильного применения методов управляемой тестами разработки в сочетании с принципом объектно-ориентирован­ного дизайна. Существенное внимание необходимо уделять процессу рефакторинга системы. Если удается поддерживать разбиение системы на множество несложных компонент с небольшим количеством связей между ними, модульные тесты обычно не требуют подготовки и описания слишком больших объемов данных. Важную роль здесь также играет использование техники mock-объектов.

Однако при создании приемочных тестов, описывающих поведение достаточно больших подсистем в модели, избежать проблемы часто не удается. Одним из возможных путей решения здесь является разработка средств визуального описания тестовых случаев.

Метод управляемого тестами имитационного моделирования и представленные рекомендации по его применению были успешно апробированы на практике при разработке имитационной модели наземного движения воздушных судов, а также на примере ряда более простых имитационных моделей.


Permanent link:
http://swsys.ru/index.php?id=352&lang=en&page=article
Print version
Full issue in PDF (2.31Mb)
The article was published in issue no. № 3, 2007

Perhaps, you might be interested in the following articles of similar topics: