Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал: http://elartu.tntu.edu.ua/handle/lib/43169
Назва: Розробка і аналіз системи автоматизованого тестування програмних продуктів з використанням javascript (комплексна тема)
Інші назви: Development and analysis of the system of automated testing of software products using javascript (complex topic)
Автори: Ковтко, Андрій Михайлович
Лещук, Назар Володимирович
Kovtko, Andrii
Leshchuk, Nazar
Приналежність: Тернопільський національний технічний університет імені Івана Пулюя
Факультет прикладних інформаційних технологій та електроінженерії (ФПТ)
Кафедра автоматизації технологічних процесів і виробництв
Бібліографічний опис: Ковтко А.М., Лещук Н.В., Розробка і аналіз системи автоматизованого тестування програмних продуктів з використанням javascript (комплексна тема). : кваліфікаційна робота магістра за спеціальністю «151 — Автоматизація та комп’ютерно-інтегровані технології» / А.М. Ковтко, Н.В. Лещук. – Тернопіль: ТНТУ, 2023. – 129 с.
Bibliographic description: Kovtko A.M., Leshchuk N.V., Development and analysis of the system of automated testing of software products using javascript (complex topic). : master's qualification work in the specialty "151 – Automation and computer-integrated technologies" / A.M. Kovtko, N.V. Leshchuk – Ternopil: TNTU, 2023. – 129 p.
Дата публікації: 29-гру-2023
Дата подання: 20-гру-2023
Дата внесення: 29-гру-2023
Видавництво: Тернопільський національний технічний університет ім. І. Пулюя, Факультет прикладних інформаційних технологій та електроінженерії, Кафедра автоматизації технологічних процесів і виробництв
Країна (код): UA
Місце видання, проведення: Тернопільський національний технічний університет ім. І. Пулюя, Факультет прикладних інформаційних технологій та електроінженерії, Кафедра автоматизації технологічних процесів і виробництв.
Установа захисту: ЕК №22, 2023 р.
Науковий керівник: Коноваленко, Ігор Володимирович
Konovalenko, Ihor
Члени комітету: Чихіра, Ігор Вікторович
Chykhira, Ihor
УДК: 681.5
Теми: 151
автоматизація та комп’ютерно-інтегровані технології
автоматизація
тестування
програмне забезпечення
аналіз
генерація тестових даних
javascript
якість програмного забезпечення
вимоги
automation
testing
software
analysis
test data generation
software quality
requirements
Діапазон сторінок: 1-129
Кінцева сторінка: 129
Короткий огляд (реферат): Дана магістерська кваліфікаційна стосується розробки засобів автоматизованого тестування програмного забезпечення для підвищення його ефективності, економії часу, ресурсів і витрат. В даній роботі проаналізовано аналоги платформ тестування програмного забезпечення, визначено їх функціональні можливості. Розглянуто різні сучасні інструменти автоматизованого тестування програмного забезпечення. Розроблено програмне забезпечення для автоматизованого тестування веб-сайтів за допомогою двох типів тестування, – UI & API та API тестування. Окремо розроблено архітектуру автоматизованого фреймворку. Для тестування UI частини нашого веб-сайту, було використано інструмент Playwright, для API тестування вибрано інструмент SuperTest. Для запуску тестів використовуємо Jest приєднаними відповідними бібліотеками, котрі додаємо до package.json. Розроблено систему збору аналітичних даних по результатам проведених тестувань. Для цього використані тестові репорти двох типи тестів UI i API і для цього використовуються різні інструменти. Для API це окрема бібліотека яка на основі Jest_runner, котра агрегує дані і генерує репорт. Для UI тестування інструмент Playwright має хороший вбудований репорт. Для зручності додано ще один репорт – Allure, котрий агрерує всі дані і формує один загальний репорт. Досліджено ефективність інструментів автоматичного тестування з використанням автоматичної генерації тестових даних, що має важливе значення для підтримки модульного тестування. У кваліфікаційній роботі проведено порівняння добре відомих загальнодоступні інструменти генерації даних модульного тестування, – TestGen4j , JCrasher та JUB. Їх застосували до класів Java та оцінили ефективність на основі шкали значень їхніх мутації.
This master's qualification concerns the development of automated software testing tools to increase its efficiency, save time, resources and costs. In this paper, analogues of software testing platforms are analyzed, and their functionality is determined. Various modern automated software testing tools are considered. Developed software for automated website testing using two types of testing, UI & API and API testing. The architecture of the automated framework was developed separately. For testing the UI part of our website, the Playwright tool was used, and for the API testing, the SuperTest tool was chosen. To run the tests, we use Jest with the appropriate libraries attached, which we add to package.json. A system for collecting analytical data based on the results of the tests has been developed. For this, test reports of two types of UI and API tests are used and various tools are used for this. For the API, this is a separate library based on Jest_runner, which aggregates data and generates a report. For UI testing, the Playwright tool has a nice built-in report. For convenience, one more report has been added - Allure, which aggregates all data and forms one general report. The effectiveness of automatic testing tools using automatic generation of test data, which is important to support unit testing, is investigated. In the qualification work, a comparison of well-known publicly available data generation tools for unit testing, TestGen4j, JCrasher and JUB, was made. They were applied to Java classes and evaluated for performance based on a scale of their mutation values.
Опис: Робота виконана на кафедрі автоматизації технологічних процесів і виробництв факультету прикладних інформаційних технологій та електроінженерії Тернопільського національного технічного університету імені Івана Пулюя Міністерства освіти і науки України. Захист відбудеться «29» грудня 2023р. о 9.00год. на засіданні екзаменаційної комісії №22 у Тернопільському національному технічному університеті імені Івана Пулюя.
Зміст: АНОТАЦІЯ 3 ABSTRACT 4 ЗМІСТ 5 ВСТУП 11 1 АНАЛІТИЧНА ЧАСТИНА 14 1.1 Інструменти автоматизованого тестування програмного забезпечення 14 1.3 Огляд автоматизованих інструментів тестування (з основними функціями) 16 1.3.1 Платформа Katalon 16 1.3.2 Фреймворк Selenium 18 1.3.3 Інструмент автоматизації тестування програмного забезпечення Appium 19 1.3.4 Функціональне тестування інтерфейсу TestComplete 19 1.3.5 Система тестування програмного забезпечення Cypress. 20 1.3.6 Автоматизоване тестування GUI для веб-додатків Ranorex Studio 21 1.3.7 Хмарна платформа автоматизованого тестування Perfecto 22 1.3.8 Хмарна платформа автоматизованого тестування LambdaTest 23 1.3.9 Інструмент автоматизованого тестування API Postman 23 1.3.10 Інструмент тестування API SoapUI 24 1.3.11 Інструмент автоматизації тестування GUI Eggplant, Eggplant Functional 25 1.3.12 Комплексний інструмент автоматизації для веб-тестування Tricentis Tosca 25 1.3.13 Інструмент автоматизованого тестування продуктивності 26 1.3.14 Платформа автоматизації тестування програмного забезпечення Robot Framework 27 1.3.15 Автоматизований інструмент візуального тестування Applitools 28 2 НАУКОВО-ДОСЛІДНА ЧАСТИНА 30 Порівняння інструментів автоматизованої генерації тестів на рівні модуля 30 2.1 Вибір інструментів автоматизованої генерації тестів 31 2.2 Розробка інструментів експериментального дослідження 32 2.3 Суб’єкти та інструменти модульного тестування 33 2.4 Додаткові набори тестів 34 2.5 Перевірка Java класів. 34 2.6 Інструмент тестування мутацій MuJava 35 2.7 Порівняльне експериментальне дослідження інструментів JCrasher, TestGen4J, JUB. 36 2.8 Загрози достовірності результатів 37 3 ТЕХНОЛОГІЧНА ЧАСТИНА 50 3.1 Тестування програмного забезпечення – загальний огляд 50 3.2 Підтримка та покращення якості програмної продукції 51 3.3 Види тестування ПЗ 52 3.4 Підходи до тестування ПЗ 53 3.5 Життєвий цикл тестування програмного забезпечення 54 3.5.1. Аналіз вимог. 54 3.5.2. Планування тестування 55 3.5.3. Розробка тестового випадку 56 3.5.5. Виконання тесту 58 3.5.6. Закриття випробувального циклу 58 3.6 Популярні моделі тестування програмного забезпечення 58 3.6.1. V-модель 59 3.6.2. Тестова модель піраміди 59 3.6.3. Стільникова модель 60 3.8 Порівняння автоматизованого тестування проти ручного 62 4 ПРОЕКТНА ЧАСТИНА 65 4.1 Автоматизоване тестування веб-сайту 65 4.1.1. Стратегія тестування: 65 4.1.2. Підхід до написання автоматизованих тестів: 66 4.1.3. API тестування: 66 4.1.4. Ручне API тестування: 67 4.1.5. Автоматизоване API тестування: 68 4.1.6. Переваги автоматизованого API тестування: 69 4.1.7. Процес тестування API: 70 4.1.8. Реалізація API тестування: 70 4.1.9. Реалізація UI тестування: 74 4.2 Архітектура автоматизованого фреймворку 76 4.2.1. Написання тестів 77 4.2.2. Процес написання тестів: 78 4.2.3. Тестові Layers (шари): 78 4.3 CI/CD + репортинг 79 4.3.1.Тестові репорти: 79 4.3.2. CI/CD: 79 5 СПЕЦІАЛЬНА ЧАСТИНА 82 5.1 Фреймворк для тестування JavaScript Jest. 82 5.1.1. Синтаксис та низький поріг вхідного бар'єру. 82 5.1.2. Автоматичне визначення тестових файлів. 82 5.1.3. Можливості мокування та підробки (Mocking). 82 5.1.4. Розширена підтримка асинхронного коду. 83 5.1.5. Зручний інтерфейс виведення результатів. 83 5.1.6. Сприяння тестам з великим обсягом даних. 84 5.1.7. Підтримка Snapshot-Тестування. 84 5.1.8. Підтримка таймерів. 84 5.1.9. Розширюваність та плагіни. 84 5.1.10. Підтримка серверного та клієнтського коду. 85 5.1.11. Параметризовані тести: 85 5.1.12. Тайм-аути та Retry. 85 5.1.13. Глобальні функції beforeAll, afterAll, beforeEach, afterEach. 85 5.1.14. Тестування Async/await. 86 5.1.15. Динамічні Тести. 86 5.1.16. Виведення покриття коду. 86 5.1.17. Вбудований інтерфейс тестування React. 87 5.2 Детальний розбір бібліотеки SuperTest. 88 5.2.1. Синтаксис та інтеграція. 88 5.2.2. Підтримка різних HTTP-методів. 88 5.2.3. Перевірка заголовків та тіла відповіді. 88 5.2.4. Можливість використання Cookies та Сесій. 89 5.2.5. Асинхронна підтримка. 89 5.2.6. Підтримка JSON та форм-даних. 89 5.2.7. Виведення тестових запитів. 90 5.2.8. Легка інтеграція з іншими фреймворками тестування. 90 5.2.9. Підтримка таймаутів та повторів. 90 5.2.10. Організація тестових середовищ. 91 5.2.11. Підтримка організації тестових сценаріїв. 91 5.2.12. Виведення деталей запиту та відповіді. 91 5.2.13. Використання Promise та Async/await. 92 5.2.14. Підтримка тестового збільшення навантаження. 92 5.2.15. Розширюваність та плагіни. 92 5.3 Детальний розбір Playwright. 93 5.3.1. Багатофункціональність. 93 5.3.2. Підтримка різних браузерів. 93 5.3.3. Асинхронна підтримка та Promise API. 94 5.3.4. Робота з багатьма сторінками, мультиплікація. 94 5.3.5. Засоби для тестування продуктивності. 94 5.3.6. Обробка подій та введення користувача. 95 5.3.7. Взаємодія з фреймами та IFrames. 95 5.3.8. Тестування мобільних веб-додатків. 95 5.3.9. Синхронізація та очікування умов. 95 5.3.10. Скріншоти та відеозаписи тестів:. 96 5.3.11. Інтеграція з іншими інструментами. 96 5.3.12. Обмеження та підтримка конфігурацій. 96 5.3.13. Відлагодження та інспектор браузера. 97 5.3.14. Сценарії тестування інтерактивності. 97 5.3.15. Мови та підтримка тестування на віддалених серверах. 97 5.3.16. Взаємодія з локальним сервером та мокованими даними. 98 5.3.17. Підтримка регулярних виразів для селекторів. 98 5.3.18. Підтримка темниць та робота з Cookies. 98 5.4 Установка Jest. 99 5.5 Запуск тестування Jest. 100 5.6 Установка Playwright. 107 6 ОХОРОНА ПРАЦІ 109 6.1 Визначення оптимальних умов праці інженера-оператора системи мікроклімату 109 6.2 Розрахунок освітленості робочого місця 113 7 БЕЗПЕКА В НАДЗВИЧАЙНИХ СИТУАЦІЯХ 117 7.1 Основні вражаючі фактори ядерних вибухів, їхні параметри і наслідки впливу на людей 117 7.2 Методи захисту та безпека підприємств промисловості, відновлення інженерно-технічного комплексу цеху (заводу) 120 7.3 Висновки розділу 121 ВИСНОВОК 124 ПЕРЕЛІК ПОСИЛАНЬ 127
URI (Уніфікований ідентифікатор ресурсу): http://elartu.tntu.edu.ua/handle/lib/43169
Власник авторського права: © Ковтко Андрій Михайлович, Лещук Назар Володимирович, 2023
References: 1. Apache Jena. A free and open source Java framework for building Semantic Web and Linked Data applications.URL: https://jena.apache.org/index.html.
2. Baader F. The Description Logic Handbook: Theory, Implementation, Applications / F. Baader, D. Calvanese, D.L. McGuinness, D. Nardi, P.F. Patel- Schneider. Cambridge, 2003. 574 P.
3. Bacon Jono. Reviews: Qt. A multi-platform graphical toolkit. 2004. URL: http://preserve.mactech.com/articles/mactech/Vol.20/20.03/QtReview/index.html
4. Belshe M., Peon R., Thomson M. Hypertext Transfer Protocol version 2. 2015. URL: https://tools.ietf.org/html/draft-ietf-httpbis-http2-17
5. Blomqvist E., Hammar K., Presutti V. Engineering Ontologies with Patterns: The eXtreme Design Methodology, In Ontology Engineering with Ontology Design Patterns. Studies on the Semantic Web, Eds., Hitzler, P., and A. Gangemi, K. Janowicz, A. Krisnadhi, V. Presutti, IOS Press, pp: 23-50, 2016.
6. Crockford D. The application/json Media Type for JavaScript Object Notation (JSON) — Internet Engineering Task Force, 2006. — 10 p.
7. FreeMind – free mind mapping software – URL: http://freemind.sourceforge.net/wiki/index.php/Main_Page .
8. Fuseki: serving RDF data over HTTP. – URL: http://jena.apache.org/documentation/serving_data/
9. Gudgin M., Hadley M., Mendelsohn N., Moreau J.-J., Nielsen H.F., Karmarkar A., Lafon Y. SOAP Version 1.2 Part 1: Messaging Framework (Second Edition). URL:
10. jColibri: CBR Framework jColibri 2.1 Tutorial. URL: http://gaia.fdi.ucm.es/research/colibri/
11. Protocol Buffers. Developer Guide — // Google Developers, April 2, 2012. URL: https://developers.google.com/protocol-buffers/docs/overview
12. Tagliaferri Lisa. An Introduction to JSON, 2016 URL: https://www.digitalocean.com/community/tutorials/an-introduction-to-json
13. Paul Ammann and Jeff Offutt. Introduction to Soft- ware Testing. Cambridge University Press, Cam- bridge, UK, 2008. ISBN 0-52188-038-1.
14. Automated QA. Testcomplete. Online, 2008. http://www.automatedqa.com/ products/ testcomplete.
15. Christoph Csallner and Yannis Smaragdakis. JCrasher: An automatic robustness tester for Java. Software: Practice and Experience, 34:1025–1050, 2004.
16. Parasoft. Jtest. Online, http://www.parasoft.com/jsp/products/home.jsp-product=Jtest .
17. Riasat, Nazir, Zubair. (2021) “Critical Analysis of Software Testing Techniques and Automation Testing Tools. International Journal of Scientific and Engineering Research”. Volume: 12, Issue: 2. ISSN 2229-5518.
18. Albert, Mark (2016-01-01), “Standard Tool Classification for better Data Communication”, Modern Machine Shop (ISSN 0026-8003).
19. Dobslaw, R. Feldt, D. Michaelson, P. Haar, F. G. de Olivera Neto, R. Rorkar, (2019) “Estimating Return On Investment for GUI Test Automation Frameworks”. 1907.03475v2.
20. Automated Testing. (n.d.). [Blog] Katalon Studio versus Selenium-based open source frameworks. Available at: https://www.katalon.com/resources-center/blog/katalon-studio-vs-selenium-based-open-source-frameworks.
21. Проектування мікропроцесорних систем керування: навчальний посібник/ І.Р. Козбур, П.О. Марущак, В.Р. Медвідь, В.Б. Савків, В.П. Пісьціо.–Тернопіль: Вид-во ТНТУ імені Івана Пулюя, 2022.–324с.
22. Я.І. Проць, В.Б. Савків,О.К. Шкодзінський, О.Л. Ляшук. Автоматизація виробничих процесів. Навчальний посібник для технічних спеціальностей вищих навчальних закладів. – Тернопіль: ТНТУ ім. І.Пулюя, 2011. – 344с.
23. Основи наукових досліджень і теорія експерименту : Навчальний посібник / укл. Ю. Б. Капаціла, П. О. Марущак, В. Б. Савків, О. П. Шовкун. Тернопіль : ФОП Паляниця В.А., 2023. 186 с.». http://elartu.tntu.edu.ua/handle/lib/40843.
24. Пилипець М. І. Правила заповнення основних форм технологічних документів : навч.-метод. посіб. / Уклад. Пилипець М. І., Ткаченко І. Г., Левкович М. Г., Васильків В. В., Радик Д. Л. Тернопіль : ТДТУ, 2009. 108 с. https://elartu.tntu.edu.ua/handle/lib/42995.
25. Методичний посібник для здобувачів освітнього ступеня «магістр» всіх спеціальностей денної та заочної (дистанційної) форм навчання «Безпека в надзвичайних ситуаціях» / В.С. Стручок –Тернопіль: ФОП Паляниця В. А., –156 с. https://elartu.tntu.edu.ua/handle/lib/39196.
26. Навчальний посібник «Техноекологія та цивільна безпека. Частина «Цивільна безпека»» / автор-укладач В.С. Стручок – Тернопіль: ФОП Паляниця В. А., – 156 с. http://elartu.tntu.edu.ua/handle/lib/39424
Тип вмісту: Master Thesis
Розташовується у зібраннях:151 — автоматизація та комп’ютерно-інтегровані технології

Файли цього матеріалу:
Файл Опис РозмірФормат 
___Avtorska Ковтко Лещук.docАвторська довідка71 kBMicrosoft WordПереглянути/відкрити
KRM Kovtko_AM Leshchuk_NV.pdfКваліфікаційна робота магістра4,51 MBAdobe PDFПереглянути/відкрити


Усі матеріали в архіві електронних ресурсів захищені авторським правом, всі права збережені.

Інструменти адміністратора