Комментарии 6
То, что вы сделали, звучит здорово.
Один вопрос. С одной стороны, запись скриншотов и их контроль. С другой стороны - "Тесты выполняются без рендеринга графического интерфейса". Это как сочетается?
Виртуальные машины действительно работают без вывода графического интерфейса на физический монитор (headless-режим), однако это не мешает нам брать скриншоты. Виртуализация даёт доступ к видеобуферу приложения, поэтому система сохраняет изображения напрямую оттуда, без необходимости фактического отображения интерфейса на экране пользователя.
Я так полагаю, что тестирование путем кликов сделано так как среда САПР не поддерживает запросы через API (или API примитивно и не дает доступ для полной конфигурации)? Или речь идет именно о тестировании GUI?
У нас все тесты работают через интерфейс, потому что в САПР без этого никак. Тут важно не только проверить, что команды отрабатывают, но и как все выглядит - особенно когда работаешь с 2D/3D моделями. Многие вещи просто нельзя проверить через API - как модель крутится, как инструменты работают, как выглядят настройки. Поэтому мы решили пойти путем эмуляции действий пользователя - так можно все проверить, включая графику.
Понимаю. Просто хочу отметить, что при разработке САПР стоит разделять тесты самого САПР (по максимуму через API, хороший САПР имеет хороший API), GUI (кнопочки, комбобоксы, и т.д.), рендеринг (как выглядит) и экспорт.
Эмуляция действий пользователя - хороша для проверки GUI и немного для рендеринга. Остальные вещи, в идеальном мире САПР, тестируют через API. Проблема в том, что API во многих САПРах страдает либо отсутствием, либо плохой архитектурой, либо половинчаностью.
Ответ:
Да, вы совершенно правы — в идеальном мире API для САПР должно закрывать все потребности тестирования. Но у нас ситуация такая, что оно, к сожалению, не охватывает весь функционал, особенно если говорить про рендеринг, работу с 2D/3D-моделями и визуализацию.
Поэтому мы идем через эмуляцию действий пользователя: это помогает не просто проверить интерфейс, но и убедиться, что сама система — взаимодействие с моделью, отрисовка, поведение инструментов — работает как надо. По сути, мы воспроизводим реальный сценарий использования, чтобы ничего не упустить.
Если бы API давало полный контроль над этими штуками, мы бы, конечно, с радостью на него опирались. Но пока оно не тянет, особенно в части рендеринга и динамики инструментов.
Инновации в тестировании САПР: путь к созданию автоматизированного решения для тестирования