Кроме того, в случае изменения интерфейса приложения возникает необходимость вновь переписать тесты, связанные с обновленными окнами, что при большом числе тестов может потребовать значительных ресурсов. Тестирование GUI является процесс тестирования графического пользовательского интерфейса системы из тестируемого приложения. Тестирование GUI участвует проверку экранов с элементами управления, такими как кнопки меню, иконка и все виды баров – панели инструментов, панели меню, диалоговым окном и т.д. Использование компонента UndefinedComponentPath, использующего описанный выше метод поиска путей в графе потока событий и уточнение найденных путей, позволяет последовательно исследовать необработанные элементы графического пользовательского интерфейса.
«В условиях ее отсутствия мы начинаем рассматривать возможные варианты замены данного инструмента, тем более что по соотношению цены/качества и функциональных возможностей он уже давно выглядел далеко не идеальным выбором», — рассказывает Андрей Залманов. При написании тестов идентификаторы контролов, их свойства и возможные паттерны удобно смотреть при помощи утилиты UISpy. Каждый элемент представляется в виде объекта AutomationElement, в котором определены его основные идентификаторы.
もくじ
Инструменты Для Автоматизации Тестирования Desktop-приложений
Единственной функцией для GUI-тестирования в QTestLib является симуляция мыши и клавиатуры. Ручное тестирование — это процесс поиска ошибок в программе без использования специальных ПО, силами человека. Тестировщик имитирует реальные действия пользователя и старается охватить максимум функций продукта и найти ошибки (на языке QA — «баги»).
Несколько просев во время пандемии, в 2021 году этот рынок показал динамичный рост. А с февраля 2022 спрос подогревает возросшая потребность организаций в переходе с западных IT-решений на альтернативные, ведь это подразумевает и большой пласт работ, связанных с тестированием софта. TAdviser пообщался с представителями крупного бизнеса из разных отраслей, имеющего глубокие компетенции в области тестирования, а также с представителями игроков, оказывающих такие услуги, и подготовил обзор состояния этой сферы в России.
Смешанное/полуавтоматизированное Тестирование
Squish [4] – проприетарный инструмент автоматизации тестирования приложений с графическим интерфейсом для платформ Java AWT/Swing, SWT, Windows, Android и пр. Для тестирования приложения используется специальный управляющий модуль, который внедряется в адресное пространство приложения, данный модуль запускает приложение и связывается с инструментом. Squish имеет возможность проверки корректности выполнения тестов, сопоставление состояний некоторых виджетов производится с помощью анализа снимков экрана (Screenshots).
Ручное тестирование существует, так как невозможно автоматизировать все проверки и автоматизация не всегда финансово выгодна. Автоматизированное тестирование используется gui это главным образом для регрессии. Кроме того, некоторые виды тестирования, например, исследовательское тестирование, могут быть выполнены только вручную.
Перспективные Подходы
Благодаря крауду штатные тестировщики и тест-лиды могут сосредоточиться на формировании стратегии тестирования, её применении, взаимодействии с остальной продуктовой командой или проверить наиболее чувствительные или неисследованные области продуктов. А базовое тестирование и регрессию на любом наборе конфигураций можно отдать в крауд, при необходимости настроить скорость, регулярность запуска, перекрытие. Опрос TAdviser более 10 крупных компаний из финансового сектора, ритейла, телекома показал, что они тяготеют к наращиванию внутренней экспертизы и ресурсов в области тестирования ПО, отдавая задачи тестирования на аутсорсинг в отдельных случаях. Например, когда тестирование требуется выполнить намного быстрее, чем обычно, или когда необходима узкоспециализированная экспертиза, которой недостаточно внутри компании. В результате команда, работающая по стандартному производственному процессу, будет по умолчанию получать весь необходимый набор инструментов для обеспечения качества.
- Дефект (баг) — это несоответствие фактического результата выполнения программы ожидаемому результату.
- Из опроса следует, что задач в области тестирования у компаний становится всё больше.
- Средний уровень занимают интеграционные автотесты, которые верифицируют бизнес-поведение (но не через GUI).
- Аутсорсинг тестирования также привлекают, когда стоит задача выстроить процессы по автоматизированному и нагрузочному тестированию, а у заказчика нет нужной компетенции», — говорит генеральный директор «ЛАНИТ Экспертизы» Алёна Горшкова.
- ⦁ Имитация работы реальных пользователей системы при помощи автоматизированных скриптов.
«Основная цель, которую заказчик ставит перед тестировщиками, — это снижение сроков реализации продуктов за счет введения автоматизации тестирования», — говорит Олег Гринин, руководитель практики тестирования ПО компании iFellow. «Большую часть запросов на автоматизацию тестирования составляют приложения, имеющие веб-интерфейс, мобильные приложения, API сервисы. Меньшую автоматизацию по частоте запросов https://deveducation.com/ проходит тестирование desktop-приложений и баз данных», — поделился Денис Воденеев, руководитель направления автоматизированного тестирования в IBS. «Нашими клиентами являются компании финансового сектора, для которого наличие ошибок в системах ведет к прямым финансовым и репутационным потерям, кроме этого, качество выводимых услуг сейчас является конкурентным преимуществом для банков и ритейла.
Особенно акцент делается на дизайн структуры, образы, которые они работают должным образом или нет.
«Несмотря на развитие современных технологий до сих пор много критичных legacy-систем, которые дорого и тяжело заменить, находятся в эксплуатации. Ситуация с уходом иностранных компаний с рынка РФ привела к тому, что на текущий момент отсутствуют коммерческие решения, которые позволяют тестировать desktop», — отмечает технический директор «ЛАНИТ Экспертизы» Владимир Лаврентьев. Ниже приведены примеры инструментов и сред разработки, которыми пользуются и компании, выполняющие тестирование ПО собственными силами, и поставщики услуг. А если заглянуть в закупочную документацию тендеров на едином портале госзакупок, то можно увидеть, что заказчики нередко включают тестирование в укрупнённые блоки работ в рамках проекта. В «Яндексе» полагают, что в идеале всё ручное тестирование можно отдавать на аутсорс, а внутри заниматься только построением процессов и разработкой автотестов. Но это не всегда возможно, и в каждом конкретном случае команда сама выбирает, по какому пути ей пойти, исходя из доступных ресурсов и запросов.
«В МТС сейчас все ключевые задачи, необходимые для выпуска очередной версии продукта, команды выполняют своими силами. Аутсорс подключаем в исключительных случаях», — говорит Павел Воронин, член правления, первый вице-президент по технологиям МТС. Также ключевой целью можно назвать обеспечение отказоустойчивости систем. Именно поэтому сейчас наблюдается «ажиотажный спрос» на нагрузочное и автоматизированное тестирование.