Начальная

Windows Commander

Far
WinNavigator
Frigate
Norton Commander
WinNC
Dos Navigator
Servant Salamander
Turbo Browser

Winamp, Skins, Plugins
Необходимые Утилиты
Текстовые редакторы
Юмор

File managers and best utilites

Как запустить андроид-тестирование в эмуляторе с помощью IntelliJ? Эмулятор тестирование


Как тестировать на мобильных телефонах, не имея телефонов?

Оригинал статьи: https://www.lyontesting.fr/en/how-to-test-on-smartphones-without-smartphones/

Автор: Стефан Колсон (Stephane Colson)

Перевод: Ольга Алифанова

Мобильные телефоны вошли в нашу жизнь повсеместно, и распоследний захудалый сервис имеет собстственное приложение. Да даже если не имеет – значит, у их сайта отзывчивый дизайн и его можно использовать при плохой связи, а не только на большом экране с оптоволоконным соединением. Как тестировщик сайтов или приложений на Андроид/Айфоне/ВинФоне, вы должны изобразить из себя реального пользователя – то есть иметь один или несколько смартфонов, как минимум тот, которым чаще всего пользуются ваши потребители. Не забываем и о ручном, и об автоматизированном тестировании. Вдруг у вас нет миллиарда евро, долларов или фунтов на покупку всех возможных смартфонов для тестирования? Будете ли вы полагаться на инструменты разработчика Chrome для браузера, зная, что разработчики и так "по-быстренькому" протестили с их помощью свою работу?

Инструменты для браузера

Браузеры очень помогают тестировать веб-приложения, и инструменты Chromium/Chrome – наиболее развитые из доступных для этих целей.

clip_image003

Некоторые разрешения экранов смартфонов доступны прямо в браузере, и вы можете быстро их использовать (Galaxy S5, iPhone 6, и так далее). Вы можете также добавить конфигурации или напрямую выбрать разрешение экрана, которое вы собираетесь тестировать.

Вы также можете менять скорость сети, используя фичу throttling. Несколько предустановок в ней присутствует, но вы можете устанавливать настройки и самостоятельно. Тестировать приложение при плохой связи – всегда неплохая идея.

clip_image004

У Firefox тоже есть возможность выбрать разрешение экрана, но нет сетевых настроек в стабильных версиях.

Шокирующие новости: теперь его билды ежедневно доступны, начиная с Firefox 52

clip_image005

Насколько я знаю, Microsoft Edge и Apple Safari не позволяют работать с сетью, но у них есть функциональность изменения разрешения экрана под мобильные приложения.

Специализированные инструменты.

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

Эмуляторы против симуляторов

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

Но если вы боретесь за точность словоупотребления, эмулятор симулирует не только софт, но также и железо оригинального устройства. Он намного ближе к реальности, чем симулятор.

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

Все платформы делают вполне доступные эмуляторы и симуляторы. У нас есть Apple iOs симулятор, который запускает iOS-приложения на Mac, Windows Phone эмулятор, сделанный Microsoft, и BlackBerry симулятор, сделанный RIM. Google Android SDK тоже включает мобильный эмулятор. Но все эти решения неполны, и в данный момент не существует способа установить Хром на эмулятор Андроида.

Keynote

Тестирование Keynote позволяет осуществляться ручному и автоматизированному тестированию мобильных приложений и сайтов на сотнях смартфонов и планшетов. Это реальные устройства, которые доступны всем желающим как коммерческое предложение. Как тестировщик, я хотела попробовать триальный аккаунт, но обе мои почты не подошли (возможно, потому что это не почты компании). Это странно, и я сбежала оттуда.

clip_image007

Testdroid

