В коммерческих проектах время на создание имитационной модели (ИМ) сильно ограничено, а тестирование зачастую проводится только перед передачей ИМ заказчику. Такой подход кажется разумным, так как по ходу проекта выявляются особенности решаемой задачи, о которых не было известно в начале проекта, и требования к модели постоянно меняются. Если в таких условиях создавать тесты параллельно с разработкой, то они быстро потеряют свою актуальность. Возможно, именно этот факт привел к тому, что в популярных средах разработки ИМ нет инструментария для тестирования. С другой стороны, при поддержке и развитии ИМ в нее нередко приходится вносить изменения, которые могут нарушить проверенную ранее функциональность. Это особенно актуально для сложных моделей, которые состоят из десятков взаимодействующих логических элементов (например, единиц оборудования различного типа).
Трудозатраты на поддержку корректности сложных ИМ в длительных проектах становятся значительными. Тестирование, выполняемое параллельно с разработкой, является основным способом контроля и снижения этих затрат. Автоматизация тестирования способна еще более снизить затраты, делая продолжительные проекты с ИМ экономически выгодными для исполнителя.
О том, как реализовать тестирование в коммерческой разработке, написано немало книг, и в области ИМ эта задача тоже не нова. Так, например, в публикациях конференции WinterSim 1995 года затрагиваются аспекты автоматизированного тестирования ИМ и предлагаются некоторые решения. К решению задачи тестирования ИМ в среде AnyLogic уже прибегали, но удовлетворительного решения для автоматизации тестирования предложено не было. Данная статья предлагает конфигурацию ИМ для организации ее тестирования в AnyLogic.
Предложенная структура проекта ИМ позволяет разработчику использовать для тестирования в AnyLogic технологию Junit, признанную стандартом в мире разработки программного обеспечения. При этом обеспечивается возможность запуска созданных тестов с визуализацией, что позволяет лучше понимать логику исполнения модели. Тестирование является основным способом контроля и снижения затрат на поддержку и развитие имитационных моделей.