Что пишут в блогах

Подписаться

Онлайн-тренинги

Что пишут в блогах (EN)

Разделы портала

Про инструменты

Лучшие вакансии

.
Как устроено тестирование у разработчиков КОМПАС-3D
10.10.2017 00:00

Оригинальная публикация: https://habrahabr.ru/company/ascon/blog/327582/

Недавно вышла новая версия САПР КОМПАС-3D v17, но вплоть до самого финального релиза в систему еще вносились изменения, тестирование продолжалось. О том, какие испытания проходил новый КОМПАС-3D, прежде чем попасть к пользователям, рассказывает команда КОМПАС-3D из Центра разработки АСКОН в Коломне.

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

«Долина Дали» автор Дмитрий Верба

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

Ручное тестирование

Евгений Филимонов, инженер по тестированию 3D:

Мы смотрим на КОМПАС-3D со стороны пользователя, то есть фактически проектируем сами. При тестировании какой-либо операции, к примеру, Выдавливание, мы проверяем все возможные способы её выполнения; рассматриваем варианты использования в сочетании с другими объектами: отдельно Выдавливание может работать правильно, а в массивах или исполнениях — уже нет. В общем, придумываем самые разные сценарии — у тестировщиков хорошо развита фантазия. При этом стараемся, чтобы сценарии были близки к пользовательским. Хотя иногда бывает полезно рассмотреть и экзотические случаи.



Некорректное построение скругления (кликните на изображение для увеличения).


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

Особенности новой операции По сечениям

Как это устроено: тест-планы.

Когда тестировщик приступает к работе, он составляет тест-план. Рассмотрим упрощенный пример — отрезок. Его можно строить по двум точкам, по длине и углу; отрезок может быть построен между объектами, в разных слоях, определенным стилем кривой. Все эти нюансы при построении отрезка, его редактировании или удалении тестировщик описывает в тест-плане. План содержит несколько частей: непосредственно функциональность (к примеру, построение по длине и углу), защита (нет лицензии — построение не выполняется), вывод на печать (при печати отрезок должен отображаться в соответствии с заданным стилем кривой) и так далее. Тест-план оформляется в виде «дерева мысли», и именно на него тестировщик ориентируется при проверке работы системы. Однако тест-план покрывает только основные сценарии, в нём невозможно предусмотреть 100% вариантов использования, т.к. их, по сути, может быть бесконечное множество.

Тестирование пользовательского интерфейса

Екатерина Родина, инженер по тестированию интерфейса:

Интерфейс — это «лицо» программы. В отличие от функциональности 2D или 3D, где тестируются конкретные операции, интерфейс приходится проверять по всей системе, т.к. КОМПАС-3D должен сохранять свое лицо при выполнении любой операции (команды), в любом из компонентов. Хороший интерфейс обеспечивает комфортное восприятие и работу в системе. Он должен выглядеть аккуратно, чтобы все тексты четко отображались на экране, иконки хорошо масштабировались. Удобство проверяется по расположению кнопок, количеству кликов, которые необходимо пройти до нужной команды.
Каждая операция формируется с помощью определенного набора элементов интерфейса — контролов. Таких элементов насчитывается около 50-ти: поле для ввода текста, поле с выпадающим списком, поле для слежения за курсором и т. д. Каждый контрол тестируется отдельно. Мы проверяем, как выглядит контрол, следит ли он за курсором, выдает ли сообщения о вводе неверного значения, работает ли с текстовым метками и выражениями. 


Ошибка: пропал текст (кликните на изображение для увеличения)

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



Цвет иконки ошибочно стал черным (кликните на изображение для увеличения)

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

С помощью «Магнитофона» осуществляется контроль не только работы, но и положения элементов интерфейса, отображаемых в текущий момент времени. В КОМПАСе очень много команд. Чтобы не искать глазами, какой элемент изменил свое положение, мы автоматизировали этот процесс. Тесты перебирают по очереди все команды, проверяя, чтобы элементы находились на своих местах.

Видео работы «магнитофона»

Как это устроено: «Магнитофон».