Bitbar Testdroid сервис – это облачная ферма мобильных устройств, оснащенная реальными Android и iOS-устройствами для автоматизированного и ручного тестирования приложений. В нем доступно 381 устройство, что позволяет вам тестировать реальные проудкты, а не эмуляторы и симуляторы. Очень небольшое количество телефонов доступно бесплатно (я пробовала через учетную запись "бесплатно для продукта с открытым исходным кодом), и столкнулась с рядом проблем. Для доступа к частной сети можно использовать VPN-соединение. Я не тестировал это.

clip_image009

TestObject

TestObject – большая база доступных реальных устройств для тестирования. Вы можете легко выбрать нужное вам при помощи умных фильтров на этой страничке. Так как TestObject недавно куплен SauseLabs, мы надеемся, что он поможет SauseLabs стать еще лучше!

Saucelabs

Я давным-давно использую Saucelabs для ручного тестирования на браузерах, которых у меня нет или которые я просто не хочу устанавливать для одного несчастного теста. См. список платформ. У Sauselabs столько доступных комбинаций!

clip_image011

Множество операционных систем – например, iOS (8.1->10), Android (4.0->5.1), Windows (XP->10), MacOS (10.8->10.11) и Linux, и куча браузеров, включая Opera, Chrome, Firefox, Safari, IE и Edge. Это более 800 доступных комбинаций для ручного тестирования, которые также могут использоваться во фреймворках Selenium и Appium.

Для частного доступа можно использовать VPN-туннель Sauce Connect.

clip_image013

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

Saucelabs также позволяет вам использовать внутри браузеров ваши автотесты, и вы можете запускать их параллельно, в зависимости от Sause Plan, на который вы подписаны. Это 5 одновременных запусков для бесплатной учетной записи для проекта с открытым исходным кодом.

BrowserStack

BrowserStack очень похож на Saucelabs с точки зрения доступа к эмуляторам. Для локального доступа вам не нужен VPN, достаточно плагина, доступного в Chrome Store.

Вы легко можете получить доступ к инструментам разработчика – точно так же, как в вашем родном браузере. Что впечатляет – в отличие от Sauselabs, которая разрешает открывать инструменты разработчика только в удаленном эмулированном браузере.

clip_image015

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

Еще одна крутая штука, которую предоставляет BrowserStack – это возможность быстро протестировать отзывчивый дизайн в предопределенном списке устройств iOS, Android, OS X, Windows.

clip_image017

You can also have screenshots taken with a selection of smartphones and tablets.

clip_image019

Perfectomobile

Perfectomobile позволяет получить доступ к реальным устройствам и тестировать их как вручную, так и автоматически (на iOS, BlackBerry, Android, Windows Phone). Они предлагают интересный инструмент – Оптимайзер, который выдает вам список устройств, на которых вам стоит тестировать в первую очередь в зависимости от того, в какой местности проживают ваши клиенты, какую OS они в основном используют, и какой тип устройств (телефоны или планшеты). Это я не проверял.

Genymotion

Genymotion – это простой и быстрый Android-эмулятор, поэтому потестировать вы можете только Android. Покопайтесь в облачной платформе или в Android on AWS EC2, это может вам серьезно помочь, если вам нужно тестировать только Андроиды. Построен проект на Lyon.

Xamarin

Xamarin – это IDE для создания приложений на C# для Android, iOS, Windows и Mac. Однако компания также предоставляет и Облачное тестирование. Оно добавляет тест-рекордер, который быстро создает скрипты тестирования на уровне интерфейса, наблюдая за взаимодействиями. Xamarin предоставляет реальные устройства, никаких эмуляторов. Он позволяет запускать автотесты и не дает доступа к устройствам для ручных тестов. Лично я им не пользовался.

Заключение

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

Научиться пользоваться Perfecto Mobile и Genymotion, а так же огромным количеством других инструментов и сервисов можно на курсе «Тестирование мобильных приложений: начальный уровень», который стартует совсем скоро. Присоединяйтесь!

Обсудить в форуме

www.software-testing.ru

20+ инструментов для тестирования мобильных приложений

Автоматизированные инструменты для тестировщика

DeviceAnywhere

Инструмент для множественного кроссплатформенного тестирования устройств и приложений.

Ranorex

Для автоматизированного тестирования приложений для iOS, Android и Windows 8. Позволяет записывать проводимые тесты и их результаты.

eggPlant

Автоматическое тестирование для iOS, Android и Windows Mobile / Phone.

Silk Mobile

Инструмент автоматического тестирования веб-приложений, а также нативных приложений для iOS, Android, Blackberry и Windows Phone. Не требует джейлбрейка для устройств.

SeeTest

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

MonkeyTalk

Инструмент тестирования нативных, гибридных и веб-приложений на основе простых и комплексных тестов.

NativeDriver

Подходит больше для нативных приложений, чем для других. Совместим с приложениями для Android, iOS и Windows / Windows Phone.

Mобильные эмуляторы и инструменты тестирования

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

mobiReady

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

BrowserStack

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

CrossBrowserTesting

Кроссбраузерное тестирование для iOS, Android и Blackberry.

Screenfly

Инструмент-эмулятор для готовых приложений, сайтов и интерактивных прототипов. Есть поддержка разных диагоналей экрана и устройств.

Mobile phone emulator

Эмулятор различных мобильных телефонов для проверки совместимости приложения.

Responsive

Инструмент тестирования приложений на предмет полноценной функциональности адаптивного дизайна.

ProtoFluid

Инструмент для тестирования адаптивного дизайна и «жидких» текстур.

Тестирование мобильных приложений для Android

Отдельная подборка инструментов для тех, кто тестирует приложения для мобильной ОС Android.

Testdroid

Автоматизация тестов и записть пользовательских действий.

robotium

Фреймворк для тестирования нативных и гибридных приложений. Позволяет записывать тесты, проводимые в режиме black-box.

scirocco

Инструмент для тестирования пользовательского интерфейса с возможностью составления отчетов со скриншотами.

Monkey

Эмулятор псевдорендомных потоков событий (клики, жесты, касания, события на уровне работы системы и т.д.)

Тестирование приложений для iPhone и iPad

iPhone Tester

Веб-инструмент для тестирования веб-интерфейсов на iPhone. Для использования рекомендован браузер Safari или иной браузер на базе Webkit.

iPad Peek

Тестирование приложений для iPad (приложения, сайты, интерактивные прототипы).

Appium

Автоматический инструмент тестирования гибридных и нативных приложений для iOS.

TestStudio

Позволяет записывать, строить и выполнять автоматизированные тесты для приложений под iPhone и iPad. Использует запись по объектам.

Онлайн-инструменты для тестирования

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

СервисОписаниеСтоимость (ориентир)
Perfecto MobileТестирование приложенийОт $25 / час
UserTesting.comПроверка юзабилитиОт $250 / 10 часов
AppThwackКомплексная платформаОт $20 / месяц
Xamarin Test CloudКомплексная платформаОт $25 / месяц
(Источник)

spark.ru

Утилиты для тестирования | Перфоманс Лаб

Название Описание Применение
1 SOAP/REST-эмулятор процессинга (ISO 8583) SOAP/REST-эмулятор процессинга (протокол ISO-8583), реализован на основе jPOS-template; SOAP/RESTfulbyApacheCXF + Jetty (jPOSEEмодуль). Нагрузочное тестирование процессинговых систем в банках
2 SOAP Performance emulator Эмулятор веб-сервисов, позволяющий выполнять обмен сообщениями с интеграционной шиной по заданному сценарию с заданной интенсивностью. Нагрузочное и интеграционное тестирование
3 HTTP/HTTPS emulator c «двухфазным» SSL Эмулятор с поддержкой протокола Https и «двухфазным» SSL. Нагрузочное и интеграционное тестирование
4 HSMплагин для JMeter Плагин, предназначенный для связки Crypto API 2.0 и ПАКМ «КриптоПро HSM» через Java JNA. Нагрузочное и интеграционное тестирование шифрованных потоков данных
5 Эмулятор HSM Программный эмулятор HSM Thales 8000, использующийся в качестве заглушки аппаратного HSM для процессингового сервера WAY4 Netserver. Нагрузочное тестирование процессинговых систем в банках
6 deperson Обезличивание БД на MSSQLServer Скрипты деперсонализации БД, состоят из .NET-сборки и скриптов на Transact-SQL. Любой проект, требующий обезличивания
7 VISA|MC|MK Clearing ООП-обертка для создания клиринговых файлов, входит в состав эмулятора транзакций. Проекты, требующие эмуляции транзакций
8 Express Report 3 Генератор экспресс-отчетов, позволяет создавать Excel-файлы c экспресс-отчетами за время теста. Проекты по НТ, требующие предоставления отчетов по результатам проведенных тестов
9 IPython Pandas Инструмент анализа данных (логов и метрик), позволяющий манипулировать данными (фильтрация, группировка, аггрегация, изменение) и визуализировать результат (графики и пояснения). Проекты, требующие предоставления отчетов по результатам проведенных тестов
10 UniParser Парсер логов с настраиваемым фильтром (построчная обработка текстовых данных). Проекты, в которых требуется осуществить фильтрацию данных
11 SnapShooter Утилита для отслеживания изменений в файлах конфигурации с возможностью восстановления ранее сделанной копии (снэпшота). Проекты с часто изменяющейся средой тестирования
12 Парсер логов WebSphere Парсер может выбирать из файла логов строки лога с SQL (SELECT + DML) операторами, попадающие в некоторый временной промежуток, заменять в выбранных запросах атрибуты и записывать результат в отдельный файл. Проекты в которых иcпользуется IBMWebsphere
13 PLOracleSniffer2 Java приложение (J2SE-1.5), осуществляющее прослушивание сетевого трафика посредством библиотеки WinPcap. Проекты, требующие осуществления перехвата, расшифровки и сохранения сетевого трафика между приложением и сервером Oracle
14 Утилита записи скриптов по протоколу .NETRemoting Утилита помещается между клиентским (записываемым) приложением и сервером. Клиентское приложение конфигурируется на работу с утилитой проксирования вместо оригинального сервера. Работа через утилиту происходит прозрачно, функциональность клиентского приложения не нарушается. Проекты, на которых используются вызовы по технологии .NETRemoting
15 Генератор журналирующих пакетов Oracle Скрипт, позволяющий сгенерировать по спецификации тело пакета, которое сразу скомпилируется, и установить, какие процедуры из пакета фактически вызываются. Проекты, требующие разработки эмуляторов
16 Генератор проксирующих пакетов Oracle Генератор проксирующих пакетов Oracle, создающий пакеты со спецификацией, как у оригинальных пакетов, и телами, записывающими в лог факт вызова и сохраняющими параметры вызова. Проекты, требующие разработки заглушек внешних систем Oracle.
17 Утилита подачи нагрузки на C# Утилита подачи нагрузки, использующая очереди MSMQ: в них хранятся пулы данных, они же используются для обмена данными, выходные логи также пишутся в очереди. Нагрузка по протоколу .NETRemoting, тестирование WFC-сервисов, нагрузка скриптами VisualStudio
18 Jar-logger Инструмент для анализа потока данных внутри jar-файла. Проекты аудита и нагрузочного тестирования
19 Plugin Citrix XenApp to JMeter Плагин для взаимодействия с Citrix сервером посредством JMeter. Проекты, для которых применение HPLoadRunner для записи и воспроизведения скриптов является неприемлемым
20 PluginFiddler to JMeter Плагин для Fiddler ускорения параметризации HTTP-траффика в JMeter. Нагрузочное и интеграционное тестирование
21 Metrics Шел скрипт, работающий под Linux/HP-UX/AIX, собирает метрики из разных ОС, и приводит их к одному формату удобному для просмотра и выгрузки, также собирает краткий паспорт стенда. Нагрузочное и интеграционное тестирование
13 Mq-receiver Библиотека для решения проблемы передачи данных между скриптами в сценариях Load Runner. Для передачи данных была использована технология передачи сообщений Microsoft Message Queuing (MSMQ). Нагрузочное и интеграционное тестирование
23 LRora2jmx Конвертер LoadRunner Oracle 2-tier скриптов в сценарии JMeter, ускоряющий и упрощающий запись oracle 2-tier скриптов в JMeter. Нагрузочное и интеграционное тестирование
24 PL-SAP ST03/STAD analyzer. Утилита анализа производительности SAP во время нагрузочных испытаний. Позволяет коррелировать данные нагрузки на систему с показателями ее производительности в единой шкале времени. Нагрузочное и интеграционное тестирование SAPERP

www.performance-lab.ru

android - Как запустить андроид-тестирование в эмуляторе с помощью IntelliJ?

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

Я пробовал его с IDEA 11.0.1, 4.0.3 платформы Android в Windows, и он отлично работает:

Waiting for device. Target device: emulator-5554 (ICS) Uploading file local path: D:\dev\android-sdk-windows\samples\android-15\ApiDemos\out\production\Tests\Tests.apk remote path: /data/local/tmp/com.example.android.apis.tests Installing com.example.android.apis.tests DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.example.android.apis.tests" pkg: /data/local/tmp/com.example.android.apis.tests Success Running tests Test running startedFinish

Вы также можете попробовать перезапустить adb с помощью adb kill-server и запустить эмулятор вручную из менеджера AVD.

Убедитесь, что в эмуляторе не установлено предварительно установленное приложение ApiDemos, или подписи не совпадают. Удалите существующий ApiDemos, затем попробуйте развернуть и запустить ApiDemos из IntelliJ IDEA, а затем попробуйте снова запустить тестовую конфигурацию.

ОБНОВЛЕНИЕ: Мы провели некоторое исследование и нашли источник проблемы. По умолчанию IntelliJ IDEA задает область зависимостей для модуля приложения внутри тестового модуля Компилировать, чтобы все производственные и тестовые классы скомпилировались в один Test.apk.

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

Provided scope

Восстановите проект и запустите тесты, опять же, на этот раз будут развернуты 2 отдельных файла apk, один для основного приложения и второй для тестов, затем тесты будут выполняться:

Waiting for device. Target device: emulator-5554 (ICS) Uploading file local path: D:\dev\android-sdk-windows\samples\android-15\ApiDemos\out\production\Tests\Tests.apk remote path: /data/local/tmp/com.example.android.apis.tests Installing com.example.android.apis.tests DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.example.android.apis.tests" pkg: /data/local/tmp/com.example.android.apis.tests Success Uploading file local path: D:\dev\android-sdk-windows\samples\android-15\ApiDemos\out\production\ApiDemos\ApiDemos.apk remote path: /data/local/tmp/com.example.android.apis Installing com.example.android.apis DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.example.android.apis" pkg: /data/local/tmp/com.example.android.apis Success Running tests Test running startedFinish

qaru.site

Тестирование Android приложений. C чего начать? - база знаний

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

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

С ЧЕГО НАЧАТЬ

В июне 2011 вышла книга, посвященная тестированию Android-приложений: Diego Torres Milano. Android Application Testing Guide. Книга добротная, написана хорошо.Блог автора так же содержит массу полезной информации. 

Официальная документация по встроенным средствам тестирования Android Developers Guide. Testing (перевод). Из недостатков: Android testing API основано на стиле JUnit 3 и не поддерживает JUnit 4. Тесты запускаются и работают на эмуляторе/девайсе, т.е. запуск медленный. 

Тестирование Android приложений - пример разработки небольшого Android-приложения с тестом на базе стандартного фреймворка android.test. 

Best practices for unit testing Android apps - обсуждение инструментов тестирования на stackoverflow. 

How to do Unit Testing on Android with Eclipse - видео, демонстрирующее создание тестового проекта в Eclipse. 

Автоматизированное тестирование мобильных приложений - обзор инструментов для тестирования интерфейса мобильных приложений. 

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

Шаблоны проектирования при разработке под Android. Часть 2 — MVP и Unit tests. Путь Джедая, Шаблоны проектирования при разработке под Android. Часть 3 — Пользовательский интерфейс, тестирование, AndroidMock - пара статей по теме тестирования на хабре. Содержание местами спорное, но комментарии, как всегда, интересные. 

Testing on android - весьма интересная презентация с полезными ссылками. 

Серия обзорных статей, посвященных тестированию мобильных приложений: Mobile Application Testing - Part I, part II, part III. 

ПРОБЛЕМА СКОРОСТИ ЗАПУСКА ТЕСТОВ

При разработке под Android очень не удобно использовать короткие unit-тесты (раз статья, два статья). Дело в том, что стандартные тесты работают только на эмуляторе или на устройстве (т.к. зависят от Android API). Запуск тестов, в этом случае, становится достаточно длительным. 

Для ускорения работы можно выделять Android-независимые тесты в отдельный Java проект и запускать их на JVM компьютера, но это, конечно же, не решение проблемы. Вот дискуссия на stackoverflow: Best practices for unit testing Android apps. Основные варианты: использовать библиотеки Robolectric и Robotium . 

Библиотека Robolectric действительно решает проблему скорости запуска теста. Тесты запускаются не на эмуляторе/устройстве, а прямо на JVM компьютера, что на порядок быстрее. Robolectric позволяет тестировать большую часть функциональности Android, включая layouts, GUI, сервисы, работу с сетью, виджеты. К тому же, Robolectric использует синтаксис junit4. В то же время следует отдавать себе отчет в том, что Roboelectric эмулирует Android API. Точность и полнота такой эмуляции, естественно, не 100%. 

Introducing Calculon – a Java DSL for Android Activity testing - библиотека для удобного тестирования Activity. 

MOCK-БИБЛИОТЕКИ ПОД ANDROID

Про то, что такое mock-объекты и как их использовать, есть статьи на хабре: JMock и EasyMock: сравнение и howto в примерах и не только, Глоток МоКито. Mock-библиотек, работающих под Android, существует несколько: EasyMonkey, PowerMock, Android Mock,Mockito. 

АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ. МНОГОКРАТНОЕ ВОСПРОИЗВЕДЕНИЕ ЗАПИСАННОГО ТЕСТА.

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

Robotium - фреймворк, дающий возможность разрабатывать тесты "черного ящика" для Android приложений. Тесты пишутся на Java. Для тестирования создается стандартный тестовый проект, в который добавляется библиотека Robotium. Тестовый проект можно запускать как на эмуляторе, так и на девайсе. Robotium использует синтаксис JUnit3. Полезная статья: Настройка среды для разработки Android приложений и автоматизации на Robotium. 

FoneMonkey for Android - бесплатный open source инструмент для тестирования rich interface, разработанный компанией Gorilla Logic (см. интервью с разработчиком FoneMonkey for Android, а так же статью в DrDobbs, посвященную FoneMonkey for IOS). Программа умеет записывать высокоуровневые action-based test automation скрипты на Java/Java Script, которые можно редактировать и (при необходимости) писать вручную. 

Sikuli - еще один бесплатный инструмент для автоматизации тестирования GUI. Особенность - скрипт, задающий последовательность действий, позволяет использовать скриншоты. Чтобы дать команду нажать кнопку, достаточно подставить в скрипт скриншот этой кнопки (используется специальная Sikuli IDE). Видео на youtubeнаглядно демонстрирует процесс создания скрипта. А вот пример видео, где sikuli "играет" в Angry birds. Вот пример использования sikuli для тестирования Android GUI. Преимущества и недостатки использования Sikuli для тестирования мобильных приложений приведены в презентации. 

T-PLAN ROBOT (VNCRobot) - универсальный инструмент для тестирования "черных ящиков" (видео, mobile testing brochure (pdf)). Есть платная и бесплатная open-source версия. 

На самом деле, инструментов, предназначенных для автоматизации тестирования приложений, очень много. Из платных отмечу: Eggplants,Test Quest, ZPX. Есть ещеJamo Solutions: M-eux test и SeeTest специально заточенные под мобильные приложения. 

ОБЛАЧНЫЕ СЕРВИСЫ

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

Специальные сервисы предоставляют доступ к стендам, содержащим множество разнообразных устройств, и позволяют провести тестирование на всех этих устройствах разом. Таких сервисов как минимум три: Perfecto Mobile, Device Anywhereи TestDroid. Вот здесь описан принцип работы Device Anywhere и приведены скриншоты. Услуга удобная, но достаточно дорогая. 

TestDroid, кстати, позволяет записывать тесты в формате Robotium. 

СЕРВИСЫ ДЛЯ БЕТА-ТЕСТИРОВАНИЯ

uTest - сообщество из 45 тыс профессиональных тестеров из 180 стран. Реальные пользователи протестируют работу вашего приложения. Платный. 

The Beta Family - бесплатный сервис для тестирования приложения. Заводите аккаунт, заливаете бета-версию приложения, рассылаете приглашение на тестирование, обрабатываете результаты тестирования. На главной странице сайта написано, что сервис предназначен для тестирования iPhone/iPad/iPod приложений. Но Android так же поддерживается, о чем прямо написано в FAQ. Можно выбрать тип бета-тестеров: private или public. Если public, то ваше приложение смогут тестировать все желающие.

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

Hockey Kit - еще один подобный сервис для распространения бета-версий среди своих бета-тестеров. 

Zubhium. Предоставляет SDK, с помощью которого вы в свое приложение встраиваете код для автоматического сбора информации об ошибках. Выкладываете бету. Ее тестируют в настоящий момент на стадии беты и поэтому - бесплатен. Бета тестеров нужно приглашать своих. 

PushLink. Еще один подобный сервис для приватного распространения приложений (например, бета версий). Добавляете в приложение немного кода для работы с PushLink. Собираете apk и отдаете бета-тестеру. Через некоторое время собираете новую версию apk и заливаете на PushLink. Пользователь автоматически получает уведомление о новой версии и скачивает ее с PushLink. Удобно - нет необходимости рассылать новые версии по email. Сервис бесплатен. 

MONKEY И Т.Д.

Инструменты функционального тестирования — Monkey и MonkeyRunner - обзор двух стандартных инструментов: Monkey (стресс-тестирование) и MonkeyRunner("прокликивающие" тесты, сценарии тестов пишутся на Python). 

Android: Using monkey from Java - статья в блоге Diego Torres Milano, посвященная стандартной библиотеке chimpchat, эквиваленту monkeyrunner. 

CODE COVERAGE

Code coverage инструменты определяют степень покрытия кода тестами. 

Варианты для Android: EMMA, Robotium, Sonar, включающий Maven и Cobertura. Так же функциональость code coverage есть в бесплатном статическом анализаторе от Google - CodePro AnalytiX 

СБОР ИНФОРМАЦИИ ОТ ПОЛЬЗОВАТЕЛЕЙ

Библиотека ACRA - пишет креш-репорты в документ Google Docs. 

BugSense - real-time bug tracking service. 

Системы сбора статистики по работе приложения. 

Log collector - приложение для генерирования log-файла и отправки его по email. Удобно использовать в своих приложениях для реализации возможности отправки лога. 

ДРУГИЕ ИНСТРУМЕНТЫ

Vogar - запуск большого количества тестов с записью истории выполнения тестов. 

Caliper - open-source фреймворк для создания микробенчмарков, их запуска и просмотра результатов. 

Android Junit Report - замена стандартному InstrumentationTestRunner с возможностью генерации XML-отчетов. 

ТЕСТИРОВЩИКУ НА ЗАМЕТКУ

Интересная презентация. 

Чек-лист для тестирования Android приложения:http://www.unifiedtestinginitiative.org/Android-UTC. 

Best Practice Guidelines for developing quality mobile applications 

Android design guidelines 

ОСОБЕННОСТИ ОКРУЖАЮЩЕЙ СРЕДЫ

How to test the 3G or Wi-Fi Connection speed on Iphone and Android Smartphones? 

Тестирование поведения приложения в условиях нехватки памяти 

Wide Area Network Emulator - позволяет разработчику эмулировать проблемы в сети - Network delay, Packet loss, Packet corruption, Disconnections, Packet re-ordering, Jitter и т.д. 

МЕТОДОЛОГИИ

Test Driven Development, TDD: Разработка через тестирование. 

Behavior Driven Development, BDD:: http://behaviour-driven.org, фреймверк для BDD:JBehave 

Fitness: www.fitnesse.org, http://fit.c2.com - совместная работа клиентов, программистов и тестировщиков. GivWenZen - запись сценариев тестов простым английским языком.

automated-testing.info

Советы начинающим тестировщикам

Мобильное тестирование – сфера многогранная и сложная. Широкий выбор платформ и устройств, наряду с постоянными обновлениями приложений усложняют задачу даже самым опытным специалистам. Что уж говорить о новичках, которые только начинают свой путь в этом нелегком деле?

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

10 советов для начинающих тестировщиков мобильных приложений

Совет #1. Используйте принципы эвристики и мнемоники

Удержать в памяти многочисленные аспекты тестирования приложения, помогут принципы эвристики и мнемоники. Все они были придуманы профессиональными тестировщиками. SFDPOT, I SLICED UP FUN и COP FLUNG GUN – одни из моих самых любимых. А вы знаете, что за ними скрывается?

Совет #2. Применяйте интеллект-карты (mind maps)

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

Совет #3. Подтверждайте свои слова скриншотами, логами и видео

Нет ничего лучше, чем документированное подтверждение наличия дефекта. По различным причинам некоторые баги могут не воспроизводиться на устройстве разработчика. Поэтому всегда стоит «подкреплять» дефекты скриншотами или видео, а также клиентскими логами (особенно в случаях критических отказов тестируемого приложения). Таким образом, вы сможете избежать двойной работы и быть уверенными, что дефект не вернется к вам с пометкой “To be reformulated” или “Incomplete”.

Совет #4. Освобождайте время для проработки более сложных, неординарных тестовых сценариев

Используйте тестовых «обезьянок» (test “monkeys”) для обнаружения сбоев и отказов в работе, а также зависаний мобильного приложения. Такие утилиты имитируют простейшие действия пользователей, такие как, например, нажатие на кнопку с текстом «ОК» или снятие скриншотов. Ведь при тестировании эти простые действия отнимают много времени и внимания. А так вы получите больше времени на проработку сложных функциональных тестов.

Совет #5. Обращайте внимание на различные ориентации девайса

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

Совет #6. Привлекайте к тестированию приложений реальных пользователей

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

Совет #7. Используйте отладочные меню для упрощения процесса тестирования

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

  • Эмуляция ответов с сервера;
  • Настройка определенных параметров для сервера;
  • Выставление специфических флагов;
  • Очистка сессий;
  • Очистка cash и т.п.

Совет #8. Опции разработчика – ваш лучший друг

Вам следует активировать данные настройки как на Android, так и на iOS-устройствах. Особенно широкий спектр возможностей предоставлен для Android: от отображения данных по работе процессора и оперативной памяти, до изменения скорости обработки анимации.

Совет #9. Проводите стресс-тестирование приложений

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

Совет #10. Не пренебрегайте (но и не злоупотребляйте) эмуляторами и симуляторами для проведения тестирования

Конечно, настоящий программно-аппаратный заменить невозможно. Но за неимением средств на приобретение дорогостоящего или редкого девайса, подойдут и программные эмуляторы. Случается и такое: у самого заказчика нет собственного девайса для тестирования – все были отданы на продажу. В таком случае нам ничего не остается, как использовать для тестирования эмулятор. Надо отметить, что Android и iOS эмуляторы в основном рассчитаны на родные приложения. Однако встроенные в них дефолтные браузеры мобильных устройств достаточно точно смогут воспроизвести то, как сайт будет выглядеть на реальном устройстве.

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

Поделиться статьей:

www.a1qa.ru

Симулятор для тестирования ПО АСУТП / Хабр

Добрый день, уважаемые хаброжители!

Расскажу вам о своём проекте, который делаю в свободное время уже три года.

Работаю в компании занимающейся автоматизацией на должности программиста контроллеров. Последнее время, в основном, используем Siemens, ПЛК SIMATIC S7 и пакет визуализации WinCC, но есть опыт и по другим производителям. Профиль компании – нефтегазовый сектор (резервуарные парки, насосные, железнодорожные эстакады, причальные комплексы, системы пожаротушения).

Наверное, с самого первого проекта, меня интересовал вопрос тестирования программного обеспечения до этапа пуско-наладки на реальном оборудовании. Не так давно, на хабре был пост — Программирование ПЛК Siemens на Simatic Step7, и адреналин, про который говорилось в комментариях, знаком мне не понаслышке.

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

Введение
В упрощённом виде наша АСУТП состоит из следующих компонентов:
  • Датчики (давления, температуры) и исполнительные механизмы (задвижки, насосы).
  • Программируемый логический контроллер (ПЛК).
  • Система визуализации (SCADA, HMI).
От датчиков и исполнительных механизмов сигналы поступают в ПЛК, обрабатываются и передаются в систему визуализации, с которой взаимодействует человек-оператор. Команды оператора передаются обратно в ПЛК, который генерирует нужные сигналы для управления исполнительными механизмами. Автоматизированные функции и противоаварийные защиты (ПАЗ) реализуются в ПЛК.

У нас в разработке, обычно, участвуют два человека. Один пишет программу для ПЛК, второй делает систему визуализации. Сейчас стараемся задействовать третьего – тестировщика. Не могу сказать, что мы реализуем очень сложные алгоритмы управления, но есть своя специфика, связанная, прежде всего, с размерами системы. Например, мой текущий проект в сумме имеет приблизительно 2300 сигналов, большая часть из которых входные (около 1500).

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

Остаётся вопрос с датчиками и исполнительными механизмами, которые связаны с нашей системой через дискретные/аналоговые входные/выходные сигналы.

Некоторые компании производители ПЛК предоставляют инструменты для программной имитации входных сигналов. Например, через среду программирования Step7 контроллеров Siemens можно значение любого входного сигнала, в реальном ПЛК, задать принудительно (форсировать), а если вы используете симулятор контроллера, просто установить через графический интерфейс. На приведённой выше иллюстрации: IB 10 – байт входов, IW 5 – слово входов, QB 7 и QW 2 – выхода, а MD 123 – двойное слово во внутренней памяти котроллера.

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

Понятно, что таким средствами, можно провести простую проверку прохождения сигналов от контроллера в систему визуализации и обратно. Можно отладить не очень сложные автоматические алгоритмы, благо, что в Step7 есть точки останова (breakpoints). Но если в алгоритме участвует несколько единиц оборудования (несколько насосов + обвязка из задвижек и датчиков) это достаточно сложно.

Идея

Вот уже несколько лет для каждого своего проекта, помимо программы для ПЛК, я создаю программный симулятор автоматизируемого объекта. Англоязычные источники иногда называют подобные системы — Factory Acceptance Test (FAT) simulator (симулятор для заводской приёмки) и классифицируют их по степени достоверности симуляции. В сети совсем не много информации по созданию подобных симуляторов, в основном используются Matlab + Simulink, LabView, кто-то реализует симуляцию внутри ПЛК. Есть специальные средства разработки – WinMOD, Mynah MiMiC, Siemens SIMIT, APROS.

После некоторых размышлений, решил попробовать создать свою платформу. Прежде всего, было желание изучить что-то новое (.NET и С#). Обстоятельства сложились удачно, и наша компания, для одного из проектов, приобрела готовую библиотеку OPC клиента. Это позволило мне сконцентрироваться на основной задаче.

Чтобы создать программный симулятор для стенда с реальным ПЛК необходимо предусмотреть в нём подмену данных получаемых с физических входов на имитационные. К сожалению, это приходится делать в самой программе контроллера. Следующий шаг – обеспечить доступ к этим данным через OPC интерфейс. После этого, можно приступать к написанию программы ПЛК и созданию симулятора автоматизируемого объекта.

Если использовать S7PLCSim – в подмене данных нет необходимости. При этом систему визуализации придётся запустить на той же машине вместе с S7PLCSim и симулятором объекта (ограничение S7PLCSim). В случае нехватки мощности можно попробовать разнести их с помощью бесплатной утилиты NetToPLCSim.

Платформа
Платформа, которую я разработал, похожа на примитивную среду для создания систем визуализации. Работу можно разбить на три этапа:
  1. Создание переменных (Item). Их всего три типа:
    • Internal — внутренняя переменная, которая используется для связи между объектами внутри симулятора.
    • OPC — переменная связанная с внешним OPC сервером. В данном случае симулятор выступает OPC клиентом.
    • S7PLCSim — данная переменная предназначена для связи с симулятором контроллера SIMATIC S7. Поддерживаются области памяти I, Q, M и DB.
    На текущей стадии развития, платформа позволяет подключение только к одному симулятору контроллера SIMATIC S7 и одному OPC серверу. Зато, все переменные видны по OPC, так как платформа является OPC сервером.

    Добавлять и удалять переменные можно во время работы симулятора. Система не позволит удалить переменную, которая используется.

  2. Создание объектов симуляции. В настоящий момент, реализовано 13 типов объектов. Среди них есть совсем примитивные – дискретный и аналоговый датчики, и достаточно сложные – генератор аналоговых сигналов и задвижка. Один из типов объектов позволяет писать скрипты на C#. Конфигурируя каждый объект симуляции, пользователь устанавливает переменные (Item), которые будет читать или писать данный объект, а также другие его параметры.

    Объекты можно добавлять, удалять и редактировать его свойства во время работы симулятора.

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

    Для того чтобы удалить объект симуляции необходимо сначала удалить все его отображения на всех панелях.

Конфигурация симулятора сохраняются в виде XML файла с простой структурой: <ProcessSimulator> <Items> [Переменные] </Items> <SimulationObjects> [Объекты симуляции] </SimulationObjects> <Screens> [Панели с отображениями объектов симуляции] </Screens> </ProcessSimulator> Это позволяет редактировать его вручную, генерировать скриптами, например в Excel, а также полноценно использовать систему контроля версий.

Так может выглядеть интерфейс симулятора:

Возможности
Создание симулятора автоматизируемого объекта даёт множество преимуществ:
  • Удобство разработки и тестирования. Создавая программу для ПЛК и параллельно с ней симулятор объекта, я могу проверить каждый участок кода и смоделировать практически любую ситуацию. Разработчик системы визуализации, также, пользуется всеми удобствами симулятора, не вникая, при этом, в программу ПЛК (и не дёргая меня, каждый раз, когда хочет что-то проверить). Более-менее нормальный графический интерфейс позволяет привлечь к тестированию системы человека, который не принимал участия в её создании, а значит, найдёт больше ошибок, чем любой из создателей. Кроме того, даже на объекте, можно переключить систему в режим симуляции, что-то доработать и проверить полностью программным методом, без использования реального оборудования.
  • Демонстрация работы программной части системы независимо от степени готовности всего остального.
  • Обучение операторов. Работа системы в режиме симуляции позволяет оператору более подробно, и главное без стресса, изучить работу системы (и найти ошибки).
  • Упрощение гарантийного сопровождения системы. Если воссоздать условия возникновения ошибки, иногда, можно обойтись без командировки на объект.
Дальнейшее развитие
Так как это мой первый опыт создания чего-то серьёзного на С#, прежде всего, хотелось бы переработать архитектуру:
  • Выделить слой отвечающего за внешние соединения и реализовать их в виде подключаемых модулей (Plug-in). Это позволит подключаться к нескольким OPC серверам и экземплярам Siemens SIMATIC S7PLCSim. Кроме того, облегчит добавление других типов соединений, например Modbus.
  • Внедрить класс визуальных элементов не связанных с симуляционными объектами. В настоящий момент, любой элемент интерфейса пользователя на экране обязательно связан с объектом симуляции, что не очень удобно. Иногда действительно не хватает возможности чего-нибудь нарисовать, вставить картинку или просто написать поясняющий текст.
  • Создать систему подключаемых модулей (Plug-in) для объектов симуляции и их отображений. Основное направления развития платформы – расширение библиотеки объектов симуляции, поэтому удобство их создания и интеграции является ключевым фактором.

Сайт
На сайте automation.ucoz.com можно скачать демонстрационную версию. Она не ограничена по времени, но в ней можно создать только 20 переменных и 10 объектов симуляции (все типы, кроме С# скриптов). полную версию (Freeware).

habr.com


 

..:::Новинки:::..

Windows Commander 5.11 Свежая версия.

Новая версия
IrfanView 3.75 (рус)

Обновление текстового редактора TextEd, уже 1.75a

System mechanic 3.7f
Новая версия

Обновление плагинов для WC, смотрим :-)

Весь Winamp
Посетите новый сайт.

WinRaR 3.00
Релиз уже здесь

PowerDesk 4.0 free
Просто - напросто сильный upgrade проводника.

..:::Счетчики:::..