2016-05-20 3 views
0

Я ищу бесплатный инструмент тестирования QT UI для Windows. У меня есть модульные тесты для моих бэкэнд-модулей с использованием boost :: Test. Однако пользовательский интерфейс имеет больше возможностей для сбоя, и я также хотел бы проверить это.Есть ли * бесплатный * QT UI для тестирования?

Структуры тестирования, которые я нашел с помощью функции поиска в Stackoverflow, включают только несколько фреймворков - и это действительно стоит. Кроме того, он должен использоваться с проектом LGPL.

Есть ли бесплатный способ сделать это?

+0

На какой платформе? В Linux вы, возможно, найдете инструменты тестирования, способные имитировать события X11 .... –

+4

Вы заглянули в [QTest] (https://doc.qt.io/qt-5/qtest-overview.html)? – nwp

+0

Насколько я знаю, QTest не может использоваться с проектами LGPL? Или они изменили это? QTest было бы здорово, конечно – IceFire

ответ

2

Тестирование/устранение неисправностей Пользовательские интерфейсы - очень сложный процесс.

Классические блок-тестеры (QTest, boost, gtest) полезны для тестирования неинтерактивных модулей, классов, функций. Когда требуются входы, все становится очень сложным.

Вы можете выбрать «насмешливую» структуру, такую ​​как gmock, чтобы «имитировать» пользовательский ввод.

Но если ваше приложение GUI имеет много окон, диалоговых окон, элементов gui, это может стать настоящей болью в шее.

Существует второй подход, который я рекомендую.

Я потратил годы на разработку приложений с Qt. Мои первые приложения не соответствовали модели MVC. Отладка и настройка кода были очень болезненными. Я также попытался как можно больше отделить логику от пользовательского интерфейса. Как и модель MVC Qt (QAbstractItemModel). Таким образом, вы можете протестировать свои модели в рамках стандартных модулей модульных тестов.

Вы можете распространить эту логику на все ваши компоненты gui.

Наконец, вам все равно придется выполнять «человеческие тесты» для устранения неполадок приложения.

Но это нормальный этап в процессе разработки. Есть только человеческий ресурс, который может использовать ваше программное обеспечение, щелкнуть в любом месте окна, диалоговые окна, делать странные вещи и т. Д. Это лучший способ узнать невероятные ошибки GUI! Не может быть проведено тестирование единицы измерения.

Разработчик не может воспроизвести поведение человека, использующего ваше программное обеспечение. Поскольку мы бессознательно знаем, где могут возникнуть ошибки ... и, таким образом, мы часто не нажимаем туда, где это не рекомендуется ...

Подумайте об этом.

Z.

+0

Я не сказал, что не применяю MVC, что я и делаю.Но я очень ищу и тестирование, независимо от того, работает ли drag & drop как ожидалось, отменив операцию, приведет к правильной навигационной позиции в моем прокручиваемом списке, имеет ли щелчок в какой-то момент в моей матрице желаемый эффект и т. Д. Может ли это быть протестировано с QTest? – IceFire

+2

Да, вы все еще можете сделать это с помощью QTest. Взгляните на функции keyClick() и mouseEvent() и touchEvent(). Это может помочь вам настроить ваши функции отмены и повтора и drag'n'drop. Самым сложным является ti написать много соответствующих тестовых случаев ... например. со случайными() координатами мыши. Вы можете обнаружить нежелательные результаты. – Zyend

Смежные вопросы