Программа записывает и воспроизводит действия тестировщика, сигнализируя о появлении ошибок. «Магнитофон» видит в КОМПАС всё: элементы интерфейса и объекты документов, понимает, в каком они состоянии, может ими управлять. Изначально предназначенный для тестирования пользовательского интерфейса, он удачно применяется и для проверки функциональности. Его использует большинство сотрудников разработки: тестировщики, программисты, аналитики. Для v17 — это вообще основной инструмент автоматизации тестирования. В подразделении разработки «Магнитфон» по сложности и по выделяемым на него ресурсам является вторым продуктом после КОМПАСа — без него отлаживать v17 было бы очень сложно и долго.

Автоматизированное тестирование

Алексей Чирва, руководитель группы автоматизированного тестирования:

Одно из направлений автоматизированного тестирования КОМПАС-3D — обеспечение корректности пользовательских документов, созданных в предыдущих версиях. Мы должны убедиться, что все пользовательские наработки будут вести себя ожидаемо в новой версии: к примеру, сборка не разлетится, не поменяется ее цвет, комплектация, спецификация. База документов, используемых в тестах, насчитывает более 700 000 работ. Из них формируются наборы по определенным критериям.

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



Ошибки в геометрии моделей (кликните на изображение для увеличения)

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

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

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

Сергей Бирюков, математик-программист C3D Labs:

Вышла не только новая версия КОМПАС-3D, но и новая версия геометрического ядра C3D. Обычно достижения ядра практически сразу попадают в КОМПАС-3D, мостик между ними очень короткий. Функциональность, которую мы сейчас добавляем, может быть сразу протестирована в КОМПАСе. Кроме этого, определенные методы ядра невозможно полноценно проверить без использования КОМПАСа, например, тестирование сопряжений геометрических элементов. Тестирование ядра внутри подразделения C3D Labs происходит исключительно в автоматическом режиме. Первый этап тестирования — это юнит-тесты, запускаемые в течение дня при каждой новой сборке ядра на каждой ревизии. Кроме этого, три раза в день проходят тесты из небольшого набора моделей, проверяющие построение ассоциативных видов, перестроение моделей и конвертацию из различных форматов данных. Обнаруженные ошибки чаще всего исправляются днем, чтобы к вечеру сдать максимально чистую, без поломок, ревизию (изменение кода) ядра. Ночью на внутреннем сервере запускается большое регрессионное тестирование на базе из 400 000 моделей в формате ядра c3d. И уже следующим утром всем программистам C3D Labs рассылается сообщение с итогами тестов.



Отчёт о работе АСТ (автоматической системы тестирования) ядра C3D (кликните на изображение для увеличения)


Удобство нашей системы тестирования состоит в том, что в случае неудачных результатов автоматически определяются все изменившиеся модели, и для каждой из них обнаруживается ревизия, на которой произошли изменения. Поэтому в сгенерированном утреннем письме уже содержится полный список этих моделей с указанием номера и автора ревизии, вызвавшей изменения. Если большое тестирование прошло без ошибок, то ревизия, на которой оно было выполнено, считается качественной рабочей версией ядра. Мы собираем КОМПАС-3D с новым ядром и передаем его разработчикам КОМПАСа. Они проверяют эту сборку на базовом тесте, и если все хорошо, данная версия математики сдвигается в КОМПАС-3D.

Тестирование приложений

Лариса Иванова, инженер по тестированию приложений:

Основной задачей в версии v17 было «подружить» приложения с новым интерфейсом КОМПАС-3D. Чтобы это знакомство прошло гладко, мы подключились к процессу тестирования задолго до того, как к адаптации приложений приступили их разработчики. Для начала надо было убедиться, что приложения подключаются. Затем началось тестирование каждого приложения в отдельности: подключение, запуск каждой команды, отображение иконок, запуск процессов, появление диалогов, проверка работы по типовым сценариям —



Приложение Оборудование: Сварные соединения. Все параметры выбраны, а кнопки «Создать объект» нет.

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



Приложение Размерные цепи. Не отображаются иконки команд.


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

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



Приложение Оборудование: Металлоконструкции. Команда Специальная разделка. Результат выполнения операции не соответствует заданным параметрам (кликните на изображение для увеличения).


Да, приемы работы и интерфейс в КОМПАС-3D v17 изменились кардинально. Но благодаря команде тестирования АСКОН, не раз и по-разному испытавшей версию на себе, пользователи могут быть спокойны — КОМПАС-3D v17 решит любые их задачи.

Обсудить в форуме