Тестирование

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

Наши инженеры используют обширный набор инструментов – от shell script до Java и XML, призванный автоматизировать процесс тестирования, насколько это возможно. Автоматизированное тестирование включает в себя функциональное, регрессионное, модульное, юнит. Мы пишем инструментарий для тестирования сами и используем готовые инструменты — TeamCity, Hudson, Jenkins.

Создание тестовых сюит

В компании накоплен большой опыт разработки тестовых сюит и реализованы следующие проекты:

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

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

Система тестирования Simplify

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

Simplify активно используется в нескольких проектах компании. База тестов постепенно расширяется.

Анализ производительности и стресс-тестирование

Такая работа проводится постоянно в разных проектах. Поиск «узких мест» и оптимизации – это наш «конек». Так, в ходе работ по проекту "Эльбрус" регулярно производится анализ производительности Java-приложений конечных пользователей, в результате чего вырабатываются рекомендации по оптимизации кода приложений для работы на этой отечественной платформе.

Реализована система стресс-тестирования веб-приложений, с помощью которой было выполнено, например, нагрузочное тестирование системы управления активами организаций PREMIS, разработанной ПАО НИПС.

Анализатор безопасности Java-программ

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

Тестирование и сопровождение библиотеки libsunper

В период работ с компанией Sun Microsystem команда "УНИПРО" выполняла сопровождение библиотеки libsunper – высокопроизводительной библиотеки математических функций, разработанной заказчиком для своих процессоров. Наши инженеры разработали тестовую базу для функций линейной алгебры и быстрого преобразования Фурье, которая гарантировала полное тестовое покрытие и проверку точности вычисления. Кроме того, был разработан инструментарий для автоматизации процесса тестирования и работы с ошибками. Этот инструментарий также поддерживал распределенную работу разработчиков и тестировщиков.