Диплом: Автоматизация регрессионного тестирования с использованием языка программирования Python

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
62
Рисунок 11 - Блок импорта
2. Блок определения. В данном случае мы видим, что тест относиться к
группе «Market data» (рыночные данные), к подгруппе
«ITCH_Daily_Life_Cycle» (ITCH протокол, ежедневные сообщения). [32]
Тест представляет собой функцию, которая выполняется библиотекой pytest.
Название теста начинается с «test_», что и позволяет библиотеке pytest
определять эту функцию как тест. [38] В «Story» тестировщики записывают
тест сценарий или краткое описание того, что именно проверяется в тесте.
Рисунок 12 - Блок определения
3. Блок запроса к базе данных. Запрос к базе данных происходит
посредством языка SQL. В переменную query тестировщики записывают
нужный им запрос. Далее происходит подключение к базе данных, и
посылается запрос, указанный в переменной query.
63
Рисунок 13 - Блок запроса к базе данных
4. Блок валидации данных. Валидация данных происходит с помощью
встроенных в библиотеку pytest сравнений (assert) или с использованием
самостоятельно написанных вариантов сравнений (assert) основанных на
библиотеке hamcrest.
Множество шаблонов разнообразных сравнений присутствуют в
документации по тестам. Также, для тестировщиков, имеется справочная
информация, по созданию собственных вариантов сравнений, на
официальном сайте библиотеки hamcrest.
В ответ на запросы к базе дынных мы получаем список словарей.
Который представляет из себя: [{"a": 1},{"a": 2},{"a": 3}], где каждый
словарь является отдельным сообщением.
Ниже приводится пример сравнения, в котором мы хотим узнать какое
количество сообщений (словарей) имеет ключ lengthсо значением равным
92:
64
assert_that(counting_value(test.result, ‘length’, 92), equal_to(5))
Рисунок 14 - Блок валидации данных
Фактически у нас получается одна большая функция (тест) на входе в
которую подаются какие-либо данные, а на выходе возвращается результат,
пройден тест или нет.
ВЫВОД по главе 3. На основании проведенного во второй главе
анализа была выявлена проблема не полной автоматизации регрессионных
тестов в компании Exactpro. Основываясь на данных из предыдущих глав,
было принято решение исправить этот недостаток. Решение данной
проблемы позволит компании уменьшить финансовые затраты на
регрессионное тестирование на 986728 руб., и позволит задействовать
освободившихся тестировщиков на других направлениях или проектах.
Разработанное в ходе исследования решение, основанное на стеке
технологий shsha, python, pytest, allure показало свою жизнеспособность.
Внедрение данного решения, руководством компании, было признано
целесообразным.
65
ЗАКЛЮЧЕНИЕ
В ходе исследования были рассмотрены теоретические основы
тестирования, затронуты аспекты развития тестирования относительно
развития цифровых технологий, в общем. Дана краткая характеристика
видам, типам и методологиям тестирования.
При решении задачи изучения основ теории тестирования, было
выявлено большое многообразие видов и методов тестирования. Что
позволило сделать выводы о дальнейшем бурном развитии области
тестирования программного обеспечения. Из чего следует, что растущая роль
процесса тестирования повлечет за собой увеличение финансовой нагрузки
на компании производителей ПО, в связи с чем, прогнозируется рост
составляющей автоматизации тестирования программного обеспечения.
При решении задачи выявления критериев эффективности внедрения
процесса автоматизации, был более подробно был рассмотрен сам объект
исследования. Указаны основные черты автоматизации тестирования
программного обеспечения, приведены критерии эффективности процесса
автоматизации.
Был произведен анализ и установлена целесообразность внедрения
автоматических тестов в проектную работу в компании Exactpro, в частности,
автоматизации регрессионного тестирования рыночных данных фондовой
биржи. Замечено что, внедрение полноценного автоматического
тестирования для регрессионных тестов, значительно повышает
производительность команды тестирования. Использование продуктов с
открытым исходным кодом позволяет избежать финансовых и юридических
проблем.
66
В связи с автоматизацией регрессионного тестирования и
освобождением от загруженности тестировщиков, проектная загруженность
позволяет проводить регрессионное тестирование в несколько раз чаще, что
позволит более тщательно следить за изменения в функционале
программного обеспечения и проверять наличие сопутствующей регрессии.
Для решения задачи расчёта экономической целесообразности
внедрения автоматизации регрессионного тестирования были собраны
финансовые данные о деятельности компании, и затратах на тестирование
программного продукта. Произведенные расчеты показали состоятельность
идеи внедрения автоматизации, что позволило доказать свою точку зрения
руководству компании.
В ходе решения задачи разработки методики внедрения, в рабочий
процесс, автоматизации регрессионного тестирования был подробно
рассмотрен предмет исследования - автоматизация регрессионного
тестирования с использованием языка программирования Python. Для
решения задачи были разработаны автоматические тесты, которые на
практике показали руководству компании целесообразность и эффективность
внедрения автоматизации.
Таким образом, задачи решены в полном объеме, цель работы
достигнута полностью, произведен анализ и разработка процесса внедрения
автоматизации регрессионного тестирования в компании Exactpro.
Разработанные шаблоны автоматических тестов могут быть легко
применены для автоматизации другого программного продукта, которые
использует аналогичные протоколы передачи данных. Используемые тест-
скрипты могут быть оформлены как универсальные, посредством блочной
структуры кода. Таким образом, существует возможность их применения не
67
только для тестирования аналогичного протокола (ITCH), но любых других
протоколов передачи рыночных данных используемых на фондовых биржах.
В ходе проведения исследования доказано, что в долгосрочной
перспективе, внедрение процесса автоматизации регрессионного
тестирования является целесообразным.
Методика автоматизации регрессионного тестирования, разработанная
и представленная на страницах данной работы имеет большую практическую
значимость. С помощью данной методики процесс полного регрессионного
тестирования удалось значительно сократить по времени, и по максимуму
исключить из процесса регрессионного тестирования «человеческий
фактор».
68
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
Источники на русском языке
1. Бенджамин Г., Додд Д. Анализ ценных бумаг. Москва: Лори,
2016 880 с.
2. Бьюли А. Изучаем SQL. Символ-Плюс, 2016. – 312 с.
3. Бэрри П. Изучаем программирование на Python. – Москва: Эксмо,
2017. 624 с.
4. Вигерс Карл И., Битти Дж. Разработка требований к
программному обеспечению. – Спб.: БХВ-Петербург, 2016 – 736
с.
5. Коберн A. Современные методы описания функциональных
требований к системам. – Москва: Лори, 2017 – 288 с.
6. Криспин Л., Грегори Дж. Гибкое тестирование. Практическое
руководство для тестировщиков ПО и гибких команд. – Москва:
Вильямс, 2016 464с.
7. Майерс Г. Искусство тестирования программ. Москва:
Вильямс, 2016. – 272 с.
8. Мерфи Джон Дж. Технический анализ фьючерсных рынков.
Теория и практика. – Москва: Альпина Паблишер, 2018.610 с.
9. Паттон Дж. Пользовательские истории. Искусство гибкой
разработки ПО. – Спб.:Питер, 2017 288 с.
10. Савин Р. Тестирование Дот Ком, или Пособие по жестокому
обращению с багами в интернет-стартапах. Москва:
Издательские решения, 2017. – 312 с.
69
11. Саммерфилд М. Python на практике. – Москва: ДМК Пресс, 2016.
338 с.
12. Свейгарт Э. Автоматизация рутинных задач с помощью Python:
практическое руководство для начинающих. – Москва: Вильямс,
2016. 592 с.
13. Уиттакер Дж., Арбон Дж., Каролло Дж. Как тестируют в Google.
Спб.: Питер, 2014. 320 с.
14. Фаулер Ч. Программист-фанатик. – Спб.: Питер, 2016 208 с.
15. Халл Джон К. Опционы, фьючерсы и другие производные
финансовые инструменты. – Москва: Вильямс, 2018. 1072 с.
16. Хамбл Д., Фарли Д. Непрерывное развертывание ПО.
Автоматизация процессов сборки, тестирования и внедрения
новых версий программ. – Москва: Вильямс, 2016. – 432 с.
17. Швагер Джек Д. Технический анализ. Полный курс. Москва:
Альпина Паблишер, 2018. 802 с.
Источники на иностранных языках
18. Copeland L. A Practitioner’s Guide to Software Test Design. –
Boston: Course Technology, 2003. – 300 p.
19. Dorothy G. Foundations of Software Testing: ISTQB Certification,
3rd ed.Sebastopol: Pragmatic Bookself, 2017. – 280 p.
20. Kaner C. Bug Advocacy: A BBST Workbook. – New York: Context-
Driven Press, 2015. – 238 p.
21. Kramer A. Model-Based Testing Essentials - Guide to the ISTQB
Certified Model-Based Tester: Foundation LevelHoboken: Wiley,
2016. – 304p.
70
22. Laboon B. A Friendly Introduction to Software Testing. Charleston:
CreateSpace Independent Publishing Platform, 2016. – 230 p.
23. Okken B. Python Testing with pytest: Simple, Rapid, Effective, and
Scalable. Sebastopol: Pragmatic Bookshelf, 2017. – 222 p.
24. Suden G. Automated Data Warehouse Testing: Beginner's step by step
guide. Charleston: CreateSpace Independent Publishing Platform,
2015. – 364 p.
25. Tarlinder A. Developer Testing: Building Quality into Software. –
Boston: Addison-Wesley Professional, 2016. –352 p.
Электронные ресурсы
26. ISTQB. The Foundation Level Syllabus. // Certifying Software
Testers Worldwide [Электронный ресурс] URL:
https://www.istqb.org/downloads/send/2-foundation-level-
documents/3-foundation-level-syllabus-2011.html4 (дата обращения:
10.05.2018).
27. PyTest // «Хабр» крупнейший в Европе ресурс для IT-
специалистов. [Электронный ресурс]. URL:
https://habr.com/post/269759/ (дата обращения: 10.05.2018).
28. Market Data and Statistics specification London Stock Exchange. //
www.lseg.com [Электронный ресурс]. URL:
https://www.lseg.com/areas-expertise/market-information/market-
data-and-statistics (дата обращения: 10.05.2018).
29. Виды тестирования программного обеспечения. // Protesting
[Электронный ресурс]. URL:
http://protesting.ru/testing/testtypes.html (дата обращения:
10.05.2018).

Смотрите также:

«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран
Work-life balance подход в управлении рабочим временем молодых сотрудников (на примере ООО «МГТ-сервис»)
Автоматизация управления проектами студии ООО «Альт айти солюшенс»
Автоматизация учета рабочего времени сотрудников компании ООО "Эпам Системз"
Автоматизация учёта ремонта компьютерного оборудования в компании «ГАРАНТ-СЕРВИС»
Автоматизация учета товара на складе для фирмы Эльдорадо