Это не столько вопрос, сколько обсуждение лучших практик с автоматическим тестированием графического интерфейса в реальных приложениях (где приложения реального мира - это приложения, которые более двух форм и трех кнопок и сложности, выходящих за рамки вычисления двух чисел и отображения результата в texbox).Автоматизированное тестирование графических приложений реального времени для настольных и/или веб-приложений
Я искал в Интернете практический опыт в автоматическом графическом тестировании приложений реального мира. В большинстве статей представлены очень ограниченные примеры (т. Е. Тестирование простого приложения в стиле калькулятора), которые не полезны для автоматического запуска графического интерфейса при запуске с использованием 100k + LOC.
При внедрении автоматизированного тестирования GUI я не хочу, чтобы сделать начинающую ошибку, поэтому я прошу вас:
- Каковы ваши методы, когда вы автоматизированное тестирование GUI?
- Какие инструменты вы используете и почему?
- Как вы обрабатываете сложные пути выполнения?
- ...
Чтобы быть более конкретным, позвольте мне описать ситуацию более подробно: Мы 100k + проект LOC, написанный на C#. Это приложение Windows и взаимодействует с оборудованием (различные измерительные устройства с помощью разных протоколов связи). У нас есть единичный тест на «общие» функции (библиотеки и т. Д.) - функции, которые независимы и могут быть протестированы изолированно. Из-за ограничений использования реального оборудования мы не можем полностью автоматизировать тестирование (слишком высокие инвестиции), но мы могли бы автоматизировать, по крайней мере, половину работы, которую наши тестеры делают сейчас вручную. Я хотел бы «преобразовать» некоторые из наших тестеров для управления автоматическими испытаниями пользовательского интерфейса. Наши тестеры имеют ограниченные навыки программирования, поэтому лучший рабочий процесс для нашего случая будет либо для записи тестов пользовательского интерфейса, либо для использования некоторого упрощенного подхода к программированию. Будущее обслуживание тестов UI должно проводиться тестировщиками (в отличие от модульных тестов, когда техническое обслуживание выполняется программистами).
- Приложение использует базу данных SQLite для хранения ее конфигурации и данных.
- Тестирование должно проводиться в соответствии с различными наборами тестовых данных. Как/где хранить данные?
- При использовании более одного набора тестовых данных перед использованием следующего набора тестовых данных должно быть достигнуто «безопасное» состояние - состояние, в котором мы на 100% уверены, приложение в порядке. Вы предпочитаете перезапускать приложение или программно возвращать изменения, которые вы сделали с помощью теста? Примером этого является вход в систему - логин для каждого теста или логина один раз и несколько тестов подряд?
- Все тесты должны выполняться на разных платформах ОС Windows (Win7/Win8, x86/x64) в смешанной среде (виртуальной и физической).
- Как выполнить тесты пользовательского интерфейса для компонентов? Вы делаете простые тестовые программы и выполняете тестирование пользовательского интерфейса с помощью этой программы? Или что-нибудь еще?