Научная статья на тему 'Автоматизированное тестирование программных комплексов оптического моделирования'

Автоматизированное тестирование программных комплексов оптического моделирования Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
177
37
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММНЫЙ КОМПЛЕКС ОПТИЧЕСКОГО МОДЕЛИРОВАНИЯ / КОМПЬЮТЕРНАЯ ГРАФИКА / АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ ПРОГРАММ / АВТОМАТИЗАЦИЯ ПРОГРАММИРОВАНИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Денисов Е. Ю.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Автоматизированное тестирование программных комплексов оптического моделирования»

Автоматизированное тестирование программных комплексов

оптического моделирования

Е.Ю. Денисов

Институт прикладной математики им. М.В.Келдыша РАН, Москва

e-mail: eed@ spp.keldysh. ru

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

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

Введение

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

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

• Частые выпуски новых версий;

• Ограниченные ресурсы и время.

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

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

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

Покомпонентное тестирование

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

I! " U || ТЛ

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

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

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

--- Run base\test\bin\test_base.exe

Used virtual memory: 60 MB Virtual memory limit: ¿096 MB Free available physical memory: 4036 MB Total available physycal memory: 4036 MB Memory allocation result:

Cur size Max size Class name

0HB 0HB UNNAMED

SUCCESS!

--- Run base\plugin\test\bin\test_plugin.exe

SUCCESS?

--- Run base\fields\testf\bin\testf.exe

SUCCESS!

Check Testf.iof... Check Copyf.iof...

--- Run base\fields\test_units\bin\units.exe

SUCCESS!

--- Run base\iof\testh\bin\testh.exe

SUCCESS!

Check Testl00.iof... Check Copyl00.iof...

Рис. 1. Тестирование подсистем памяти и ввода-вывода

--- Run math\test\bin\math_test.exe

*~*Testing SSE version of Cos on [0,PI/2]* 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 math\perf\test\bin\math_perf.exe

Number of iterations 262144000

Рис. 2. Тестирование математических библиотек

Подсистема сравнения изображений обеспечивает качественный и количественный анализ различий в сравниваемых изображениях. Ниже приведен пример работы этой подсистемы: сравниваемое изображение (рис. 3), разница в графическом представлении для последующей оценки разработчиком (рис. 4), количественные данные: абсолютные и относительные ошибки в различных цветовых пространствах, гистограмма ошибочных пикселей (рис. 5).

Рис. 3. Исходное изображение

Рис. 4. Найденные отличия

of intensities

ITested - Pattern!

RED 0.49 0.0047

GREEN 0.48 0.0052

BLUE 0.47 0.0056

Total absolute RGB-error (L2): 1.44 Average relative RGB-error (L2): 0.0052 Average error in Lab space (CIE 1976) = 3.6450 Average error in Lab space (CIE 1995) = 1.3240

Histogram of differences DIFFER RGB % ( pixs) RED X ( pixs) GREEN % ( pixs) BLUE % ( pixs)

73.0 (54022) 25.2 (18645) 1.7 ( 1272) 0.1 ( 85) 0.0 ( 1)

80.2 (59383) 18.5 (13696) 1.2 ( 898) 0.1 ( 47) 0.0 ( 1)

81.4 (60223) 17.3 (12834) 1.2 ( 906) 0.1 ( 61) 0.0 ( 1)

81.9 (60599) 16.8 (12473) 1.2 ( 888) 0.1 ( 64) 0.0 ( 1)

Maximum difference: 4

Allowed difference: 3

Image resolution: 225 x 329

Pixels below allowed difference: 100.0 (74024) Pixels above allowed difference: 0.0 ( 1)

Images of differences generated: VES

Рис. 5. Количественное представление отличий

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

Тестирование готового программного продукта

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

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

Рис. 6. Тестовая сцена для алгоритмов наложения текстур

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

■ Test dialog for MCGraph and MCGraphControl

Accuracy I 100-

60-

20-

] 10 20 30 40 50 GO Time (s)

Graph function kind: НЯ!ВЯ19Д|Е1И v

Requested accuracy: |l0 | Achieved accuracy: |l00 |

Estimated time: 0 | Time limit: |60

f Refresh axes Run l Stop | [ Reset ]

1_1

■ Functional and discrete series BE

- Discrete] Щ' Add/delete plots

- fcabsfsij 2.0 [ Delete 1 I Add I 1

\ 15 Add/delete nodes

\ ^ vx а л t Ш |0.Q

\ \ / л/ и V: jftp 1

——-—*x^**^ / \ V /v v 1 1 Delete ]i |i Add 1

-2.0 -1® -l'.0 -¿5 \ / -0.5- V -1.Б--2.0- l'o 1/5 2.0 1 1 Spline node's interpolation

Рис. 8. Тест подсистемы отображения графиков

Рис. 9. Тест подсистемы визуализации

Рис. 7. Тест диалога прогресса вычислений

Параллельное тестирование

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

Заключение

Предлагаемая система тестирования была использована в реализации нескольких систем синтеза реалистичных изображений и оптического моделирования, в частности, для систем, представленных в [1], [2], [3], [4], [5]. Использование описанного подхода позволило ускорить разработку и реализацию этих систем и одновременно снизить трудозатраты на их создание, тестирование и сопровождение.

Список литературы

1. Б.Х. Барладян, А.Г. Волобой, В. А. Галактионов, Л.З. Шапиро. Интерактивная визуализация результатов моделирования освещенности // "Информационные технологии в проектировании и производстве", № 4, 2011, с.58-61.

2. Д.Д.Жданов, И.С.Потемин, В.А.Галактионов, Б.Х.Барладян, К.А.Востряков, Л.З.Шапиро. Спектральная трассировка лучей в задачах построения фотореалистичных изображений // "Программирование", № 5, 2011, с. 13-26.

3. А.Г.Волобой, С.В.Ершов, С.Г.Поздняков. Интерактивное моделирование автомобильных красок // Труды 22-й Международной Конференции по Компьютерной Графике и Зрению, Московский Государственный Университет им. М.В.Ломоносова, 01-05 октября 2012 года, с.242-247.

4. Ignatenko A., Barladian B., Dmitriev K., Ershov S., Galaktionov V., Valiev I., Voloboy A. A Real-Time 3D Rendering System with BRDF Materials and Natural Lighting // Proc. 14th International Conference on Computer Graphics and Vision GraphiCon-2004, Russia, Moscow, September 6 -10, 2004, p. 159-162.

5. Барладян Б.Х., Волобой А.Г., Вьюкова Н.И., Галактионов В.А., Дерябин Н.Б. Моделирование освещенности и синтез фотореалистичных изображений с использованием Интернет технологий // "Программирование", № 5, 2005, с.66-80.

i Надоели баннеры? Вы всегда можете отключить рекламу.