Windows application driver что это

Обновлено: 30.06.2024

Драйвер приложения Windows будет запущен в тестовая машина прослушивает запросы по IP-адресу и порту по умолчанию ( 127.0.0.1:4723 ). Затем вы можете запустить любой из наших тестов или образцов. WinAppDriver.exe можно настроить для прослушивания другого IP-адреса и порта следующим образом:

Примечание : необходимо запустить WinAppDriver. exe от имени администратора , чтобы прослушивать другой IP-адрес и порт.

Напишите Сценарий автоматизации

Теперь, когда вы успешно установили WinAppDriver, вы можете приступить к созданию своего первого сценария автоматизации!

Поддерживается API

См. Здесь список API, поддерживаемых WinAppDriver. Поддержка API может отличаться от поддержки Appium и других аналогов.

FAQ и документация

Дополнительную документацию по WinAppDriver и связанным темам можно найти в/Docs/, например:

  • Часто задаваемые вопросы
    • Общие разработки и передовые методы
    • Использование с Appium

    Содержимое репозитория

    Этот репозиторий включает следующее содержимое:

    Голосовать за новое Возможности

    Добавьте запрос функции в проблемы или 👍 (+1) существующие проблемы, помеченные как Улучшение

    Лучшие приложения для Windows

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

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

    Производительность

    Duolingo


    скриншот

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

    Dropbox

    Не всем нужен или используется OneDrive, особенно с учетом часто связанных сборов. Если ваша компания или учебное заведение предпочитают Dropbox в качестве облачного хранилища данных, что ж, для этого есть приложение. Эта удобная программа позволяет просматривать изображения и видео в виде сетки или списка при работе с документами. Бесплатный базовый план дает вам 2 ГБ бесплатного хранилища.

    Microsoft To Do

    Skype для Windows

    Версия Skype уже интегрирована с Windows, но официальное настольное приложение также позволяет вам делиться изображениями, выбирать перевод и показывать свой экран для устранения неполадок.

    Microsoft Sticky Notes

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

    Creation

    Fresh Paint


    скриншот

    Открыть Live Writer

    Fused

    Хотите, чтобы для ваших фотографий было больше интересных эффектов, чем предлагают обычные приложения? Перед загрузкой в ​​Instagram взгляните на Fused, который предназначен для смешивания фотографий с фоном и передним планом для создания различных эффектов. На изучение всех возможных способов использования потребуется много времени, но достаточно сказать, что при правильной работе он может сделать ваши фотографии великолепными . Если вам нравится создавать свой собственный фон или просто получать удовольствие от публикации впечатляющих фотографий, узнайте, что предлагает Fused.

    Adobe Photoshop Express

    Хотя вам, возможно, придется заплатить за доступ к полному набору Adobe, для Windows 10 доступна бесплатная версия Photoshop. Однако метко названный Express дает вам ограниченный доступ к инструментам редактирования фотографий Photoshop. позволяет выполнять множество индивидуальных работ. Это очень полезный инструмент, если вы знакомы с Photoshop и хотите работать с некоторыми изображениями, но не нуждаетесь или не хотите иметь доступ к полному набору функций приложения. Имейте в виду, что для работы этого приложения вам понадобится учетная запись Adobe ID.

    Развлечения

    VLC Media Player


    скриншот

    Netflix

    Pandora

    У каждого есть свой любимый музыкальный сервис, поэтому можете заменить любое приложение, которое вам нравится, здесь. Pandora действительно разработала мощное приложение для настольных и мобильных устройств, которое позволяет легко транслировать ваши любимые мелодии. Приложение также может похвастаться совместимостью с Xbox One и, как правило, более дружественным к Windows, чем Spotify.

    Поскольку Microsoft является Работая над объединением как можно большего количества игрового процесса для Xbox и Windows, это приложение обладает некоторыми уникальными функциями, такими как возможность потоковой передачи игр или фильмов с Xbox One на ваш компьютер. Приложение также имеет функции общения и обмена, то есть вы можете быстро делиться игровыми клипами или вступать в клубы. Он уже встроен в ваш компьютер с Windows 10, и нет необходимости в дополнительной загрузке.

    Социальные сети

    Instagram


    скриншот

    WhatsApp

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

    Flipboard


    снимок экрана

    Microsoft News

    Быть в курсе событий крайне важно, и вы можете использовать приложение Microsoft News Windows 10, чтобы быть в курсе всех необходимых новостей. После того, как вы его введете, настройте его так, чтобы ваши любимые сайты и публикации предупреждали вас. Кроме того, команда следит за тем, чтобы вы получали точные и захватывающие истории. Несмотря ни на что, вы можете выбирать истории и источники, которые соответствуют вашим желаниям, от политики до спорта и развлекательных новостей. Вы даже можете настроить уведомления о последних новостях и синхронизировать свои предпочтения в Интернете и в приложениях iOS и Android. Приложение работает в 20 разных странах и собирает контент из более чем 3000 публикаций.

    Безопасность

    Dashlane


    скриншот

    Windows Application Driver (WinAppDriver) is a service to support Selenium-like UI Test Automation on Windows Applications. This service supports testing Universal Windows Platform (UWP), Windows Forms (WinForms), Windows Presentation Foundation (WPF), and Classic Windows (Win32) apps on Windows 10 PCs.

    Install & Run WinAppDriver

    Windows Application Driver will then be running on the test machine listening to requests on the default IP address and port ( 127.0.0.1:4723 ). You can then run any of our Tests or Samples. WinAppDriver.exe can be configured to listen to a different IP address and port as follows:

    Note: You must run WinAppDriver.exe as administrator to listen to a different IP address and port.

    Write an Automation Script

    Now that you've successfully installed WinAppDriver, you can get started with authoring your first automation script!

    See here for a list of supported APIs by WinAppDriver. API support may differ from Appium and other counterparts.

    Additional documentation on WinAppDriver and related topics can be found under /Docs/, such as the following:

    This repository includes the following content:

    Vote on New Features

    Add your feature request in issues or 👍 (+1) existing issues labeled as Enhancement

    И чем драйвер не является

    Часто драйвер устройства сравнивается с другими программами, выполняющими роль «посредника» между софтом и/или железом. Для того, чтобы расставить точки над «i», уточняем:

    • Драйвер не является интерпретатором, так как не исполняется напрямую в софтовом слое приложения или операционной системы.
    • Драйвер не является компилятором, так как не переводит команды из одного софтового слоя в другой, такой же.

    Ну и на правах рекламы – вы всегда знаете, где скачать новейшие драйвера для любых устройств под ОС Windows.

    Latest commit

    Как работает драйвер и для чего он нужен?

    Основное назначение драйвера – это упрощение процесса программирования работы с устройством.

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

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

    Если вы хотите отформатировать жесткий диск, то, упрощенно, этот процесс выглядит следующим образом и имеет определенную последовательность: (1) сначала ОС отправляет команду в драйвер устройства используя команду, которую понимает и драйвер, и операционная система. (2) После этого драйвер конкретного устройства переводит команду в формат, который понимает уже только устройство. (3) Жесткий диск форматирует себя, возвращает результат драйверу, который уже впоследствии переводит эту команду на «язык» операционной системы и выдает результат её пользователю (4).

    Тестирование UWP приложений с помощью Appium



    На данный момент UWP приложения используют в качестве решения для тестирования через интерфейс Coded UI. Но если у вас приложение под несколько платформ, то в этом случае вам придется писать тесты под каждую платформу отдельно.

    В 2016-ом году была анонсирована возможность тестирования UWP приложений с помощью Appium. Для этого был создан драйвер под названием Windows Application Driver (WinAppDriver).

    Selenium, использующий WebDriver API, был создан для автоматического тестирования веб приложений. Appium это фактически Selenium для Apps.

    Установка WinAppDriver

    После установки в директории C:\Program Files (x86)\Windows Application Driver будет расположен исполняемый файл WinAppDriver.exe, запустив который можно запустить сервис



    Можно установить и Appium, который будет взаимодействовать с WinAppDriver, но WinAppDriver устанавливать нужно в любом случае. WinAppDriver должен устанавливаться вместе с Appium, но на момент написания статьи еще есть какие-то накладки, так что его приходится устанавливать отдельно. На всякий случай, давайте оставлю под спойлером как установить Appium на машину с Windows.

    Как установить Appium на Windows 10 с помощью пакетного менеджера npm




    Создание проекта приложения для тестирования

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

    В MainPage.xaml добавим:

    А MainPage.xaml.cs только одно событие:

    Из манифеста нам необходимо сохранить Package family name. Оно необходимо для написания теста.



    Это же значение можно взять и из файла vs.appxrecipe, который находится в папке Debug/AppX. Значение содержится внутри RegisteredUserModeAppID.

    Перед тем, как тестировать приложение, необходимо его развернуть. Вот такое приложение получилось:



    С помощью утилиты inspect.exe, которая расположена в директории C:\Program Files (x86)\Windows Kits\10\bin\x86 можно определить наименования элементов для использования в тесте.

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



    Для поиска элемента обычно используются следующие значения: ClassName и Name. С драйвером IOs можно использовать поиск элемента по его AutomationId.

    Создание проекта автоматизированного тестирования

    В Visual Studio создаем проект типа Unit Test



    В менеджере пакетов NuGet находим и устанавливаем Appium.WebDriver вместе с необходимыми для его работы зависимыми пакетами.



    Если используется IOSDriver, то код инициализации изменяется на следующий:

    Как вы можете заметить изменения минимальные. Код теста MakeOperation остается прежним.

    Дополнительно можно (а если запускаете Appium, то даже нужно) указывать платформу и устройство:

    Если вы запустили WinAppDriver, то строка URL:

    Ну а если запустили Appium, то:

    Запустим тест на выполнение. Можно таким образом:



    И в случае, если все верно, получим:



    Небольшая анимация автоматизированного процесса:

    Напоследок, приведу стандартный пример работы с Win32 приложением:

    Files

    Failed to load latest commit information.

    Большой старый сюрприз от HP

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

    Выбор пал на ноутбук HP c 14'' экраном, поддерживающим расширение 1920x1080, что и явилось решающим критерием для выбора. Железо вроде хорошее, но вот софт от HP заставляет задумываться, а надо ли оно было.

    История

    Функционал программы, с которым нужно работать, как я уже сказал, долго живущий, т.е. он пережил много итераций, смен руководителей и разработчиков и представляет из себя такой микс всего правильного, понятного и непонятного со статусом "А зачем это было надо?". В общем, хороший legacy код.

    Так вот, одной из особенностью функционала является использование распределённых транзакций. Т.е. на компьютере должен работать сервис MSDTC (он же Distributed Transaction Coordinator, он же Координатор распределённых транзакций) и включены соответствующие настройки.

    Вроде всё хорошо. У других участников команды (они не используют HP) проект компилируется, запускается и отрабатываются все сценарии. Работа идёт полным ходом.

    Хорошо. Беру свой новенький HP, настраиваю, устанавливаю, скачиваю, компилирую, запускаю, прогоняю сценарии и бац, ошибка:

    Хорошо. Всякое бывает. Начинаю копать.

    После потраченных часов, удаления антивируса, отключения брандмауэра (он же firewall), использования всех рекомендаций из интернета проблема остается. Ошибка упорно вылезает.



    Хорошо. Отключаем сервисы начинающиеся с HP, благо их немного:



    Отключение первого же сервиса "HP Analytics service" даёт результат. Просто всё начинает работать. MSDTC отрабатывает нормально, все сценарии проходят успешно.

    Так кто ты такой, HP Analytics service? Смотрим полный путь и имя исполняемого файла:

    В поисковике достаточно набрать Touchpoint Analytics Client , чтоб начитаться всего хорошего про эту программу и как её упорно пытаются удалить.

    Git stats

    Драйвер устройства и с чем его едят



    Как уважаемый хабрапользователь наверняка знает, «драйвер устройства» — это компьютерная программа управляющая строго определенным типом устройства, подключенным к или входящим в состав любого настольного или переносного компьютера.

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

    Обычно драйвер общается с устройством через шину или коммуникационную подсистему, к которой подключено непосредственное устройство. Когда программа вызывает процедуру (очередность операций) драйвера – он направляет команды на само устройство. Как только устройство выполнило процедуру («рутину»), данные посылаются обратно в драйвер и уже оттуда в ОС.

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

    Любая операционная система обладает «картой устройств» (которую мы видим в диспетчере устройств), для каждого из которых необходим специфический драйвер. Исключения составляют лишь центральный процессор и оперативная память, которой управляет непосредственно ОС. Для всего остального нужен драйвер, который переводит команды операционной системы в последовательность прерываний – пресловутый «двоичный код».

    Как создается драйвер устройства



    Для каждого устройства существует свой строгий порядок выполнения команд, называемой «инструкцией». Не зная инструкцию к устройству, невозможно написать для него драйвер, так как низкоуровневые машинные команды являются двоичным кодом (прерываниями) которые на выходе отправляют в драйвер результат, полученный в ходе выполнения этой самой инструкции.

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

    Написание любого драйвера начинается с его «скелета» — то есть самых основных команд вроде «включения/выключения» и заканчивая специфическими для данного устройства параметрами.

    Appium + WinAppDriver отлаживает классические программы Windows (не UWP)

    Некоторые примеры представлены в вышеуказанном проекте, чтобы показать, как тестировать с помощью Microsoft UTest.
    Среди них PaintTest - классическая программа для Windows, но многие коды устарели. Если вы скопируете ее напрямую, отобразится предупреждение, например следующий абзац:

    Appium Ver 1.15 нужно изменить следующим образом:

    Но не в этом суть. Сегодня речь идет о том, как подключиться к WinAppDriver с помощью Appium.
    Сначала щелкните непосредственно WinAppDriver.exe, и появится такой экран, он запускается нормально:


    Последний:WinAppDriver.exe 127.0.0.1 4723/wd/hub , Нужно придумать отдельно, потому что это конфигурация подключения Appium по умолчанию.
    Начните с этого параметра, Appium не требует дополнительной настройки при создании сеанса, иначе конфигурацию Appium нужно будет изменить.

    Итак, поговорим о том, как подключить WinAppDriver к Appium.
    При запуске WinAppDriver запустите Appium:


    Не пытайтесь нажимать кнопку «Запустить сервер». Порт 4723 занят WinAppDriver.


    Что вам нужно сделать, это открыть новое окно сеанса:


    Затем вы увидите такой экран:


    Если вы только что запустили WinAppDriver с параметрами, здесь нет необходимости изменять настройки;
    Если параметр отсутствует, но WinAppDriver запускается по умолчанию, вам необходимоУдаленный путь Измените на "/"



    Причина этой проблемы в том, что конфигурация в правом нижнем углу Appium, представляющая собой репрезентацию JSON, вообще не соответствует требованиям приложения Windows.


    Нам нужно настроить три поля слева или вручную изменить этот JSON:


    Затем нажмите «Начать сеанс», чтобы запустить тестируемую программу Windows:

    Автотестирование активно развивается для web- и mobile-проектов. Но десктопные приложения приходится тестировать до сих пор: их по-прежнему используют финансовые компании, производства, сегмент HoReCa. Зайдите в ближайший банк, кафе, ресторан - всюду вы увидите Windows Desktop. При этом тестирование таких приложений почти не развивается, информации о нем мало.


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

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

    Оперативность. Возможность "на выходе" просматривать отчеты из CI с ночными прогонами этих шести тестов (или получать письмо с описанием “упавших” тестов).

    Прозрачность. Нужно, чтобы команда тестирования понимала, что именно проверяется в каждом шаге теста, а менеджер мог читать отчет в понятной для него форме (например: "на окне n не хватает третьего поля ввода").

    Стоимость. Необходим инструмент, который не удорожает проект без необходимости.

    Сравнение бесплатных фреймворков

    Первым решением, опробованным для наших задач, стал Visual Studio Coded UI .

    Плюсы:

    Те же технологии в тестировании, что и в разработке продукта.

    Есть test recorder.

    Работа с WinForms.

    Работа с UI-контролами DevExpress.

    Минусы :

    Небольшой объем документации.

    Test recorder генерирует плохо поддерживаемый код: тесты после записи и запуска сразу “падают” (возможно, не воспроизводится на “простых” интерфейсах).

    Ограничения поиска и работы с элементами пользовательского интерфейса, накладываемые UIA API v.1 — MSAA.

    Фреймворк CUITe может использоваться в дополнение к инструменту Coded UI под разные версии VS. Можно взять инструмент на заметку, но серьезных недостатков Coded UI он не исправляет.

    Фреймворк TestStack.White — второе бесплатное решение, которое мы рассмотрели.

    Плюсы:

    Совместим с фреймворками BDD.

    MSAA, UIA 2, 3 — на выбор.

    Минусы:

    “Заброшенная” кодовая база явно нуждается в рефакторинге.

    Апдейт Nuget пакета не проходил с 2014 года, но в репозитории есть изменения.

    Дальнейший поиск привел команду к фреймворку WhiteSharp.

    Плюсы:

    Совместим с фреймворками BDD.

    Минусы:

    Нет возможности нормально идентифицировать все элементы UI. Не подходит к DevExpress элементам.

    Апдейт Nuget-пакета не происходил с 2016 года.

    Немного документации, небольшое комьюнити.

    Медленное исполнение элементарных кейсов (“открыть приложение”, “проверить содержимое строки статуса”)

    Плюсы:

    Совместим с фреймворками BDD

    Возможность использовать любую версию UIA: MSAA, UIA2 и UIA3

    Поддерживаемая версия ОС Windows 7, 8, 10 (XP, скорее всего тоже, но мы не пробовали).

    Хорошее комьюнити: решение проблем не только в issues, но и в чатах.

    Плюсы:

    Разработан и поддерживается Microsoft.

    Совместим с фреймворками BDD.

    Невысокий порог вхождения, если был опыт написания тестов для веба или мобильных платформ.

    Минусы:

    Поддерживаемая версия ОС Windows 10+.

    Взвесив плюсы и минусы решений, мы остановились на WinAppDriver’e и FlaUI.

    Пример работы с двумя выбранными решениями

    Перед стартом написания тестов нужно выбрать инспектор UI-элементов. К примеру, здесь . Наши QA-специалисты предпочитают Inspect.exe и UISpy.exe.

    WinAppDriver

    Создаём сессию приложения и подключаемся к ней:

    Опишем шаг запуска приложения:

    Инспектором находим кнопки и кликаем по ним:

    Описываем шаг получения результата:

    Шаг выхода из приложения:

    В итоге, Robot-тест проверки вычисления квадратного корня будет выглядеть вот так:

    Запускать тест можно как обычный робот-тест из командной строки: robot test.robot. Существует подробная документация по BDD Robot Framework . Возможно тестирование приложений из WinStore и классических приложений.

    Поддерживаемые типы локаторов:

    Можно сделать вывод, что это полностью Selenium-like тест. Можно применять любые паттерны тестирования: Page Object и т.д., добавить BDD framework (для Python, например, это Robot Framework или Behave ).

    FlaUI

    Фактически является “обёрткой” над UI Automation libraries. Коммерческие утилиты, разобранные раньше, также являются “врапперами” над предоставленным Microsoft API для автоматизации.

    Windows 7 PC, VS. Запускаем приложение и аттачимся к процессу:

    Инспектором находим поле ввода и отправляем в него строку:

    Основные виды поиска элементов:

    Можно искать по:

    Можно реализовать поиск по любому поддерживаемому элементом паттерну, например, по Value или LegacyAccessible. Или по условию.

    Наша команда особенно оценила класс условных ожиданий

    Retry.While(foundMethod, Timeout, RetryInterval);

    Внутри — выполнение в цикле входящего метода через заданный интервал на протяжении заданного таймаута. Больше никаких слипов основного потока исполнения.

    Создаем объект LoginWindow, только когда логин окно действительно отображается (интервал и таймаут — дефолтные). Такой подход избавляет от нестабильных тестов.

    Сроки разработки тестов. Поддержка, стабильность UI-тестов

    На шесть довольно объемных Regress-сценариев из примера было заложено три месяца разработки с “нуля”, включая ознакомление проектом, исследование доступных, описанных выше, фреймворков, создание скелета проекта АТ, настройка CI (continuous integration), менеджмент и коммуникации, сопроводительную документацию. Проект выполнен и сдан в срок.

    При продолжении покрытия тестовых сценариев автотестами подготовительные операции, разумеется, будут занимать меньше времени, так как были реализованы на стадии пилота.

    Помещаем тесты в Continuous Integration

    Оба фреймворка поддерживают запуск тестов с использованием систем непрерывной интеграции. В нашей команде использовали TC и TFS.

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

    Automatic logon setup (Use SysInternals Autologon for Windows as it encrypts your password in the registry).

    Отключить Windows Error Reporting. Справка на Gist: DisableWER.reg

    Необходимо иметь на машине, где производится сборка и прогон тестов, активную десктопную сессию. Достаточно использовать для этого стандартное Windows-приложение.

    RDC. Но часто можно встретить и совет пользоваться VNC (с аргументацией что: при подключении через Удаленный рабочий стол и последующем отключении, десктоп будет заблокирован When you connect using Remote desktop, then disconnect, the desktop will be locked, and UI Automation will fail)

    BDD-фреймворк Specflow имеет интеграцию “на лету” c TC и TFS. Т.е. непосредственно в прогоне тестов отображается отчет об успешных и проваленных тестах.

    Пример ROI автотестов

    Перед внедрением автоматизации подсчитать ROI сложно, поскольку существует огромное количество неизвестных факторов и коэффициентов. (И лучше не верить калькуляции ROI в разделе прайсинга Test Complete).

    Но после реализации пилотного проекта автоматизации можно привести некоторые цифры. Возьмем самую простую формулу ROI:

    ROI = (Gain of Investment — Cost of Investment) / Cost of Investment

    Стоимость проекта автоматизации за первый год (без поддержки):

    3 месяца на покрытие автотестом Regress-прогона при работе одного инженера-разработчика в тестировании: получается, 500 часов * Dev-ставка в час . Допустим, стоимость решения (Cost of investment) оплачивается заказчиком полностью в первый год (не делится по частям, и на покупку решения не берется кредит).

    Выгода:

    В первой статье мы подсчитали, что чистый “прогон” регресс-тестов вручную занимает 1 месяц: 2 недели первичный прогон + 2 недели вторичный прогон (без проверки новых тестов и сопутствующих расходов).

    После разработки АТ-регресса (3 месяца), 9 месяцев в году прогоны регресс-теста руками не исполняются. Будем считать, что высвободившиеся ресурсы подключили к другим проектам в компании. Сохранили: 1500 часов * QAставка в час * 2 человека в команде .

    ROI = (1500*QA*2 — 500*Dev) / 500 * Dev = (6*QA — 1*Dev) / Dev

    При взятии по рынку средних значений QA ставка = n, Dev ставка = 1,5n получаем:

    ROI = (6n — 1,5n) / 1,5n = 3.

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

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

    Результат

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

    Да, мануальное тестирование — необходимая часть разработки. Но если ПО состоит из десятков тысяч строк кода и требует двух-трех недель от разработки новой функции до релиза, автоматизация очень важна. Чтобы понять, выгодно ли покрытие всех работ автотестами и возможно ли оно, наша команда применяет стратегию Do Pilot: то есть, автоматизирует участок работ при помощи выбранного фреймворка.

    Тем не менее, если использовать в платных “коробочных” решениях для АТ все нужные функции и масштабировать команду хотя бы до двух инженеров — поддержка таких решений удорожает проект. Чтобы на заказчика ПО не ложилась необходимость платить в начале за само решение, а потом — каждый год — за его поддержку, мы рассмотрели несколько фреймворков для АТ с открытым кодом. Из предложений выбрали те, которые нас устраивают. Два найденных решения использовали для работы.

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

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

    Читайте также: