Тестирование графического интерфейса пользователя [закрыто]

StackOverflow https://stackoverflow.com/questions/92059

Вопрос

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

Спасибо, Джефф

Это было полезно?

Решение

У вас есть (как минимум) 2 проблемы - сложность среды (сервера) и сложность графического интерфейса.

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

С другой стороны, окружающая среда - это область, которую можно приручить.Если ваше приложение спроектировано с использованием метода внедрения зависимостей / инверсии (когда вы "внедряете" серверный компонент в приложение), то вы можете использовать "макет" соответствующих серверных интерфейсов, чтобы иметь возможность создавать тестовые сценарии.

Сочетание этих двух методов позволит вам автоматизировать тестирование графического интерфейса пользователя.

Последняя мысль - удачи!

Другие советы

Другими инструментами тестирования графического интерфейса, которые я могу предложить, являются:Мыслительные работы Белого Цвета, PyWinAuto, Автоматический запуск, Автоотключение.

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

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

Многие шаблоны, которые были разработаны на основе MVC (я думаю пассивный просмотр, контролирующий контроллер) стремятся сделать так, чтобы представление требовало очень небольшого тестирования, потому что на самом деле это просто подключение пользовательских данных к презентатору или модели (в зависимости от точного варианта используемого вами шаблона).

"тестирование графического интерфейса часто включает в себя отправку сообщения на сервер, а затем наблюдение за ответом в графическом интерфейсе" Это утверждение меня беспокоит.

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

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

Mercury QuickTest Pro, Borland SilkTest и Ranorex Recorder - вот некоторые инструменты тестирования графического интерфейса пользователя.

Если ваше приложение основано на Интернете, вы можете писать тесты, используя такие инструменты, как Вода или Селен.

Если ваше приложение основано на Windows .NET, вы могли бы попробовать Белый.

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

Новая тенденция заключается в игнорировании тестов GUI.Смотрите шаблон ModelViewPresenter от Fowler в качестве руководства текст ссылки

Самый ясный способ, которым я могу это сказать, - это:

Не тратьте свое время на написание автоматизированных тестов с графическим интерфейсом.

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

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

Это означает никакой логики в классах графического интерфейса пользователя.Разделите это в моделях представления, ответственных за проверку входных данных и т.д.

Для тестирования на Unix-компьютере мы используем Xvfb-сервер в качестве ДИСПЛЕЯ при запуске тестов.

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

То, что вы ищете, - это "приемочное тестирование". То, как вы это делаете, зависит от используемых вами фреймворков, типа приложения, которое вы создаете, и на каком языке.Если вы загуглите вашу конкретную технологию и приведенную выше фразу, вы должны найти некоторые инструменты, которые вы можете использовать.

Я нашел Выигрышная задача чтобы быть очень хорошим способом тестирования графического интерфейса пользователя.При условии, что вы не меняете постоянно способ, которым ОС ссылается на каждый элемент пользовательского интерфейса, WinTask адресует элементы пользовательского интерфейса по имени, поэтому, даже если макет изменится, элементы пользовательского интерфейса все равно можно нажать / настроить / выбрать.

Не пропустите букву "U" в графическом интерфейсе пользователя
Я имею в виду:если то, что вы пытаетесь протестировать, все работает правильно и работает так, как планировалось, тогда вы можете следовать Ответ Себа Роуза.

Но, пожалуйста, не забудь Пользовательский интерфейс должен быть создан с учетом интересов ПОЛЬЗОВАТЕЛЕЙ, и не КАКОЙ-ЛИБО пользователь, а ЦЕЛЕВОЙ ПОЛЬЗОВАТЕЛЬ, для которого было создано приложение.Итак, после того, как вы убедитесь, что все работает так, как должно работать, поместите каждое отдельное представление / экран / форму в тест с командой, состоящей из пользователей, представляющих каждую группу разных пользователей, которые могут использовать ваше приложение:продвинутые пользователи, администраторы, пользователи MS Office, низкопрофильные пользователи компьютеров, высококлассные пользователи компьютеров...а затем выслушайте критику каждого пользователя, сделайте микс, повторно коснитесь своего GUI, если это необходимо, и снова вернитесь к тестированию пользователя GUI.

Для ПРОСТОГО тестирования графического интерфейса в Интернете попробуйте иМакрос ( простой плагин для Firefox, имеет классную функцию отправки всего теста другому человеку) Обратите внимание, что слово SIMPLE было написано с инициалами ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top