Разработчики АСКОН рассказывают о тестировании нового КОМПАС-3D v17
Следи за успехами России в Телеграм @sdelanounas_ruВ январе завершилось открытое бета-тестирование КОМПАС-3D v17, в котором приняли участие более 1500 пользователей. Но до выпуска финального релиза в систему еще вносятся изменения, а это значит, что тестирование продолжается. О том, какие испытания проходит новый КОМПАС-3D, прежде чем попасть к инженерам, читайте в репортаже из Центра разработки АСКОН в Коломне.
Каждой новой версии предстоит преодолеть несколько этапов тестирования, в котором принимает участие практически вся команда КОМПАС. Программисты создают юнит-тесты на вновь написанный код. Аналитики проводят юзабилити-тестирование. Группа автоматизированного тестирования разрабатывает сценарии с применением пользовательского интерфейса, API и специальных тестовых функций (кстати, для проверки КОМПАС-3D v17 был разработан совершенно новый инструмент автоматизированного тестирования — «Магнитофон»). Эта же команда отвечает за тестирование производительности, конверторов и обширной базы пользовательских документов.
При проверке такой сложной системы, как КОМПАС-3D, без ручного тестирования обойтись нельзя. Все тестировщики, выполняющие ручное тестирование, имеют опыт конструкторской работы на производстве и не понаслышке знают, как и зачем пользователи применяют ту или иную функциональность КОМПАС-3D.
Ручное тестирование
Евгений Филимонов, инженер по тестированию 3D:
Мы смотрим на КОМПАС-3D со стороны пользователя, то есть фактически проектируем сами. При тестировании какой-либо операции, к примеру, Выдавливание, мы проверяем все возможные способы её выполнения; рассматриваем варианты использования в сочетании с другими объектами: отдельно Выдавливание может работать правильно, а в массивах или исполнениях — уже нет. В общем, придумываем самые разные сценарии — у тестировщиков хорошо развита фантазия. При этом стараемся, чтобы сценарии были близки к пользовательским. Хотя иногда бывает полезно рассмотреть и экзотические случаи.
В v17 произошли столь кардинальные изменения (относительно предыдущих версий), что работ и по кодированию, и по тестированию было намного больше, чем обычно. Особого внимания с нашей стороны потребовала, например, операция По сечениям, в которую были внесены значительные доработки, в том числе связанные с новыми математическими алгоритмами. Тестирование этой операции идет на протяжении всей разработки версии.
Спойлер: в КОМПАС-3D v17 в операции По сечениям появится возможность управлять соединением сечений с помощью цепочек и направляющих кривых.
Если бы я вновь стал конструктором (до АСКОН я работал в РСК «МиГ»), то, думаю, новый интерфейс КОМПАС-3D v17 воспринял бы положительно. Да, могут быть споры по поводу цвета интерфейса и внешнего вида иконок, но с точки зрения приемов работы стало намного удобнее. Добавилось много механизмов, которые упрощают и ускоряют работу инженера. Для конструктора — это значительный шаг вперед. Особенно для молодого.
Как это устроено: тест-планы.
Когда тестировщик приступает к работе, он составляет тест-план. Рассмотрим упрощенный пример — отрезок. Его можно строить по двум точкам, по длине и углу; отрезок может быть построен между объектами, в разных слоях, определенным стилем кривой. Все эти нюансы при построении отрезка, его редактировании или удалении тестировщик описывает в тест-плане. План содержит несколько частей: непосредственно функциональность (к примеру, построение по длине и углу), защита (нет лицензии — построение не выполняется), вывод на печать (при печати отрезок должен отображаться в соответствии с заданным стилем кривой) и так далее. Тест-план оформляется в виде «дерева мысли», и именно на него тестировщик ориентируется при проверке работы системы. Однако тест-план покрывает только основные сценарии, в нём невозможно предусмотреть 100% вариантов использования, т.к. их, по сути, может быть бесконечное множество.
Тестирование пользовательского интерфейса
Екатерина Родина, инженер по тестированию интерфейса:
Интерфейс — это «лицо» программы. В отличие от функциональности 2D или 3D, где тестируются конкретные операции, интерфейс приходится проверять по всей системе, т.к. КОМПАС-3D должен сохранять свое лицо при выполнении любой операции (команды), в любом из компонентов. Хороший интерфейс обеспечивает комфортное восприятие и работу в системе. Он должен выглядеть аккуратно, чтобы все тексты четко отображались на экране, иконки хорошо масштабировались. Удобство проверяется по расположению кнопок, количеству кликов, которые необходимо пройти до нужной команды.
Каждая операция формируется с помощью определенного набора элементов интерфейса — контролов. Таких элементов насчитывается около 50-ти: поле для ввода текста, поле с выпадающим списком, поле для слежения за курсором
и т. д. Каждый контрол тестируется отдельно. Мы проверяем, как выглядит контрол, следит ли он за курсором, выдает ли сообщения о вводе неверного значения, работает ли с текстовым метками и выражениями.
Помимо отдельных контролов проверяются все панели и диалоги: внешний вид, размер, поведение при перемещении, удобство использования.
В процессе разработки интерфейс меняется очень активно. Иногда случается так, что из-за нововведений «ломается» сделанное ранее. Чтобы не упустить такие моменты, необходимы регрессионные проверки. Для этого и был разработан упомянутый в начале статьи инструмент автоматизированного тестирования — «Магнитофон» (мы представляли его на конференции по обеспечению качества ПО SQA Days-2016). Сначала каждый элемент интерфейса проверяется вручную, фиксируются найденные ошибки, обсуждается их решение. Когда работа над элементом практически завершена, можно писать автотесты для регрессионного тестирования.
С помощью «Магнитофона» осуществляется контроль не только работы, но и положения элементов интерфейса, отображаемых в текущий момент времени. В КОМПАСе очень много команд. Чтобы не искать глазами, какой элемент изменил свое положение, мы автоматизировали этот процесс. Тесты перебирают по очереди все команды, проверяя, чтобы элементы находились на своих местах.
Как это устроено: «Магнитофон».
Программа записывает и воспроизводит действия тестировщика, сигнализируя о появлении ошибок. «Магнитофон» видит в КОМПАС всё: элементы интерфейса и объекты документов, понимает, в каком они состоянии, может ими управлять. Изначально предназначенный для тестирования пользовательского интерфейса, он удачно применяется и для проверки функциональности. Его использует большинство сотрудников разработки: тестировщики, программисты, аналитики. Для v17 — это вообще основной инструмент автоматизации тестирования. В подразделении разработки «Магнитфон» по сложности и по выделяемым на него ресурсам является вторым продуктом после КОМПАСа — без него отлаживать v17 было бы очень сложно и долго.
Автоматизированное тестирование
Алексей Чирва, руководитель группы автоматизированного тестирования:
Одно из направлений автоматизированного тестирования КОМПАС-3D - обеспечение корректности пользовательских документов, созданных в предыдущих версиях. Мы должны убедиться, что все пользовательские наработки будут вести себя ожидаемо в новой версии: к примеру, сборка не разлетится, не поменяется ее цвет, комплектация, спецификация. База документов, используемых в тестах, насчитывает более 700 000 работ. Из них формируются наборы по определенным критериям.
Основные сценарии проверки корректности пользовательских документов направлены на выявление изменений и ошибок в геометрии.
Отдельного внимания требует тестирование импорта и экспорта всех поддерживаемых форматов документов. Мы проверяем корректность результатов конвертации (геометрию, формат записи, размер файлов), выполняем замеры производительности.
При тестировании производительности КОМПАС-3D отслеживается время выполнения операций, время отклика интерфейса, расходование системных ресурсов, скорость отображения моделей и чертежей
и т. д.
Тестирование математики
Сергей Бирюков, математик-программист C3D Labs:
Весной выйдет не только новая версия КОМПАС-3D, но и новая версия геометрического ядра C3D. Обычно достижения ядра практически сразу попадают в КОМПАС-3D, мостик между ними очень короткий. Функциональность, которую мы сейчас добавляем, может быть сразу протестирована в КОМПАСе. Кроме этого, определенные методы ядра невозможно полноценно проверить без использования КОМПАСа, например, тестирование сопряжений геометрических элементов. Тестирование ядра внутри подразделения C3D Labs происходит исключительно в автоматическом режиме. Первый этап тестирования — это юнит-тесты, запускаемые в течение дня при каждой новой сборке ядра на каждой ревизии. Кроме этого, три раза в день проходят тесты из небольшого набора моделей, проверяющие построение ассоциативных видов, перестроение моделей и конвертацию из различных форматов данных. Обнаруженные ошибки чаще всего исправляются днем, чтобы к вечеру сдать максимально чистую, без поломок, ревизию (изменение кода) ядра. Ночью на внутреннем сервере запускается большое регрессионное тестирование на базе из 400 000 моделей в формате ядра c3d. И уже следующим утром всем программистам C3D Labs рассылается сообщение с итогами тестов.
Удобство нашей системы тестирования состоит в том, что в случае неудачных результатов автоматически определяются все изменившиеся модели, и для каждой из них обнаруживается ревизия, на которой произошли изменения. Поэтому в сгенерированном утреннем письме уже содержится полный список этих моделей с указанием номера и автора ревизии, вызвавшей изменения. Если большое тестирование прошло без ошибок, то ревизия, на которой оно было выполнено, считается качественной рабочей версией ядра. Мы собираем КОМПАС-3D с новым ядром и передаем его разработчикам КОМПАСа. Они проверяют эту сборку на базовом тесте, и если все хорошо, данная версия математики сдвигается в КОМПАС-3D.
Тестирование приложений
Лариса Иванова, инженер по тестированию приложений:
Основной задачей в версии v17 было «подружить» приложения с новым интерфейсом КОМПАС-3D. Чтобы это знакомство прошло гладко, мы подключились к процессу тестирования задолго до того, как к адаптации приложений приступили их разработчики. Для начала надо было убедиться, что приложения подключаются. Затем началось тестирование каждого приложения в отдельности: подключение, запуск каждой команды, отображение иконок, запуск процессов, появление диалогов, проверка работы по типовым сценариям —
функциональность приложений не должна была стать хуже, чем в предыдущих версиях.
Все ошибки мы систематизировали — отделили ошибки, «наведенные» доработками в интерфейсе, от ошибок самих приложений — и отправили на доработку. И только когда приложения стали работоспособными, их разработчики подключились к работе над новым интерфейсом.
После того, как разработчики завершили свою часть, началось функциональное тестирование приложений — по сути, разработка реальных проектов, включающая проектирование и получение конструкторской документации. Мы вручную запускали все команды приложений, проверяли работу каждой кнопки, сравнивали с работой в предыдущих версиях. При обнаружении проблем, а также при появлении новых возможностей и выявлении особенностей, оповещали разработчиков приложений через Систему управления релизами, разработанную нами для предыдущих версий КОМПАСа, но в полной мере оцененную именно в v17.
- Приложение Оборудование: Металлоконструкции. Команда Специальная разделка. Результат выполнения операции не соответствует заданным параметрам.
Да, приемы работы и интерфейс в КОМПАС-3D v17 изменились кардинально. Да, обещанная САПР-революция состоится. Но благодаря всем бета-тестерам и, конечно, команде тестирования АСКОН, не раз и по-разному испытавшей версию на себе, пользователи могут быть спокойны — КОМПАС-3D v17 будет готов к встрече!
Кстати, а вы знали, что на «Сделано у нас» статьи публикуют посетители, такие же как и вы? И никакой премодерации, согласований и разрешений! Любой может добавить новость. А лучшие попадут в телеграмм @sdelanounas_ru. Подробнее о том как работает наш сайт здесь👈
28.02.1714:47:36
28.02.1714:51:07
28.02.1716:24:55
28.02.1716:31:04
28.02.1721:10:03
01.03.1706:59:38
01.03.1710:42:27
Alpha-Omega28.02.1723:22:28
01.03.1712:35:07
28.02.1717:31:53
28.02.1717:39:23
28.02.1723:49:58
28.02.1716:34:14
28.02.1717:15:14
28.02.1717:02:59
28.02.1717:12:05
28.02.1718:44:49
01.03.1713:33:11
01.03.1713:47:36
01.03.1714:10:03
01.03.1714:22:22
01.03.1714:47:05
01.03.1718:57:23
01.03.1710:15:45
28.02.1717:34:12
01.03.1701:34:36
01.03.1710:56:02
01.03.1712:04:54
01.03.1712:37:34