Тестирование программного обеспечения

История развития тестирования программного обеспечения и современные достижения в данной сфере. Системные и пользовательские требования, атрибуты качества. Виды тестирования по степени знания кода. Тестирование мобильных приложений на базе ОС Android.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 04.11.2015
Размер файла 5,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

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

9. Приложения для автоматизации мобильного тестирования

Appium

Рис 17. Пример интерфейса программы

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

Базовыми принципами данного проекта являются:

1. Возможность сохранить базу тестовых сценариев после обновления версии приложения

2. Возможность использовать различные языки для создание тестовых скриптов

По сути, appium является веб-сервером, работающим под управлением REST API. Он отправляет команды на мобильные устройства по HTTP и ожидает их выполнения. Сами сценарии создаются на любом известном языке программирования и скриптинга и затем преобразуются в команды, понятные машине. Сами команды отправляются на установленный на мобильном устройстве клиент, который и инициирует их выполнение.

Calabash

Рис 18. Структура программы

Calabash -кросплатформеная тестовая утилита с открытым исходным кодом, разработанная для автоматизации процесса тестирования на iOS и Android.

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

- жесты

- проверки

- снятие скриншота

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

Testdroid

Рис 19. Пример интерфейса программы

Это набор программных утилит, разработанных компанией Bitbar Technologies.

Он включает в себя:

Testdroid Cloud - база реальных android и ios устройств, которые доступны для запуска симуляционых тестов на основе cloud-based сервисов

Testdroid Recorder- утилита для создания тестовых сценариев путем записи пользовательских действий и последующего воспроизведения их на тестируемом приложении

Testdroid Enterprise - серверное программное обеспечение для управления процессом автоматизированного тестирования на множестве устройств на android и ios.

Perfecto Mobile

Рис 20. Пример интерфейса программы

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

SOASTA TouchTest

Рис 21. Пример интерфейса программы

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

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

Testin

Рис 22. Пример интерфейса программы

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

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

Ranorex

Рис 22. Пример интерфейса программы

Утилита для тестирования нативных и web-based приложений на android и ios.

Поддерживает широкий спектр возможностей, таких как:

- Распознавание объектов интерфейса. С помощью установленного на мобильное устройство способен распознать все элементы интерфейса, даже в данный момент не активны.

- Объектное- ориентированная функция записи/воспроизведения

- Библиотеки для автоматизации процесса тестирования

- Гибкий интерфейс автоматизации процесса тестирования

Программный пакет поддерживает следующие типы тестирования:

- Приемочное тестирование

- Автоматизирование тестирование

- Тестирование методом черного ящика

- Функциональное тестирование

- Тестирование пользовательского интерфейса

- Веб тестирование

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

- Тестирование JAVA приложений

- Регрессионное тестирование

- Keyword-driven тестирование

-Data-driven тестирование

- мультиплатформенное тестирование

eggPlant

Рис 23. Пример интерфейса программы

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

10. Процесс тестирования мобильных приложений на базе ОС Android в «ЗАО Лаборатория Касперского»

В качестве рабочего окружения для полной интеграции с процессом разработки используется Microsoft Visual Studio Team Foundation Server, который позволяет получить доступ к данным проекта, его требованиям, сборочным конвейерам и единым спискам задач и проблем для каждой команды разработки.

Рис 24. Пример интерфейса программы

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

Рис 25. Создание тестового сценария

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

Рис 26. Создания линков

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

Как правило, тестовые планы создаются в Microsoft test manager - модуле Microsoft TFS, которые посвящен процессу тестирования. Создания тестового плана является, по сути, созданием запроса к базе данных, которой и является TFS, на основе составления регулярных выражений.

Рис 27. Составление тестового плана

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

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

Рис 28. Выполнение тестового сценария

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

Рис 29. Выполнение тестового сценария

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

В самом же процессе тестирования в основном используется функционал android sdk,а именно - android debug bridge (adb) и eclipse sdk.

Рис 30. Интерфейс adb

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

Eclipse sdk представляет из себя программный продукт, который состоит из отдельных модулей и может быть использован не только для работы с android но и для работы, например, с tizen (tizen sdk).

Рис 31. Окно Eclipse SDK

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

Сам процесс эмулирование основан на работе AVD - android virtual device.

Рис 32. Окна AVD

В нем задаются параметры эмулируемого устройства, такие как версия операционной системы, наличие и размер SD карты, разрешение экрана, элементы управления и настройки «железа»

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

11. Конструкторско-технологическая часть

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

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

- devices

- logcat

- install

- pull

- push

- shell

Итак, основной функционал будет строиться вокруг этих команд.

Так же будет полезно добавить следующие команды:

adb shell pm list packages - получение списка всех установленных приложений

adb shell top (парарметры)- выводит список запущенных процессов и их потребление ЦПУ/памяти

adb shell monkey (параметры)- запускает процедуру тестирования телефона или конкретного процесса на предмет случайных нажатий с указанной скоростью и количеством нажатий.

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

Алгоритм должен быть максимально простым и однозначным.

После запуска программы мы можем вызвать команду adb devices, которая инициализирует и запустит процесс adb.exe и так же подключит к нему подключенное по USB порту устройство.

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

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

Так же необходимо скачать драйверы для Android adb device https://dl-ssl.google.com//android/repository/latest_usb_driver_windows.zip

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

Рис 33.Алгоритм работы программы

Алгоритмы для снятия логов и выполнения monkey тестирования линейны и состоят из нескольких шагов: инициализация команды, перевод ее в формат adb и вывод/сохранение результата.

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

После процесса разработке итоговая программа выглядит следующим образом:

Главное окно программы

Вкладка снятия логов и метрик

Вкладка с дополнительными параметрами

Демонстрация работы разработанного программного обеспечения

