научная статья по теме ТЕСТИРОВАНИЕ СИСТЕМ МОДЕЛИРОВАНИЯ ОСВЕЩЕННОСТИ И СИНТЕЗА РЕАЛИСТИЧНЫХ ИЗОБРАЖЕНИЙ Математика

Текст научной статьи на тему «ТЕСТИРОВАНИЕ СИСТЕМ МОДЕЛИРОВАНИЯ ОСВЕЩЕННОСТИ И СИНТЕЗА РЕАЛИСТИЧНЫХ ИЗОБРАЖЕНИЙ»

КОМПЬЮТЕРНАЯ ГРАФИКА

УДК 681.3.06

ТЕСТИРОВАНИЕ СИСТЕМ МОДЕЛИРОВАНИЯ ОСВЕЩЕННОСТИ И СИНТЕЗА РЕАЛИСТИЧНЫХ

ИЗОБРАЖЕНИЙ *

© 2014 г. А.Г. Волобой, Е.Ю. Денисов, Б.Х. Барладян

Институт прикладной математики им. М.В.Келдыша РАН 125047 Москва, Миусская пл., 4 E-mail: voloboy@gin.keldysh.ru, obb@gin.keldysh.ru Поступила в редакцию 15.01.2014

В работе описаны технологии тестирования программных комплексов оптического моделирования и реалистичной компьютерной графики, разрабатываемых в НИМ им. М.В. Келдыша РАН. Сложность разрабатываемых продуктов (состоящих из порядка 500 программных компонент), необходимость выпуска большого числа версий (50-70 версий в год) потребовали разработки собственной системы тестирования, позволяющей эффективно выявлять ошибки и исправлять их до выпуска продукта. Тестирование продуктов компьютерной графики имеют свою специфику, на которой и сделан акцент в работе.

1. ВВЕДЕНИЕ

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

Наряду с классическими подходами к тестированию, заложенными еще Майерсом [1], тестирование комплексов моделирования освещенности и построения реалистичных изображений имеет свою специфику. Отметим два наиболее сложных аспекта этого тестирования:

• проверка правильности моделирования физических явлений;

* Работа поддержана грантами РФФИ № 12-01-00560, 13-01-00454, а также фирмой Integra Inc. (Япония).

• интерактивность программных комплексов, которая затрудняет автоматизацию тестирования.

Системы реалистичной визуализации стремятся к все большей достоверности генерируемых изображений. В наших продуктах базовой технологией является двунаправленная Монте-Карло трассировка лучей, основы которой описаны в [2]. Однако для повышения точности результатов мы были вынуждены расширить ее спектральным моделированием, реализовать поддержку таких сложных явлений как поляризация и флюоресценция света. Верификация соответствующих алгоритмов становится самостоятельной непростой задачей.

Одна из попыток серьезного подхода к вопросу тестирования программ реалистичной компьютерной графики опубликована в [3]. В статье авторы предложили достаточно большой набор аналитических тестов, позволяющих проверить то, что алгоритмы, реализованные в программе, подчиняются законам оптики. Также были описаны и комплексные визуальные тесты, сравнивающие полученные итоговые изображения с фотографией. Авторы привели пример использования предложенных подходов для алгорит-

мов визуализации анизотропных кристаллов.

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

Авторами были протестированы десятки программных пакетов, позволяющих в том или ином виде записать и воспроизвести действия пользователя в интерактивной программе. Среди них: Autolt [4], Test Automation FX [5], TestComplete [6] и другие. К сожалению, обнаруженные недостатки не позволили полноценно использовать для тестирования создаваемых программных комплексов ни один из этих пакетов. Среди этих недостатков: запись действий пользователя в абсолютных координатах, что не позволяет воспроизводить записанную сессию на другом компьютере с другим разрешением экрана; неспособность распознать UI элементы пакета Qt, который используется нами при создании программного продукта; невозможность записи сессии в реальном времени (сценарий должен быть предварительно написан на специальном языке); отсутствие поддержки новейших версий Windows, а также ошибки в работе (иногда приводящие к сбою всей OS). Такая ситуация потребовала создания собственного средства записи и воспроизведения действий пользователя.

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

• Много разнородных комплексов имеют в своей основе общие программные компоненты (например, моделирования того или иного оптического феномена);

В частности, предлагаемые решения применяются для тестирования десяти различных программных комплексов; суммарная частота выпуска новых версий - 50-70 версий в год; общее количество программных компонент - более 500; коллектив разработчиков состоит из 15 человек.

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

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

2. РЕГРЕССИОННОЕ ТЕСТИРОВАНИЕ 2.1. Покомпонентное т,ест,ирование

После каждого изменения программной компоненты проводится как непосредственно содержательное тестирование вновь добавленной функциональности, так и её регрессионное автоматическое тестирование. Результат вычисления сравнивается с ожидаемым, и выдается заключение "тест пройден - не пройден". В последнем случае разработчиком исследуется ожидаемый и реальный вывод и производится исправление выявленных ошибок.

Для обеспечения автоматизации тестирования потребовалось создать несколько систем для сравнения результатов. Поскольку результатами работы различных программных компонент являются как вычисленные данные, так и изображения, потребовалось создать подсистемы сравнения и анализа для каждого из этих типов данных. На рис. 1 приведён пример автоматического регрессионного тестирования компоненты аппаратно-независимой реализации математических библиотек; в процессе тестирования

— Run math\test\bin\niath_test.exe ***Testing SSE version of Cos on E0,PI/21*** The precision is 1.35103e-007 The acceleration is 14.401666 »«•Testing SSE version of Cos on [0, PI]*** The precision is 5.36442e-007 The acceleration is 6.695166 ***Testing SSE version of Sin on (0, PI]*** The precision is 1.02073e-006 The acceleration is 7.321569 ***Testing SSE version of flrcsin*** The precision is 6.76808e-005 The acceleration is 17.923254 ««»Testing SSE version of flrccos««* The precision is 6.77109e-005 The acceleration is 16.912662 •«"Testing the Binary search...«** The acceleration is 2.564422 SUCCESS?

--- Run rnath\perf\test\bin\math_perf.exe

Number of iterations 262144000

Рис. 1. Пример автоматического тестирования математической компоненты.

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

2.2. Сравнение изображений

Подсистема сравнения изображений используется для сравнения результатов работы, как отдельных подсистем, так и для готового программного продукта в целом, поскольку наиболее типичным результатом работы систем реалистичной компьютерной графики являются изображения. Это мшут быть как обычные изображения, предназначенные для восприятия человеком, так и результаты моделирования, полученные с помощью виртуальных измерительных приборов. В разрабатываемых нами системах оба тина изображений получаются в результате моделирования в физических единицах в динамическом диапазоне чисел с плавающей точкой. Для представления результатов человеку изображения преобразуются в 1ШВ-проетранетво монитора с помощью различных операторов сжатия динамического диапазона [7], но сравнение всегда производится в исходных физических единицах.

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

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

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

Для дальнейшего прочтения статьи необходимо приобрести полный текст. Статьи высылаются в формате PDF на указанную при оплате почту. Время доставки составляет менее 10 минут. Стоимость одной статьи — 150 рублей.

Показать целиком