2015-05-11 2 views
1

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

Я искал в Интернете практический опыт в автоматическом графическом тестировании приложений реального мира. В большинстве статей представлены очень ограниченные примеры (т. Е. Тестирование простого приложения в стиле калькулятора), которые не полезны для автоматического запуска графического интерфейса при запуске с использованием 100k + LOC.

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

  • Каковы ваши методы, когда вы автоматизированное тестирование GUI?
  • Какие инструменты вы используете и почему?
  • Как вы обрабатываете сложные пути выполнения?
  • ...

Чтобы быть более конкретным, позвольте мне описать ситуацию более подробно: Мы 100k + проект LOC, написанный на C#. Это приложение Windows и взаимодействует с оборудованием (различные измерительные устройства с помощью разных протоколов связи). У нас есть единичный тест на «общие» функции (библиотеки и т. Д.) - функции, которые независимы и могут быть протестированы изолированно. Из-за ограничений использования реального оборудования мы не можем полностью автоматизировать тестирование (слишком высокие инвестиции), но мы могли бы автоматизировать, по крайней мере, половину работы, которую наши тестеры делают сейчас вручную. Я хотел бы «преобразовать» некоторые из наших тестеров для управления автоматическими испытаниями пользовательского интерфейса. Наши тестеры имеют ограниченные навыки программирования, поэтому лучший рабочий процесс для нашего случая будет либо для записи тестов пользовательского интерфейса, либо для использования некоторого упрощенного подхода к программированию. Будущее обслуживание тестов UI должно проводиться тестировщиками (в отличие от модульных тестов, когда техническое обслуживание выполняется программистами).

  • Приложение использует базу данных SQLite для хранения ее конфигурации и данных.
  • Тестирование должно проводиться в соответствии с различными наборами тестовых данных. Как/где хранить данные?
  • При использовании более одного набора тестовых данных перед использованием следующего набора тестовых данных должно быть достигнуто «безопасное» состояние - состояние, в котором мы на 100% уверены, приложение в порядке. Вы предпочитаете перезапускать приложение или программно возвращать изменения, которые вы сделали с помощью теста? Примером этого является вход в систему - логин для каждого теста или логина один раз и несколько тестов подряд?
  • Все тесты должны выполняться на разных платформах ОС Windows (Win7/Win8, x86/x64) в смешанной среде (виртуальной и физической).
  • Как выполнить тесты пользовательского интерфейса для компонентов? Вы делаете простые тестовые программы и выполняете тестирование пользовательского интерфейса с помощью этой программы? Или что-нибудь еще?

ответ

3

Каковы ваши практические методы, когда вы выполняете автоматическое тестирование графического интерфейса?

  • Запись страницы
  • Auto генерировать методы, так что я могу обновить страницу легко

Избегайте, где когда-либо вы можете. В настоящее время я просматриваю модульное тестирование с помощью MVC. Создайте способ легко обновлять свои страницы. Какие инструменты вы используете и почему?

  1. Specflow - для тестирования рабочего процесса
  2. T4 - для генерации методов из страниц
  3. Selenium - для тестирования кросс браузера
  4. CUITe - расширение закодированных тестов пользовательского интерфейса и записи

Как вам обрабатывать сложные пути выполнения?

  1. С архитектурой рисунка, такого как MVC
  2. Модель: Страница отображения пользовательского интерфейса управления
  3. View (Навигация): Как перейти на страницу и отвечают заранее условия и триггеры
  4. контроллера: Метод испытаний что вызывает навигации и модель

последующие вопросы:

  • Как часто вы собираетесь поддерживать этот кодированный пользовательский интерфейс?
  • Кто будет поддерживать эти тесты?
  • Просьба уточнить «безопасное состояние», тип, резьба?
  • Как вы собираетесь обрабатывать загрузку страницы?
  • Вы собираетесь выполнять кросс-браузерное тестирование?
  • Вы собираетесь тестировать в нескольких средах?
  • Вы собираетесь протестировать несколько агентов тестирования?
  • Как вы собираетесь генерировать тестовые данные?
  • Как вы собираетесь хранить данные теста?
  • Имеете ли вы модульные тесты?
  • Вы проводите ручные тесты?
Смежные вопросы