Установим приложение Shazam на выбранное устройство:

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

Если приложение уже установлено, то повторно его установить будет нельзя, так как имена пакетов буду совпадать:

Но если активировать пункт «переустановить», то команда adb install выполнится с ключом -r что позволит установить приложение повторно:

Метрики можно выводить двух типов - использование процессора и использование памяти. Для начала процесса необходимо выбрать нужный тип метрики, выставить частоту обновления вывода и нажать кнопку «старт». Процессы буду автоматически располагаться в порядке убывания выбранной метрики:

Для удобства слежения за одним процессом можно использовать фильтр по данному процессу:

Для логирования состояние системы необходимо выбрать директорию, куда будет сохранятся файл с логом и придумать название для этого файла. Затем нажать кнопку «старт»:

Содержимое файла logs.txt будет выглядеть примерно следующим образом:

Для остановки записи необходимо нажать кнопку «стоп».

Monkey тестирование - это вид тестирования, при котором телефону отдается команда о хаотичном нажимании всех элементов интерфейса заданное количество раз с заданным интервалом. Служит для проверки отказоустойчивости приложения в длительных или экстремальных режимах работы.

На экране с этим видом теста можно задать интервал нажатия (в миллисекундах) и общее количество нажатий.

Если нужно протестировать конкретное приложение, то следует ввести имя его пакета в соответствующую строку.

Если вам не обязательно проверять, как ваше приложение ваше приложение обрабатывает нажатие системных клавиш, то их можно игнорировать, поставив галочку напротив «игнорировать системные клавиши»

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

Заключение

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

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

Размещено на Allbest.ru

...

Подобные документы

  • Неразрешимость проблемы тестирования программного обеспечения. Виды и уровни тестирования. Стратегии восходящего и нисходящего тестирования. Методы "белого" и "черного" ящика. Автоматизированное и ручное тестирование. Разработка через тестирование.

    курсовая работа [112,2 K], добавлен 22.03.2015

  • Изучение различных видов тестирования программного обеспечения. Выявление в программной системе скрытых дефектов до того, как она будет сдана заказчику. Тестирование методом черного ящика. Требования, предъявляемые к процессу тестирования больших систем.

    курсовая работа [3,0 M], добавлен 19.11.2009

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

    курсовая работа [309,5 K], добавлен 16.12.2015

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

    дипломная работа [1,7 M], добавлен 03.05.2018

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

    курсовая работа [1,6 M], добавлен 20.12.2012

  • Описание исходных текстов программного продукта. Системные требования и установка программного продукта. Тестирование пользователя по двадцати вопросам указанной темы и сохранение результатов тестирования. Форма отображения результатов тестирования.

    курсовая работа [2,8 M], добавлен 09.07.2013

  • Комплексное функциональное и структурное тестирование программного продукта - граф-программа решения квадратного уравнения. Постановка задачи структурного тестирования маршрутов. Заключение о типе и причине ошибки, предложение по ее исправлению.

    курсовая работа [2,8 M], добавлен 05.01.2013

  • Развитие аппаратных компьютерных средств - задача первых трех десятилетий компьютерной эры. Процесс тестирования как составляющая процесса обеспечения качества разработки ПО. Принципы и критерии, предъявляемые к тестированию программного обеспечения.

    курсовая работа [319,5 K], добавлен 25.05.2009

  • Тестирование и отладка программного обеспечения: понятие, принципы, этапы, цели и задачи. Тестирование методом сандвича как компромисс между восходящим и нисходящим подходами. Сущность метода "белого и черного ящика", отладки программного обеспечения.

    курсовая работа [36,9 K], добавлен 21.07.2012

  • Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.

    отчет по практике [296,1 K], добавлен 19.04.2015

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

    дипломная работа [3,2 M], добавлен 11.09.2014

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

    контрольная работа [161,8 K], добавлен 25.12.2014

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

    дипломная работа [3,2 M], добавлен 30.06.2011

  • Автоматизация регрессионного тестирования. Классификация по способу сопровождения. Построение потового графа. Набор модульных тестов. Покрытие тестами классов эквивалентности. Тестирование методом "черного ящика". Тесты регрессии на "закрытых" багах.

    курсовая работа [1,8 M], добавлен 16.01.2017

  • Общий обзор проблемы безопасности ОС Android. Развитие индустрии по борьбе с вредоносным и мошенническим ПО. Разработка Системы ранжирования уровней опасности Android приложений. Выбор производителя и типа СУБД. Тестирование программного обеспечения.

    дипломная работа [2,7 M], добавлен 13.02.2016

  • Сущность тестирования и отладки, методика выявления ошибок в программном обеспечении. Практика отладки приложений в среде Delphi, системы управления версиями приложения и отслеживания ошибок. Применение точек остановки и модификация локальных переменных.

    курсовая работа [303,4 K], добавлен 19.01.2016

  • Архитектура и история создания операционной системы Android. Язык программирования Java. Выбор средства для реализации Android приложения. Программная реализация Android приложения. Проведение тестирования разработанного программного обеспечения.

    курсовая работа [167,8 K], добавлен 18.01.2017

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

    презентация [114,7 K], добавлен 14.08.2013

  • Процессы тестирования: общее понятие, история, философия. Главные особенности интеграции модулей. Испытание программных продуктов: цель и особенности, технологическая схема, планирование и оценка завершенности. Кoмплeксный имитaциoннo-мoдeлирующий стeнд.

    курсовая работа [37,2 K], добавлен 21.07.2012

  • Описание среды разработки Microsoft Visual Studio. Поддерживаемые технологии и языки программирования. Возможности и особенности компьютеризированного тестирования человека. Проектирование программного обеспечения с использованием объектного подхода.

    курсовая работа [3,0 M], добавлен 09.02.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.