Автоматизированная система функционального тестирования web-приложений
|
ВВЕДЕНИЕ 4
1 Понятие тестирования 7
1.2 Уровни тестирования 8
1.2.1 Модульное тестирование. 8
1.2.2 Интеграционное тестирование. 8
1.2.3 Системное тестирование. 9
1.3 Виды тестирования 10
1.3.1 Функциональное тестирование 10
1.3.2 Конфигурационное тестирование. 11
1.3.3 Нагрузочное тестирование. 11
1.3.4 Тестирование usability. 11
1.4 Автоматизированное тестирование 12
1.4.1 Модели создания автоматизированных тестов 14
1.5 Вывод 15
2 Обзор существующих систем автоматизированного тестирования 16
2.1 Selenium 16
2.2 HP QuickTest Professional 18
2.3 IBM Rational Functional Tester 20
3 Сравнение существующих систем 22
4 Разработка системы автоматизированного тестирования 23
4.1 Формирование требований к системе 23
4.2 Выбор основного языка программирования 24
4.3 Выбор технологий и спецификации 26
4.3.2 Selenium WebDriver 28
4.3.3 Библиотека тестирования jUnit 28
4.3.4 Система автоматической сборки проекта Maven 29
4.4 Разработанная архитектура 30
5 Реализация автоматизированной системы тестирования 31
5.1 Основные классы проекта 31
5.1.1 Before 31
5.1.2 Test 31
5.1.3 After 31
5.2 Описание объектов веб-страницы 32
5.2.1 XPATH 33
5.2.2 CSS 34
5.3 Дополнительные классы для WebDriver 35
5.4 Система генерации отчетов по проведенным тестам 37
5.5 Классы сбора дополнительной информации 39
5.6 Файлы конфигурации 40
6 Структура проекта 41
ЗАКЛЮЧЕНИЕ 43
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 44
ПРИЛОЖЕНИЕ А 46
ПРИЛОЖЕНИЕ Б 48
1 Понятие тестирования 7
1.2 Уровни тестирования 8
1.2.1 Модульное тестирование. 8
1.2.2 Интеграционное тестирование. 8
1.2.3 Системное тестирование. 9
1.3 Виды тестирования 10
1.3.1 Функциональное тестирование 10
1.3.2 Конфигурационное тестирование. 11
1.3.3 Нагрузочное тестирование. 11
1.3.4 Тестирование usability. 11
1.4 Автоматизированное тестирование 12
1.4.1 Модели создания автоматизированных тестов 14
1.5 Вывод 15
2 Обзор существующих систем автоматизированного тестирования 16
2.1 Selenium 16
2.2 HP QuickTest Professional 18
2.3 IBM Rational Functional Tester 20
3 Сравнение существующих систем 22
4 Разработка системы автоматизированного тестирования 23
4.1 Формирование требований к системе 23
4.2 Выбор основного языка программирования 24
4.3 Выбор технологий и спецификации 26
4.3.2 Selenium WebDriver 28
4.3.3 Библиотека тестирования jUnit 28
4.3.4 Система автоматической сборки проекта Maven 29
4.4 Разработанная архитектура 30
5 Реализация автоматизированной системы тестирования 31
5.1 Основные классы проекта 31
5.1.1 Before 31
5.1.2 Test 31
5.1.3 After 31
5.2 Описание объектов веб-страницы 32
5.2.1 XPATH 33
5.2.2 CSS 34
5.3 Дополнительные классы для WebDriver 35
5.4 Система генерации отчетов по проведенным тестам 37
5.5 Классы сбора дополнительной информации 39
5.6 Файлы конфигурации 40
6 Структура проекта 41
ЗАКЛЮЧЕНИЕ 43
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 44
ПРИЛОЖЕНИЕ А 46
ПРИЛОЖЕНИЕ Б 48
Создание собственных сайтов и веб-сервисов играет существенную роль в большинстве сфер бизнеса. Более того, бизнес модель множества компаний, таких как Яндекс, Google, Facebook заключается исключительно в получении прибыли от качественных интернет-сервисов, рекламы, платного контента, пожертвований пользователей и т. п.
Веб-приложения могут приносить огромную прибыль, по этому конкуренция в этой сфере очень высока. Даже небольшие ошибки, допущенные при разработке, могут повлиять на выбор пользователя относительно того, какой из конкурирующих сервисов ему предпочесть. Поэтому, как и во многих других областях, тестирование играет очень важную роль и в процессе создания веб-приложений. Разработка веб-приложения подразумевает под собой решение множества задач из множества разных областей, таких как: работа с большими объемами данных, построение архитектуры, реализация функционала, сетевая безопасность, дизайн и прочее.
Существует два основных вида тестирования: ручное и автоматизированное. В работе с первым видом тестирования инженер по качеству открывает в браузере проверяемую страницу и выполняет действия пользователя сайта. От итерации к итерации тестировщик проверяет разрабатываемое ПО на соответствие заявленным требованиям, подчинению законам логики, а так же оценивает дружелюбность интерфейса.
Каждая, независимая от других, последовательность действий тестировщика, выполняемых им в процессе проверок, называется тест кейсом или тестовым сценарием.
Автоматизированное тестирование состоит в написании автотестов - программ, направленных на выполнение заложенных в них тестовых сценариев. Таким образом, запустив тест, тестировщик может по истечению короткого периода времени получить информацию о том, были ли обнаружены в ходе выполнения данного сценария ошибки или тест пройден успешно. В случае положительного результата необходимость в ручном выполнении тест кейса отпадает.
Для разработки и запуска автотестов используются специальные системы автоматизированного тестирования.
Главной идеей автоматизированного тестирования является полная замена человеческого труда. Программист единожды создает программу, которая проверяет все, подготовленные заранее, тестовые сценарии. Далее, сценарии только поддерживаются в актуальном рабочем состоянии. Создание таких про-грамм позволяет минимизировать процесс ручного тестирования в жизненном цикла разрабатываемого ПО. Хочется отметить, что данный подход экономит время сотрудников отдела по качеству, а также заметно ускоряет работу группы разработчиков, и весь процесс разработки в целом.
Минусом автоматизации тестирования является то, что она применима только в отношении работы с длительными проектами. Создание программы тестирования отнимает не мало времени, и тратить это время для маленьких проектов просто бессмысленно. Как правило, автоматизированное тестирование эффективно применяется на относительно простых сценариях и проверках. Автоматизация сложных многошаговых сценариев может занять неприемлемо много времени ввиду непредвиденных нюансов или технических проблем. Также много времени может уйти на поддержку тестов при необходимости час¬то вносить в них изменения вслед за изменениями в тестируемой функциональности.
Не смотря на нюансы автоматизированного тестирования, данный вид не сдает позиции, и компании внедряют его в свой рабочий процесс. Как правило, автоматизированное тестирование используется в паре с написанием unit-тестов, которые проверяют разрабатываемый функционал на начальных этапах жизненного цикла. Далее, в конце итераций, применяется автоматизированное тестирование, чтобы охватить полностью весь функционал.
Целью создания автотестов является улучшение процесса достижения качества разрабатываемого продукта, по средствам автоматизированного тестирования. За счет сокращения времени тестирования тривиальных задач, которое может выполнить программа, инженер по качеству может охватить большую функциональность, и более глубоко проверить логику разработанного ПО.
Веб-приложения могут приносить огромную прибыль, по этому конкуренция в этой сфере очень высока. Даже небольшие ошибки, допущенные при разработке, могут повлиять на выбор пользователя относительно того, какой из конкурирующих сервисов ему предпочесть. Поэтому, как и во многих других областях, тестирование играет очень важную роль и в процессе создания веб-приложений. Разработка веб-приложения подразумевает под собой решение множества задач из множества разных областей, таких как: работа с большими объемами данных, построение архитектуры, реализация функционала, сетевая безопасность, дизайн и прочее.
Существует два основных вида тестирования: ручное и автоматизированное. В работе с первым видом тестирования инженер по качеству открывает в браузере проверяемую страницу и выполняет действия пользователя сайта. От итерации к итерации тестировщик проверяет разрабатываемое ПО на соответствие заявленным требованиям, подчинению законам логики, а так же оценивает дружелюбность интерфейса.
Каждая, независимая от других, последовательность действий тестировщика, выполняемых им в процессе проверок, называется тест кейсом или тестовым сценарием.
Автоматизированное тестирование состоит в написании автотестов - программ, направленных на выполнение заложенных в них тестовых сценариев. Таким образом, запустив тест, тестировщик может по истечению короткого периода времени получить информацию о том, были ли обнаружены в ходе выполнения данного сценария ошибки или тест пройден успешно. В случае положительного результата необходимость в ручном выполнении тест кейса отпадает.
Для разработки и запуска автотестов используются специальные системы автоматизированного тестирования.
Главной идеей автоматизированного тестирования является полная замена человеческого труда. Программист единожды создает программу, которая проверяет все, подготовленные заранее, тестовые сценарии. Далее, сценарии только поддерживаются в актуальном рабочем состоянии. Создание таких про-грамм позволяет минимизировать процесс ручного тестирования в жизненном цикла разрабатываемого ПО. Хочется отметить, что данный подход экономит время сотрудников отдела по качеству, а также заметно ускоряет работу группы разработчиков, и весь процесс разработки в целом.
Минусом автоматизации тестирования является то, что она применима только в отношении работы с длительными проектами. Создание программы тестирования отнимает не мало времени, и тратить это время для маленьких проектов просто бессмысленно. Как правило, автоматизированное тестирование эффективно применяется на относительно простых сценариях и проверках. Автоматизация сложных многошаговых сценариев может занять неприемлемо много времени ввиду непредвиденных нюансов или технических проблем. Также много времени может уйти на поддержку тестов при необходимости час¬то вносить в них изменения вслед за изменениями в тестируемой функциональности.
Не смотря на нюансы автоматизированного тестирования, данный вид не сдает позиции, и компании внедряют его в свой рабочий процесс. Как правило, автоматизированное тестирование используется в паре с написанием unit-тестов, которые проверяют разрабатываемый функционал на начальных этапах жизненного цикла. Далее, в конце итераций, применяется автоматизированное тестирование, чтобы охватить полностью весь функционал.
Целью создания автотестов является улучшение процесса достижения качества разрабатываемого продукта, по средствам автоматизированного тестирования. За счет сокращения времени тестирования тривиальных задач, которое может выполнить программа, инженер по качеству может охватить большую функциональность, и более глубоко проверить логику разработанного ПО.
В итоге получился мощный инструмент для автоматизации процесса функционального тестирования, удовлетворяющий всем заявленным требованиям и обладающий достаточным уровнем модульности для дальнейшего развития и расширения.
На данный момент разработанная система применяется для тестирования некоторых проектов в компании Aspirity и зарекомендовала себя как мощный и полезный инструмент для создания и проведения автоматизированного функционального тестирования.
В перспективе развития проекта планируется доделать интеграцию с билд сервером Jenkins для реализации непрерывной интеграции и тестирования на всех стадиях разработки проекта.
Так же планируется реализация взаимодействия системы с базами данных с помощью библиотеки JDBC.
На данный момент разработанная система применяется для тестирования некоторых проектов в компании Aspirity и зарекомендовала себя как мощный и полезный инструмент для создания и проведения автоматизированного функционального тестирования.
В перспективе развития проекта планируется доделать интеграцию с билд сервером Jenkins для реализации непрерывной интеграции и тестирования на всех стадиях разработки проекта.
Так же планируется реализация взаимодействия системы с базами данных с помощью библиотеки JDBC.
Подобные работы
- Использование сред непрерывной интеграции в комплексном тестировании программного обеспечения
Магистерская диссертация, информатика. Язык работы: Русский. Цена: 4870 р. Год сдачи: 2017 - АВТОМАТИЗИРОВАННАЯ СИСТЕМА СЕРВИСНОГО ОБСЛУЖИВАНИЯ АВТОМОБИЛЕЙ
Дипломные работы, ВКР, информатика. Язык работы: Русский. Цена: 4265 р. Год сдачи: 2017 - РАЗРАБОТКА WEB-ПРИЛОЖЕНИЙ УЧЕТА И КОНТРОЛЯ ПРОИЗВОДСТВЕННОЙ ДЕЯТЕЛЬНОСТИ ОПТОВОЙ БАЗЫ ИП БРОВКОВ Г.Е.
Дипломные работы, ВКР, информатика. Язык работы: Русский. Цена: 4200 р. Год сдачи: 2017 - ИССЛЕДОВАНИЕ И РАЗРАБОТКА МЕТОДОВ ИНТЕЛЛЕКТУАЛЬНОГО ТЕСТИРОВАНИЯ ПРОГРАММНЫХ ПРОДУКТОВ
Магистерская диссертация, информационные системы. Язык работы: Русский. Цена: 4800 р. Год сдачи: 2018 - РАЗРАБОТКА WEB-ПРИЛОЖЕНИЯ ДЛЯ СИСТЕМЫ ЗАКАЗОВ НЕФТЕПРОДУКТОВ ООО «ХОРОС»
Дипломные работы, ВКР, информационные системы. Язык работы: Русский. Цена: 4330 р. Год сдачи: 2017 - РАЗРАБОТКА WEB-ПРИЛОЖЕНИЯ ДЛЯ ВЕДЕНИЯ ЗДОРОВОГО ОБРАЗА ЖИЗНИ
Дипломные работы, ВКР, информатика. Язык работы: Русский. Цена: 4750 р. Год сдачи: 2023 - Функциональное и автоматизированное тестирование веб-приложений
Дипломные работы, ВКР, программирование. Язык работы: Русский. Цена: 4650 р. Год сдачи: 2018 - Разработка информационной системы аттестационного тестирования медицинских работников
Бакалаврская работа, информатика. Язык работы: Русский. Цена: 5750 р. Год сдачи: 2017 - Разработка информационной системы аттестационного тестирования медицинских работников
Бакалаврская работа, информатика. Язык работы: Русский. Цена: 5750 р. Год сдачи: 2017



