Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/6200
Title: Методи і засоби тестування мобільного додатку для редагування фото- та відео контенту
Authors: Дяченко, Петро Васильович
Нечитайло, Назар Сергійович
Keywords: WEB-ЗАСТОСУНКИ;ФРЕЙМВОРКИ АВТОМАТИЗОВАНОГО ТЕСТУВАННЯ;ДІАГНОСТИКА ІНТЕРНЕТ-МАГАЗИНУ;ЯКІСТЬ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ;СЦЕНАРІЇ ТЕСТУВАННЯ;РЕЗУЛЬТАТ ТЕСТУВАННЯ.
Issue Date: 14-Jun-2023
Abstract: Тестування додатків ручними інструментами стає все важче через їхню складність і різноманітність. Це призводить до більшої кількості помилок і займає більше часу. На вирішення даної проблеми інженери з області тестування винайшли фреймворки автоматизованого тестування, які стали як потужний інструмент для автоматизації процесу тестування та покращення ефективності та надійності діагностики додатків. Дане дослідження спрямоване на вирішення цих проблем шляхом демонстрації можливостей і переваг сучасних інфраструктур автоматизованого тестування та надання вказівок і рекомендацій щодо вибору та впровадження автоматизованого тестування під час розробки та тестування додатків. Метою кваліфікаційної роботи бакалавра є вивчення можливостей та обмежень сучасних інфраструктур автоматизованого тестування мобільних додатків, а також оцінити їхню ефективність у автоматизації тестування обраного додатку. Об’єкт дослідження: мобільний додаток. Предмет дослідження: процес автоматизованого тестування за допомогою сучасних фреймворків. Методи дослідження: огляд літератури щодо фреймворків автоматизованого тестування та тестування додатків, порівняльний аналіз різних інструментів авто-тестування та емпірична оцінка обраного фреймворку тестування за допомогою набору тестів.
URI: https://er.chdtu.edu.ua/handle/ChSTU/6200
Appears in Collections:122 Комп’ютерні науки (Комп’ютерні науки та прикладне програмування)

Files in This Item:
File Description SizeFormat 
Пояснювальна записка_Нечитайло Назар_КН-1901_2022-2023.pdf
  Restricted Access
2.43 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
 
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
 
Факультет інформаційних технологій і систем 
 
Кафедра комп’ютерних наук та системного аналізу 
 
 
 
 
 
 
 
Пояснювальна записка 
до кваліфікаційної роботи 
                                         бакалавра       
 (освітньо-кваліфікаційний рівень) 
 
на тему: «Методи і засоби тестування мобільного додатку для редагування 
фото- та відео контенту» 
 
 
 
Виконав: студент 4 курсу, групи КН-1901 
  
спеціальності 122 «Комп’ютерні науки» 
                                                             (шифр і назва спеціальності) 
 
Освітня програма «Комп’ютерні науки та  
                                                                (назва освітньої програми) 
прикладне програмування» 
 
Нечитайло Назар Сергійович 
 
Керівник                               Дяченко П.В.  
                                                     (прізвище та ініціали) 
 
 
 
 
 
 
 
 
 
 
 
 
Черкаси 2023 року 
 
Бланк завдання на кваліфікаційну роботу бакалавра студенту 
 
 
Черкаський державний технологічний університет 
Факультет Інформаційних технологій і систем 
Кафедра Комп’ютерних наук та системного аналізу 
Освітньо-кваліфікаційний рівень Бакалавр 
Спеціальність 122  – Комп’ютерні науки 
Освітня програма Комп’ютерні науки та прикладне програмування 
 
 
ЗАТВЕРДЖУЮ 
Завідувач кафедри КНСА  
_______________ Юрій ТРИУС 
«____» _____________ 2023 р. 
 
ЗАВДАННЯ 
на кваліфікаційну роботу бакалавра студенту 
Нечитайлу Назару Сергійовичу 
(прізвище, ім‘я, по батькові) 
«Методи і засоби тестування мобільного додатку для редагування фото- та  
1. Тема роботи  відео контенту» 
 
Керівник роботи     Дяченко П.В., к.т.н., доцент                    
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання) 
затверджені наказом університету від «24» лютого 2023 р. №43/04. 
 
2. Строк подання студентом роботи до «12 червня» 2023 року 
3. Вихідні дані до роботи:  
Практичні навики роботи з інформаційними ресурсами. Робота з авто-тестуванням. 
Звіт з переддипломної практики. 
4. Зміст пояснювальної записки (перелік питань, що їх належить розробити): 
Вступ 
4.1. Обґрунтування необхідності тестування в процесі розробки програмного забезпечення. 
4.2. Огляд існуючих підходів до автоматизації тестування. 
4.3. Вибір інструментів для розробки автоматизованих тестів. 
4.4. Проектування та розробка автоматизованих тестів.  
Висновки.  
5 . Перелік додатків (з точним зазначенням назв додатків): 
5.1. Додаток А. Специфікація 482.ЧДТУ. 31904-01. 
 5.2. Додаток Б. Тестова документація. 
5.3. Додаток В. Автоматизовані скрипти. 
 5.4. Додаток Г. Згенерований Allure-звіт 
 5.5 Презентація дипломної роботи  
6. Консультанти розділів роботи 
 
Прізвище, ініціали та Підпис, дата 
Розділ посада 
завдання видав завдання прийняв 
консультанта 
    
    
 
7. Дата видачі 
завдання 20.12.2022 р. 
  
 
КАЛЕНДАРНИЙ ПЛАН 
№ Строк виконання 
Назва етапів кваліфікаційної роботи магістра Примітка 
з/п етапів роботи 
1 Видача завдання на кваліфікаційну роботу до 26.12.2022 
Виконано 
бакалавра. 
2 Аналіз літературних джерел, об’єкту та предмету до 14.01.2023 
Виконано 
дослідження. 
3 Написання теоретичного розділу кваліфікаційної до 12.02.2023 
Виконано 
роботи бакалавра. 
4 Написання аналітичного розділу кваліфікаційної до 15.03.2023 
Виконано 
роботи бакалавра. 
5 Написання практичних розділів й висновків до до 24.05.2023 
Виконано 
кваліфікаційної роботи бакалавра. 
6 Перед захист кваліфікаційної роботи магістра на до 31.05.2023 
Виконано 
засіданні кафедри КН та СА. 
7 Подання роботи завідувачу кафедри КН та СА. до 12.06.2023  
8 Захист кваліфікаційної роботи бакалавра. 14.06.2023  
    
    
    
 
 
Студент                                   _____________________________     Нечитайло Н. С. 
(підпис)                                                                     
Керівник роботи                     _____________________________     Дяченко П. В. 
                                                                                                                (підпис) 
 
 
 
 
  
 
РЕФЕРАТ 
Кваліфікаційна робота бакалавра містить: 64 с., 30 рис., 2 табл., 8 
використаних джерел. 
Актуальність теми. 
Тестування додатків ручними інструментами стає все важче через їхню 
складність і різноманітність. Це призводить до більшої кількості помилок і займає 
більше часу. На вирішення даної проблеми інженери з області тестування винайшли 
фреймворки автоматизованого тестування, які стали як потужний інструмент для 
автоматизації процесу тестування та покращення ефективності та надійності 
діагностики додатків.  
Однак, незважаючи на переваги автоматизованого тестування, багато проектів 
все ще застосовують ручне тестування з низки причин. Як приклад, це може бути брак 
ресурсів, досвіду або обізнаності щодо інструментів і методів автоматизованого 
тестування. Дане дослідження спрямоване на вирішення цих проблем шляхом 
демонстрації можливостей і переваг сучасних інфраструктур автоматизованого 
тестування та надання вказівок і рекомендацій щодо вибору та впровадження 
автоматизованого тестування під час розробки та тестування додатків. 
Крім того, дослідження спрямоване на оцінку продуктивності сучасних 
автоматизованих систем тестування з точки зору швидкості, точності та економічної 
ефективності порівняно з традиційними ручними методами тестування. Результати 
цього дослідження можуть стати основою для прийняття рішень і розподілу ресурсів 
у проектах розробки програмного забезпечення, а також можуть сприяти постійному 
вдосконаленню та оптимізації процесу тестування програмного забезпечення. 
Метою кваліфікаційної роботи бакалавра є вивчення можливостей та 
обмежень сучасних інфраструктур автоматизованого тестування мобільних додатків, 
а також оцінити їхню ефективність у автоматизації тестування обраного додатку.  
Завдання кваліфікаційної роботи бакалавра: 
− визначити ключові та функціональні можливості  обраного додатку, які 
можна автоматизувати за допомогою фреймворку автоматизованого тестування; 
 
− провести огляд та порівняльну характеристику сучасних інструментів 
автоматизованого тестування, визначити їх переваги та недоліки, а також оцінити 
обрані інструменти на підставі критеріїв, таких як функціональність, зручність 
використання, продуктивність та масштабованість; 
− обрати сучасну систему автоматизованого тестування, яка добре підходить 
для обраного додатку та функціональності, та яка може продемонструвати 
можливості та переваги автоматизації тестування; 
− розробити та впровадити набір тестових випадків, які охоплюють обраний 
додаток та його функціональність, а також демонструють дієвість та ефективність 
обраного середовища автоматизованого тестування; 
− визначити переваги та недоліки автоматизованого тестування порівняно з 
ручним тестуванням. 
Об’єкт дослідження: мобільний додаток. 
Предмет дослідження: процес автоматизованого тестування за допомогою 
сучасних фреймворків.  
Методи дослідження: огляд літератури щодо фреймворків автоматизованого 
тестування та тестування додатків, порівняльний аналіз різних інструментів авто-
тестування та емпірична оцінка обраного фреймворку тестування за допомогою 
набору тестів.  
Перелік ключових слів: WEB-ЗАСТОСУНКИ, ФРЕЙМВОРКИ 
АВТОМАТИЗОВАНОГО ТЕСТУВАННЯ, ДІАГНОСТИКА ІНТЕРНЕТ-
МАГАЗИНУ, ЯКІСТЬ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ, СЦЕНАРІЇ 
ТЕСТУВАННЯ, РЕЗУЛЬТАТ ТЕСТУВАННЯ. 
 
 
 
  
 
ABSTRACT 
The qualification work of the bachelor contains: 64 pages, 30 figures, 2 tables, 8 
sources used. 
Actuality of theme. 
Manual testing of web applications is becoming increasingly difficult due to their 
complexity and diversity. This leads to more errors and takes more time. To address this 
challenge, test engineers have invented automation testing frameworks as a powerful tool 
for automating the testing process and improving the efficiency and reliability of diagnosing 
web applications. 
However, despite the advantages of automated testing, many products still rely on 
manual testing for various reasons. For example, this could be due to a lack of resources, 
experience, or knowledge about automated testing tools and methods. This research aims to 
address these issues by demonstrating the capabilities and benefits of modern automation 
testing frameworks and providing guidance and recommendations for selecting and 
implementing automated testing during the development and testing of web applications. 
In addition, the research aims to evaluate the performance of modern automated 
testing systems in terms of speed, accuracy, and cost-effectiveness compared to traditional 
manual testing methods. The results of this research can serve as a basis for decision-making 
and resource allocation in software development projects, as well as contribute to continuous 
improvement and optimization of the software testing process. 
Purpose and tasks of research: The purpose of the bachelor's qualification work is 
to study the possibilities and limitations of modern infrastructures for automated testing of 
mobile applications, as well as to evaluate their effectiveness in automating the testing of 
the selected application. 
Tasks of the bachelor's qualification work: 
− identify the key features and functionalities of the chosen website that can be 
automated using an automated testing frameworks; 
 
− conduct a review and comparative analysis of modern automated testing tools, 
identify their advantages and disadvantages, and evaluate selected tools, based on criteria 
such as functionality, usability, performance, and scalability; 
− select a modern automated testing system that is well suited for the chosen website 
and functionality, and which can demonstrate the capabilities and advantages of test 
automation; 
− develop and implement a set of test cases that cover the selected website and its 
functionality, and demonstrate the effectiveness and efficiency of the selected automated 
testing environment; 
− determine the advantages and disadvantages of automated testing compared to 
manual testing. 
Object of research: mobile application. 
Subject of research: the process of automated testing using modern automated 
testing frameworks.  
Research methods: literatures review on automated testing frameworks and web 
applications testing, comparative analysis of different automated testing tools, and empirical 
evaluation of the selected testing framework using a set of tests.  
List of key words: WEB APPLICATIONS, AUTOMATED TESTING 
FRAMEWORKS, DIAGNOSTICS OF AN ONLINE STORE, SOFTWARE QUALITY, 
TESTING SCENARIOS, TESTING RESULTS. 
 
 8 
ЗМІСТ 
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, СКОРОЧЕНЬ І ТЕРМІНІВ ...... 10 
ВСТУП ................................................................................................................................ 11 
1 ОБГРУНТУВАННЯ НЕОБХІДНОСТІ ТЕСТУВАННЯ В ПРОЦЕСІ РОЗРОБКИ 
ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ............................................................................... 13 
1.1 Роль тестування в забезпеченні якості створюваного продукту ........................ 13 
1.2 Особливості та важливість тестування E-commerce платформ .......................... 14 
1.3 Види і типи тестування ПЗ ..................................................................................... 15 
1.4 Важливість UI тестів для комерційних проектів.................................................. 17 
1.5 Критерії вибору тестів ............................................................................................ 19 
1.5.1 Вимоги до ідеального критерію тестування ................................................ 19 
1.5.2 Критерії білого ящика .................................................................................... 19 
1.5.3 Критерії чорного ящика ................................................................................. 20 
1.5.4 Критерії стохастичного тестування .............................................................. 21 
Висновки до розділу 1 .................................................................................................. 23 
2 ОГЛЯД ДОДАТКІВ ДЛЯ ФОТО-ВІДЕО РЕДАГУВАННЯ ....................................... 25 
2.1 Мобільний додаток TikTok .................................................................................... 25 
2.2 Мобільний додаток для фото та відео редагування Videoleap ........................... 27 
2.3 Мобільний додаток Instories ................................................................................... 28 
Висновки до розділу 2 .................................................................................................. 30 
3 ОГЛЯД ІСНУЮЧИХ ПІДХОДІВ ДО АВТОМАТИЗАЦІЇ ТЕСТУВАННЯ 
МОБІЛЬНИХ ВЕБ-ДОДАТКІВ ....................................................................................... 31 
3.1 Піраміда автоматизованого тестування ................................................................ 31 
3.2 Розробка через тестування (Test-driven development).......................................... 35 
3.3 Розробка, орієнтована на поведінку (Behavior-driven development) .................. 36 
3.4 Порівняльний аналіз існуючих підходів до автоматизації тестування .............. 39 
Висновки до розділу 3 .................................................................................................. 40 
4 ВИБІР ІНСТРУМЕНТІВ ДЛЯ РОЗРОБКИ АВТОМАТИЗОВАНИХ ТЕСТІВ ........ 41 
4.1 Критерії вибору інструментів для автоматизації тестів ...................................... 41 
 9 
4.2 Вибір оптимальних інструментів для реалізації авто тестування ...................... 42 
4.2.1 Використання мови програмування Javascript ............................................ 43 
4.2.2 Вибір системи управління тестуванням ....................................................... 45 
4.2.3 Фреймворк автоматизованого тестування Playwright ................................ 48 
Висновки до розділу 4 .................................................................................................. 51 
5 ПРОЕКТУВАННЯ ТА РОЗРОБКА АВТОМАТИЗОВАНИХ ТЕСТІВ .................... 52 
5.1 Написання тестових випадків в системі управління тестами TestRail .............. 52 
5.2 Автоматизація сценаріїв тестування інтернет-магазину за допомогою Playwright
 ......................................................................................................................................... 54 
5.3 Налаштування звіту Allure про результати тестування ....................................... 59 
Висновки до розділу 5 .................................................................................................. 61 
ВИСНОВКИ ....................................................................................................................... 63 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ ......................................................................... 65 
 
 
  
 10 
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, СКОРОЧЕНЬ І 
ТЕРМІНІВ 
QA – абревіатура від “Quality Assurance”, тобто забезпечення якості; 
SUT – абревіатура від “System Under Test”, тобто система, яка перевіряється; 
UI – інтерфейс користувача (User Interface); 
АТ – автоматизоване тестування; 
TDD – розробка через тестування; 
BDD – розробка, орієнтована на поведінку програми; 
ТC – тестовий випадок (Test Case); 
ПЗ – програмне забезпечення; 
СУТ – система управління тестами. 
 11 
ВСТУП 
У сучасному швидкоплинному цифровому світі веб-додатки стають все більш 
складними та викликають значні труднощі при ручному тестуванні. Автоматизоване 
тестування виступає засобом для вирішення цього завдання та покращення 
ефективності і точності процесу тестування. Фреймворки тестування надають 
структурований підхід до автоматизованого тестування, полегшуючи розробку та 
виконання тест-кейсів, а також аналіз результатів. У цьому контексті дане 
дослідження спрямоване на оцінку ефективності сучасних фреймворків тестування 
для веб-додатків, з особливою увагою на їх здатність виявляти дефекти та 
забезпечувати якість програмного забезпечення. Метою дослідження є надання 
висновків щодо переваг та обмежень цих фреймворків, а також їх придатності для 
різних сценаріїв тестування. 
Автоматизоване тестування стало критичною складовою розробки програмного 
забезпечення, особливо для веб-додатків. Оскільки веб-додатки продовжують ставати 
все більш складними, а їх користувацька база зростає, стає все більш важливою 
необхідність забезпечити їх правильну роботу на різноманітних платформах та 
пристроях. Автоматизоване тестування дозволяє розробникам швидко та надійно 
тестувати свої додатки, виявляти помилки та проблеми, а також вдосконалювати свій 
код для поліпшення продуктивності та стабільності роботи коду. 
За останні роки з'явилась широка різноманітність фреймворків тестування, які 
допомагають розробникам автоматизувати процес тестування ПЗ. Ці інструменти 
пропонують широкий спектр функцій та можливостей, від простих скриптів 
тестування до складних наборів тестів, які можуть симулювати різноманітні взаємодії 
користувача. Деякі з найпопулярніших фреймворків тестування включають Selenium, 
Cypress, TestNG, та Playwright.  
Автоматизоване тестування онлайн-магазину є важливим етапом розробки 
програмного забезпечення, оскільки веб-додатки стають все більш складними та 
вимагають більш детального тестування, з метою забезпечити якості та ефективності. 
Онлайн-магазини мають велику розвинену функціональність, таку як каталог товарів, 
 12 
кошик покупок, оплата, доставка та багато іншого, що потребує ретельного 
тестування для забезпечення коректної роботи всієї системи. 
У цьому контексті дане дослідження присвячене оцінці ефективності сучасних 
фреймворків тестування для онлайн-магазинів, зокрема їхньої здатності виявляти 
дефекти та забезпечувати якість програмного забезпечення. Для досягнення 
поставленої мети в кваліфікаційній бакалаврській роботі розв’язуються наступні 
завдання: 
– дослідження предметної області з автоматизації тестування веб-ресурсів; 
– проведення комплексного аналізу поточного стану ринку інтернет-магазинів 
з можливістю автоматизації тестування веб-сайту; 
– розробка набору тестових сценаріїв і тестових випадків для подальшої 
автоматизації тестування інтернет-магазину з урахуванням специфіки даного типу 
веб-додатку; 
– вибір та налаштування відповідного тестового фреймворку для 
автоматизованого тестування інтернет-магазину; 
– впровадження автоматизованого тестування з використанням обраного 
фреймворку та тестових сценаріїв; 
– аналіз результатів автоматизованого тестування та визначення можливих 
напрямків вдосконалення інтернет-магазину; 
– оцінка ефективності автоматизованого підходу до тестування в порівнянні з 
ручними методами тестування. 
Завдяки виконанню цих завдань, кваліфікаційна бакалаврська робота має на 
меті продемонструвати важливість і переваги автоматизованого тестування для 
інтернет-магазинів і надати розробникам і тестувальникам практичні ідеї щодо 
впровадження та вдосконалення процесу автоматизованого тестування. 
 
  
 13 
1 ОБГРУНТУВАННЯ НЕОБХІДНОСТІ ТЕСТУВАННЯ В ПРОЦЕСІ 
РОЗРОБКИ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ 
1.1 Роль тестування в забезпеченні якості створюваного продукту 
В процесі розробки програмного забезпечення тестування відіграє важливу 
роль в забезпеченні високої якості продукту та відповідності вимогам замовника 
продукту. Тестування дозволяє виявити та виправити помилки, забезпечуючи тим 
самим більш надійну та стабільну роботу програми. 
Значення тестування в процесі розробки програмного забезпечення 
збільшується з кожним роком. Це пов'язано зі зростанням складності програм та їх 
функціональності. Надійність, швидкість та безпека є ключовими характеристиками 
сучасних програмних продуктів, тому тестування стає важливою складовою процесу 
розробки. 
Особливо важливо автоматизувати тестування для онлайн-магазинів, де 
швидкість та надійність роботи веб-додатку є критично важливими для забезпечення 
задоволеності та лояльності клієнтів. Із зростанням кількості користувачів та обсягів 
даних, які обробляє онлайн-магазин, тестування стає більш складним та часомістким 
процесом. Тому автоматизація тестування є необхідною складовою для забезпечення 
якості роботи онлайн-магазину та підвищення задоволеності клієнтів. 
Таким чином, в контексті розробки програмного забезпечення, тестування є 
невід'ємною складовою, яка забезпечує високу якість продукту та відповідність 
вимогам замовника. Автоматизація тестування є необхідною для забезпечення 
ефективності та швидкості тестування, особливо для онлайн-магазинів, де надійність 
та швидкість є надзвичайно важливими показниками для потенційних клієнтів-
покупців. 
Значною перевагою тестування в процесі розробки є також те, що помилки та 
дефекти можуть бути виявлені на ранніх етапах розробки, що дозволяє їх швидко 
виправити та зменшити витрати на їх усунення. Водночас, це зменшує ризик 
виникнення проблеми в майбутньому, оскільки одним із правильних підходів в 
тестуванні є документування наявних помилок в тестовій документації, а також 
 14 
повторне чи регресивне тестування з прогоном тестових сценаріїв, які дають змогу 
впевнитись що дефект, знайдений раніше, не відтворюється знову. 
1.2 Особливості та важливість тестування E-commerce платформ 
Електронна комерція зробила революцію в тому, як люди купують та ведуть 
онлайн-бізнеси. З розвитком онлайн-ринків і збільшенням кількості транзакцій, які 
здійснюються через них, потреба в надійних і безпечних платформах електронної 
комерції ніколи не була такою великою. Ось тут тестування є критичним. Платформи 
електронної комерції мають унікальний набір функцій і вимог, що робить їх особливо 
складним для тестування. Ці платформи повинні бути в змозі обробляти великий 
обсяг транзакцій і взаємодії з користувачем, підтримувати кілька платіжних шлюзів і 
забезпечувати зручну та безпечну взаємодію з користувачем. Крім того, вони повинні 
мати можливість інтегруватися з різними сторонніми системами, такими як 
постачальники послуг доставки та логістики, і відповідати різним нормативним 
вимогам. 
Враховуючи ці проблеми, тестування платформ електронної комерції є 
важливим, щоб переконатися, що вони надійні та безпечні. Тестування може 
допомогти виявити та вирішити такі проблеми, як вузькі місця продуктивності, 
вразливі місця безпеки та функціональні дефекти. Це також може гарантувати, що 
платформа задовольняє потреби своїх користувачів і забезпечує безперебійність в 
процесі використання. 
Крім того, тестування платформ E-комерції може допомогти зміцнити довіру та 
лояльність клієнтів. На конкурентному ринку користувачі очікують, що платформи 
будуть швидкими, надійними та безпечними. Якщо платформа електронної комерції 
не відповідає цим очікуванням, клієнти, швидше за все, відмовляться від неї на 
користь конкурента. Завдяки ретельному тестуванню платформ електронної комерції, 
власники сайтів можуть переконатися, що їхні клієнти отримають позитивні 
враження і з більшою ймовірністю повернуться за майбутніми покупками. 
Деякі особливості платформ електронної комерції, які вимагають ретельного 
тестування, включають каталоги продуктів, кошики для покупок, обробку платежів, 
 15 
доставку замовлень, а також відстеження статусу замовлень. Кожна з цих функцій 
передбачає складну взаємодію між інтерфейсом користувача і платформою, і її 
необхідно ретельно перевіряти, щоб переконатися, що вони функціонують належним 
чином. 
Враховуючи вирішальну роль, яку відіграють платформи електронної комерції 
в галузі роздрібної торгівлі, можна зробити висновок, що ефективне тестування має 
важливе значення для успіху цих платформ. Вкладаючи кошти в процеси ретельного 
тестування, замовники можуть переконатися, що їхні платформи електронної 
комерції надійні, безпечні та забезпечують позитивний відгук для клієнтів. 
1.3  Види і типи тестування ПЗ 
Розробка програмного забезпечення включає в себе велику кількість етапів, від 
розробки вимог і до виходу продукту на ринок. Для ефективного тестування 
програмного забезпечення необхідно використовувати різні види тестування, які 
взаємодіють між собою та підтримують процес тестування від початку до кінця. Види 
тестування дуже різноманітні та включають в себе різні підходи до перевірки 
програмного забезпечення. 
Один з основних видів тестування — функціональне тестування, яке перевіряє, 
чи відповідає програмне забезпечення вимогам функціональності, які були визначені 
на етапі аналізу та проектування. Для проведення функціонального тестування 
використовуються тест-кейси та тест-сценарії, які описують послідовність дій, що 
повинні бути виконані для перевірки функціональності програмного забезпечення. 
Цей вид тестування зазвичай здійснюється в автоматичному режимі, що 
дозволяє підвищити швидкість тестування та забезпечити високу точність 
результатів. Під час функціонального тестування перевіряється правильність 
реалізації функціональних можливостей програмного забезпечення, його взаємодії з 
іншими компонентами системи, а також відповідність встановленим стандартам і 
рекомендаціям. 
Основними методами функціонального тестування є тестування чорного ящика 
(Black-box testing) та тестування білого ящика (White-box testing).  
 16 
Тестування чорного ящика передбачає перевірку програмного забезпечення з 
точки зору зовнішніх характеристик і функціональності, без уваги до його 
внутрішньої реалізації. Цей метод тестування базується на вхідних і вихідних даних 
програми і здійснюється без знання її внутрішньої структури. Тестування чорного 
ящика часто використовується в тестуванні веб-додатків та онлайн-магазинів, де 
важливо перевіряти коректність взаємодії інтерфейсу з користувачем, правильність 
обробки даних, та відповідність функціональним вимогам. 
Тестування методом білого ящика полягає у перевірці внутрішньої структури 
програми та переконання у її правильності та ефективності. Цей метод тестування 
вимагає знання і детального розуміння коду програми, що тестується. Під час 
тестування методом білого ящика тестувальник виконує у роль розробника програми 
та має доступ до її внутрішніх компонентів, таких як змінні, функції, класи та інші. 
Тестувальник виконує тестові сценарії та перевіряє реакцію програми на різні вхідні 
дані та умови. Тестування методом білого ящика дозволяє виявити та виправити 
помилки в коді програми, забезпечує більш повну та детальну перевірку 
функціональності та підвищує загальну якість продукту. 
Тестування методом чорного ящика, навпаки, полягає у перевірці зовнішньої 
поведінки програми, без знання її внутрішньої структури та реалізації. Під час 
тестування методом чорного ящика тестувальник не має доступу до коду програми та 
працює з її інтерфейсом та вхідними даними. Тестувальник виконує тестові сценарії, 
спробує викликати різні функції програми та перевірити її відповідь на різні вхідні 
дані та умови. Тестування чорного ящика дозволяє оцінити функціональність 
програми з точки зору користувача, а не розробника, та виявити можливі проблеми з 
її виконанням.  
Іншим важливим видом тестування є тестування безпеки, яке спрямоване на 
виявлення вразливостей та помилок в захисті програмного забезпечення від 
незаконного доступу та атак. Цей вид тестування дозволяє виявити потенційні 
проблеми безпеки та допомагає розробникам забезпечити найвищий рівень захисту 
від зловмисних атак. 
 17 
Крім того, існують такі види тестування, як тестування сумісності, тестування 
відмов, тестування відновлення, тестування регресії та інші. Кожен з цих видів 
тестування має свої особливості та вимоги до виконання, що залежать від конкретних 
умов тестування та програмного забезпечення, яке тестується. 
У процесі тестування важливо мати чіткий план тестування, який включає в 
себе визначення цілей тестування, вибір методів тестування та визначення критеріїв 
прийняття рішень на кожному етапі тестування. Крім того, важливо мати належний 
інструментарій для проведення тестування, який допоможе автоматизувати процес 
тестування та зменшити кількість помилок, що можуть виникнути під час виконання 
тестів. 
Взагалі, використання різних видів тестування дозволяє забезпечити високу 
якість програмного забезпечення та зменшити кількість помилок та дефектів, що 
можуть виникнути в процесі експлуатації. Це дозволяє збільшити задоволення потреб 
користувачів внаслідок використання програмного забезпечення та покращити 
репутацію проекту замовника на ринку. 
1.4  Важливість UI тестів для комерційних проектів 
UI тестування є невід'ємною частиною процесу тестування в будь-якому 
комерційному проекті. Це пов’язане з тим, що користувачі вимагають не тільки 
функціональності, але й зручності використання програмного забезпечення. Якщо UI 
не відповідає очікуванням користувача, це може призвести до відмови 
використовувати продукт, що, у свою чергу, може призвести до фінансових втрат для 
компанії. 
Для ефективного UI тестування необхідно мати достатній набір тест-кейсів, які 
включають в себе тестування всіх елементів інтерфейсу користувача. Це включає в 
себе перевірку роботи кнопок, форм, меню, діалогових вікон та інших елементів 
інтерфейсу користувача.  
Одним з основних видів даного виду тестування є перевірка на різних 
роздільних здатностях екрану та на різних платформах. Це дозволяє стверджувати,  
що продукт працює на різних пристроях та з різними налаштуваннями екрану. 
 18 
Найкращим варіантом для проведення UI тестування є тестування за 
допомогою автоматизованих інструментів або фреймворків.  
Більшість великих комерційних проектів, зазвичай, проектуються з 
використанням багатошарової архітектури. Тобто основні функції системи належать 
до рівня «бізнес-логіка» як набір пов’язаних між собою бізнес-компонентів, які 
відповідають за отримання інформації від інтерфейсу користувача, виконання 
обчислень на рівні БД, а потім виведення результатів користувачеві [1]. Модель такої 
архітектури подано на рисунку 1.1.  
 
Рисунок 1.1 – Модель багатошарової архітектури 
Для того щоб інтегрувати автоматизоване тестування в таку архітектуру, слід 
переконатися в певних передумовах, таких як кількість функцій програми, що 
вимагають регресійного тестування перед кожним релізом, а також масштабність та 
довгостроковість проекту. Якщо ці основні передумови відповідають дійсності, то 
автоматизоване тестування є достатньо доречним і правильним рішенням. У випадку 
розширення проекту, а також його випусків у комерційне користування, варто 
неодмінно додати до проекту QA-працівника з автоматизації тестування. 
Таким чином автоматизація процесів тестування допомагає перевіряти роботу 
критичних сценаріїв за лічені хвилини. У випадку інтернет-магазину критичними 
сценаріями можуть бути додавання товарів в корзину, авторизація користувача, 
пошук товарів в каталозі, оформлення замовлення, перевірка статусу замовлення. 
 19 
1.5 Критерії вибору тестів 
Вибір тестів для тестування є важливим етапом в процесі розробки програмного 
забезпечення. Неправильно обрані тести можуть призвести до пропуска важливих 
дефектів або збільшення витрат на розробку та підтримку тестів. Для ефективного 
вибору тестів можна використовувати різноманітні критерії тестування. 
1.5.1 Вимоги до ідеального критерію тестування  
Вимоги до ідеального критерію можна сформулювати наступним чином: 
– критерій повинен бути достатнім, тобто показувати, коли деяка кінцева 
множина тестів достатня для тестування даної програми; 
– критерій повинен бути повним, тобто у випадку помилки повинен існувати 
тест із безлічі тестів, що задовольняють критерію, що розкриває помилку; 
– критерій повинен бути надійним, тобто будь-які дві множини тестів, що 
задовольняють йому, одночасно повинні розкривати або не розкривати помилки 
програми; 
– критерій повинен легко перевірятися.  
Для нетривіальних класів програм у загальному випадку не існує повного й 
надійного критерію, що залежить від програм або специфікацій. Тому необхідно 
прагнути до ідеального загального критерію через реальні складові.  
Існують наступні класи критеріїв: 
– критерії "білого ящика" – це структурні критерії, що використовують 
інформацію про внутрішню складову програми; 
– критерії "чорного ящика" – це функціональні критерії, які формулюються в 
описі вимог до програми; 
– критерії стохастичного тестування – формулюються в термінах перевірки 
наявності заданих властивостей у програми, засобами перевірки деякої статистичної 
гіпотези [2].  
1.5.2 Критерії білого ящика 
Критерії «білого ящика »передбачають розуміння вихідного коду програми або 
специфікації програми у вигляді потокового графа керування. Інформація про 
 20 
вихідний код доступна розробникам підсистем та модулів програми, тому дані 
критерії часто використовуються на стадіях інтеграційного та модульного 
тестування. 
Структурні критерії базуються на основних елементах керуючого графу 
програми, операторах, гілках і шляхах. До даного вигляду критеріїв належать такі 
критерії:  
Умова критерію тестування команд (критерій С0) – набір тестів у сукупності 
повинен забезпечити проходження кожної команди не менш одного разу. Це слабкий 
критерій, він, як правило, використовується в великих програмних системах, де інші 
критерії застосувати неможливо. 
Умова критерію тестування гілок (критерій С1) – набір тестів у сукупності 
повинен забезпечити проходження кожної гілки не менш одного разу. Це досить 
сильний і при цьому економічний критерій, оскільки безліч гілок у тестованому 
додатку зазвичай не така вже і велика. Даний критерій часто використовується в 
системах автоматизації тестування. 
Умова критерію тестування шляхів (критерій С2) – набір тестів у сукупності 
повинен забезпечити проходження кожного шляху не менш 1 разу. Якщо програма 
містить цикл (особливо з неявно заданим числом ітерацій), то число ітерацій 
обмежується константою (часто – 2, або числом класів вихідних шляхів). 
1.5.3 Критерії чорного ящика 
Функціональний критерій, або ж критерій чорного ящика є найважливішим 
серед всіх критеріїв тестування. В даному критерії забезпечується контроль ступеня 
виконання вимог замовника продукту. Безпосередньо, при функціональному 
тестуванні  існують проблеми, такі як велика ресурсозатратність. Це пов’язано з тим, 
що документ з прописаними вимогами до продукту (Requirement Specification 
Document) містить великі дані з описом властивостей, характеристик та функцій 
програми. 
До основних видів функціональних критеріїв відносять: 
– тестування пунктів документу з вимогами, що включає сукупність тестів, 
забезпечуючих перевірку кожного тестового випадку; 
 21 
– тестування класів вхідних даних складається з набору тестів, які мають 
забезпечувати перевірку представника кожного класну вхідних даних; 
– тестування правил включає групу тестів, які забезпечують перевірку 
кожного правила за умови описаних набором правил деякої граматики вхідних і 
вихідних значень. 
1.5.4 Критерії стохастичного тестування 
Стохастичне тестування застосовується при тестуванні складних програмних 
комплексів – коли набір детермінованих тестів (X, Y) має величезну потужність. У 
випадках, коли подібний набір неможливо розробити й виконати на етапі тестування, 
можна застосувати наступну методику: 
Розробити програми – імітатори випадкових послідовностей вхідних сигналів 
{x}. 
Обчислити незалежним способом значення {y} для відповідних вхідних 
сигналів {x} й одержати тестовий набір (X, Y). 
Протестувати програму на тестовому наборі (X, Y), використовуючи два 
способи контролю результатів:  
а) детермінований контроль – перевірка відповідності обчисленого значення 
значенню y, отриманому в результаті прогону тесту на наборі {x} – випадкової 
послідовності вхідних сигналів, що згенеровані імітатором; 
б) стохастичний контроль – перевірка відповідності множини значень {yв}, 
отриманого в результаті прогону тестів на наборі вхідних значень {x}, заздалегідь 
відомому розподілу результатів F(Y). 
У цьому випадку множина Y невідома (її обчислення неможливе), але відомий 
закон розподілу даної множини. 
До основних критеріїв стохастичого тестування належать:  
– статистичні методи закінчення тестування – це стохастичні методи 
прийняття рішень про збіг гіпотез про розподіл випадкових величин. До них належать 
широко відомі: метод Стьюдента (St), метод хі-квадрат, і т.п. 
– метод оцінки швидкості виявлення помилок – заснований на моделі 
швидкості виявлення помилок, відповідно до якої тестування припиняється, якщо 
 22 
оцінений інтервал часу між поточною помилкою й наступної занадто великий для 
етапу  тестування додатка.  
Графік залежності швидкості виявлення помилок від часу появи представлено 
на рисунку 1.2. 
 
Рисунок 1.2 – Залежність швидкості виявлення помилок від часу виявлення 
На даному графіку використовуються наступні позначення: N – початкова 
кількість помилок в програмному комплексі перед тестуванням, C – константа 
зниження швидкості виявлення помилок за рахунок знаходження чергової помилки; 
а) t1, t2 … tn – кортеж зростаючих інтервалів виявлення послідовності з n 
помилок; 
б) T – час виявлення n помилок. 
Якщо припустити, що за час T виявлено n помилок, то справедливе 
співвідношення (1.1), яке стверджує, що добуток швидкості виявлення помилки і часу 
виявлення дорівнює одиинці за визначенням: 
 (�� − ⅈ + 1) ⋅ �� ⋅ ���� = 1. (1.1) 
  
У цьому припущенні справедливе співвідношення (1.2) для n помилок: 
�� ⋅ �� ⋅ ��1 + (�� − 1) ⋅ �� ⋅ ��2 + ⋯ (�� − �� + 1) ⋅ �� ⋅ ���� = ��; 
 (2.2) 
�� ⋅ �� ⋅ (��1 + ��2 + ⋯ + ����) − �� ⋅ ∑(ⅈ − 1)���� = ��. 
Якщо з (1.1) визначити ti і підсумувати від 1 до n, то прийдемо до 
співвідношення (1.3) для часу T виявлення n помилок 
 23 
∑1 ⅈ
 = �� ⋅ ��. (3.3) 
(�� − ⅈ + 1)
Якщо з (1.2) виразити C, приходимо до співвідношення (1.4): 
��
  �� = . (4.4) 
(�� ⋅ �� − ∑(ⅈ − 1) ⋅ ����)
Нарешті, підставляючи C в (1.3), одержуємо остаточне співвідношення, зручне 
для оцінок:   
 1 �� ⋅ �� ⋅ ∑(ⅈ − 1) ⋅ ����
 = . (5.5) 
(�� − ⅈ + 1) (�� − 1)
Якщо оцінити величину N наближено, використовуючи відомі методи оцінки 
числа помилок у програмі або дані про щільність помилок для проектів розглянутого 
класу з бази даних проектів, і, крім того, використати поточні дані про інтервали між 
помилками t1, t2 ... tn, отримані на етапі тестування, тj, підставляючи ці дані в (5), 
можна одержати оцінку tn+1 – часового інтервалу необхідного для знаходження й 
виправлення чергової помилки (майбутньої помилки). 
Якщо tn+1>Td – припустимого часу тестування проекту, то тестування 
закінчуємо, у противному випадку продовжуємо пошук помилок. 
Спостерігаючи послідовність інтервалів помилок t1, t2 … tn, і час, витрачений 
на виявлення n помилок T = Σ ti, можна прогнозувати інтервал часу до наступної 
помилки й уточнювати відповідно до  (4) величину C [3]. 
Висновки до розділу 1 
В першому розділі було визначено роль і важливість тестування програмного 
забезпечення, розглянуто особливості тестування e-commerce платформ, досліджено 
основні типи та види тестування. Окрему увагу було приділено важливості UI 
автоматизованого тестування, як невід’ємній допомозі команді мануальних 
тестувальників, а також скороченню часу на виконання великої кількості тестів, щоб 
точніше і швидше отримувати результати про тестування.  
 24 
Було досліджено критерії вибору тестів, які дозволяють знизити трудомісткість 
тестування, а також збільшити ефективність виявлення помилок та знизити ризики їх 
виявлення після випуску програмного забезпечення в експлуатацію. 
 
  
 25 
2 ОГЛЯД ДОДАТКІВ ДЛЯ ФОТО-ВІДЕО РЕДАГУВАННЯ 
Для повноти розуміння задачі тестування додатків, пов’язаних із роботою з 
медіа-даними, необхідно розглянути існуючі застосунки. 
2.1 Мобільний додаток TikTok 
TikTok – це популярний мобільний додаток для створення та спільного 
перегляду коротких відеороликів. Він був розроблений китайською компанією 
ByteDance і вперше випущений в 2016 році. З тих пір він швидко набув популярності 
по всьому світу, особливо серед молоді. 
Основна концепція TikTok полягає у створенні коротких відеороликів 
тривалістю від 15 до 60 секунд, часто супроводжених музикою. Користувачі можуть 
створювати відео з використанням різноманітних фільтрів, ефектів, музики та інших 
креативних інструментів. У додатку також доступна функція «Duet», що дозволяє 
користувачам створювати відео, які пародіюють або доповнюють інші відеоролики, 
розміщені на платформі. Інтерфейс додатку показано на рисунку 2.1 
 
Рисунок 2.1 – Елементи інтерфейсу користувача в додатку TikTok 
Один з головних факторів успіху TikTok – його алгоритм рекомендацій. Він 
навчається вподобанням користувачів, аналізуючи їхній спосіб взаємодії з відео, що 
дозволяє показувати персоналізований контент. Користувачі можуть переглядати 
 26 
відео, ставити вподобайки, коментувати, підписуватися на облікові записи і 
взаємодіяти з іншими користувачами через коментарі та приватні повідомлення. 
TikTok став особливо популярним серед молоді завдяки своїй простоті 
використання, розмаїттю творчих можливостей і широкому спектру відеоконтенту. 
Користувачі можуть знайти відео на різні теми: від танців та викликів до кулінарії, 
моди, гумору, спорту та багатьох інших. Також варто відзначити, що TikTok став 
важливою платформою для впливу на культуру і створення віральних трендів. Багато 
відеороликів стають популярними завдяки їхній великій кількості переглядів та 
поширенню через соціальні мережі. Однак, варто зазначити, що TikTok також став 
об'єктом деяких спірних питань. В деяких країнах, зокрема в США, виникли 
обговорення щодо конфіденційності даних користувачів та потенційного впливу 
китайської компанії ByteDance на політичний ландшафт. 
Незважаючи на це, TikTok залишається одним з найпопулярніших мобільних 
додатків, приваблюючи мільйони активних користувачів по всьому світу і надаючи 
їм платформу для вираження своєї креативності та взаємодії з іншими користувачами. 
TikTok має вбудований відеоредактор, який дозволяє користувачам створювати 
та редагувати свої відео безпосередньо в додатку (рис. 2.2). 
 
Рисунок 2.2 – Елементи інтерфейсу користувача в додатку TikTok 
 Цей редактор надає різні інструменти та функції для зміни відео, додавання 
ефектів, фільтрів, музики та багато іншого. 
 27 
Деякі ключові функції відеоредактора TikTok: 
– користувачі можуть записувати відео безпосередньо з камери свого 
смартфона через додаток TikTok. Можна встановлювати режими зйомки, такі як 
звичайний режим, уповільнена чи прискорена зйомка, режим реверсу та інші; 
– широкий вибір ефектів та фільтрів, які можна застосовувати до відео. Це 
дозволяє змінювати кольори, налаштовувати насиченість, додавати спеціальні ефекти 
і робити ваші відео більш захоплюючими та креативними; 
– велика бібліотека музичних треків, які можна використовувати у своїх відео;  
– редактор дозволяє обрізати відео, видаляти непотрібні фрагменти та 
змінювати швидкість відтворення; 
– можливість додавати текстові наклейки, надписи або емодзі до своїх відео. 
 Це дає можливість виразити свої думки, створити заголовки або просто 
додати веселі елементи до контенту. 
2.2 Додаток для фото та відео редагування Videoleap 
Videoleap (також відомий як Enlight Videoleap, рис. 2.4) – це мобільний редактор 
відео, розроблений компанією Lightricks для iOS-пристроїв, таких як iPhone та iPad. 
Він надає користувачам зручні і потужні інструменти для редагування відео, щоб 
створювати професійно виглядаючі фільми на мобільному пристрої. 
 
Рисунок 2.3 – Інтерфейс відео-редактора «Videoleap» 
 28 
Videoleap має широкий набір функцій, що дозволяють користувачам редагувати 
відео без зусиль. Деякі з його основних функцій включають: 
– обрізка та з'єднання відео: можна вирізати непотрібні частини з відео і 
з'єднувати різні фрагменти разом, щоб створити збірку ваших улюблених моментів; 
– важливість застосовувати різноманітні ефекти до відео, такі як фільтри, 
перехідні ефекти, режими змішування та багато інших; 
– можна налаштовувати яскравість, контрастність, насиченість та інші 
параметри кольору для досягнення бажаного візуального ефекту; 
– функція додавання рухомих ефектів до ваших відео; 
– можна додавати тексти до відео з різними шрифтами, кольорами та 
анімацією;  
– швидкісний режим: можна змінювати швидкість відтворення відео, 
включаючи сповільнення або прискорення певних частин. 
Videoleap має інтуїтивний і простий у використанні інтерфейс, що дозволяє 
навчитися використовувати всі його функції навіть початківцям. Додаток також 
підтримує роздільність високої якості, що дозволяє редагувати відео з якістю до 4K. 
Враховуючи свої багаті можливості та зручний інтерфейс, Videoleap став дуже 
популярним серед творчих людей, блогерів та інших користувачів, які бажають 
редагувати відео безпосередньо на своєму мобільному пристрої. 
2.3 Мобільний додаток Instories 
Instories – це онлайн-сервіс, спеціально розроблений для створення «сторіз» 
(stories) у соціальних мережах, зокрема для Instagram, Facebook та Snapchat. Він надає 
користувачам набір інструментів для творчого дизайну та редагування відео з метою 
залучення уваги аудиторії. 
Платформа надає широкий вибір готових шаблонів, які можна використовувати 
або налаштовувати за власним смаком. Крім того, Instories дозволяє завантажувати 
свої фотографії та відео, щоб створити унікальні сторіз. Приклади готових шаблонів 
в додатку Instories подано на рисунку 2.4. 
 29 
 
Рисунок 2.4 – Доступні шаблони в додатку Instories 
Серед основних переваг даного додатку було виділено наступне: 
− можливість обрізати, повертати, змінювати яскравість, контрастність та 
кольорові налаштування зображень. Також є інструменти для додавання фільтрів та 
ефектів до контенту; 
− багатий вибір шрифтів та стилів для створення написів; 
− велика колекція безкоштовних музичних треків, які можна додавати до сторіз, 
можна також імпортувати власну музику зі свого пристрою; 
− створення анімованих переходів між кадрами та елементами сторіз. Можна 
встановлювати різні типи переходів, такі як затемнення, розтягування, випливання 
та інші; 
− після завершення редагування можна експортувати сторіз у форматі, 
підходящому для Instagram, Facebook або Snapchat. Також існує можливість 
автоматичного публікування сторіз безпосередньо з Instories додатку. 
 30 
Висновки до розділу 2 
У цьому розділі розглянуто три популярні додатки: TikTok, Videoleap і Instories. 
Кожен з цих додатків має свої унікальні особливості і можливості. 
Загалом, TikTok, Videoleap і Instories – це потужні інструменти для редагування 
фото та відео, які дозволяють користувачам створювати креативний контент. Кожен 
з цих додатків має свою специфіку і можливості, що залежать від потреб та вподобань 
користувача, зокрема такі додатки допомагають створювачам контенту створювати  
відео ролики за допомогою розширених функцій редагування, великою бібліотекою 
ефектів та різних фільтрів. Кожен з цих мобільних застосунків має свій безкоштовний 
набір функціоналу, а також платний набір функцій за підписку, яка надає набагато 
більше можливостей для створення та редагування фото та відео.   
  
 31 
3 ОГЛЯД ІСНУЮЧИХ ПІДХОДІВ ДО АВТОМАТИЗАЦІЇ ТЕСТУВАННЯ  
3.1 Піраміда автоматизованого тестування  
У тестуванні програмного забезпечення існують конкретні сценарії, коли 
розгортається автоматизоване тестування. Наприклад, автоматичне тестування не є 
ідеальним для дослідницького тестування, тестування інтерфейсу користувача, 
спеціального тестування та інших методів ручного тестування програмного 
забезпечення. 
Існують різні підходи до автоматизації тестування. Комплексне автоматизоване 
тестування включає в себе три рівні автоматизації. До таких рівнів належить: 
а) рівень модульного тестування (Unit Testing) – компонентні тести, що 
зазвичай пишуться розробниками ПЗ; 
б) рівень функціонального тестування (Functional Testing / API Testing) – 
тестування через доступ до функціонального шару, без врахування користувацького 
інтерфейсу (UI); 
в) рівень тестування користувацького інтерфейсу (GUI) – властивий для 
проведення функціонального тестування, виконуючи функції, які використовуються 
в бізнес-логікі програми. 
Варто відмітити, що для досягнення найвищої якості слід автоматизовувати всі 
три рівні даної стратегії тестування. Модель даного підходу має назву піраміда 
автоматизованого тестування, вигляд якого подано на рисунку 3.1.  
 
 
Рисунок 3.1 – Піраміда автоматизованого тестування 
 32 
Даний підхід рекомендує розставляти пріоритети різним типам 
автоматизованих тестів на основі їх швидкості, стабільності та охоплення. Зазвичай 
піраміда ділиться на три рівні, кожен з яких представляє окремий тип 
автоматизованого тестування.  
Нижній рівень піраміди є основою і складається з великої кількості тестів 
низького рівня. Ці тести зазвичай швидкі, стабільні та забезпечують добре покриття 
коду. Вони призначені для ізольованого тестування окремих одиниць коду та 
виявлення помилок на ранніх етапах циклу розробки. 
Середній рівень піраміди складається з меншої кількості інтеграційних тестів. 
Ці тести призначені для перевірки того, що окремі одиниці коду працюють разом 
правильно та інтегровані у більшу систему. Вони трохи повільніші та менш стабільні, 
ніж модульні тести, але все ж забезпечують гарне покриття коду та можуть виявити 
проблеми, які модульні тести можуть пропустити. 
Верхній рівень піраміди є найменшим і складається з невеликої кількості 
наскрізних тестів. Ці тести призначені для імітації взаємодії користувача з системою 
та перевірки правильності роботи системи від кінця до кінця. Вони повільніші, менш 
стабільні та забезпечують менше покриття коду, ніж модульні та інтеграційні тести, 
але важливі для виявлення проблем високого рівня, які можуть бути пропущені 
тестами нижчого рівня. 
Піраміда автоматизованого тестування часто використовується як орієнтир для 
встановлення пріоритетів типів тестів і забезпечення того, щоб автоматизовані тести 
забезпечували хороший баланс швидкості, стабільності та охоплення. 
Зосереджуючись на створенні міцної основи модульних тестів, команди можуть 
виявляти помилки на ранній стадії та гарантувати надійність і ефективність тестів 
вищого рівня. 
Хоча дана піраміда є загальноприйнятою структурою для структурування 
наборів тестів, вона також має деякі потенційні недоліки. Одним із головних 
недоліків є те, що створення ефективної системи автоматизації може зайняти багато 
часу та бути дорогим. Крім того, автоматизація вимагає постійного обслуговування 
та оновлень, що може ще більше збільшити вартість і складність процесу тестування. 
 33 
Інша проблема полягає в тому, що зосередження на модульних тестах і тестах 
API може означати, що наскрізному тестуванню та тестуванню інтерфейсу 
користувача не приділяється достатньо уваги. Це може призвести до прогалин у 
тестовому покритті та ускладнити виявлення проблем, які виникають лише в 
сценаріях реального використання.  
Нарешті, існує ризик того, що надмірна залежність від автоматизованих тестів 
може створити помилкове відчуття безпеки. Автоматизовані тести настільки хороші, 
наскільки хороший код, який їх керує, і якщо код є з недоліками, тести не зможуть 
виявити всі потенційні проблеми. Тому важливо доповнити автоматизовані тести 
ручним тестуванням та іншими формами гарантії якості, щоб забезпечити ретельну 
оцінку всіх аспектів програмного забезпечення.  
З часом класична піраміда автоматизованого тестування удосконалювалась за 
рахунок додавання нових рівнів тестів. Це призвело до створення нової піраміди, яка 
зветься «тестова піраміда», причому слово «автоматизація» було вилучено з назви 
даного підходу. Зображення даної піраміди подано на рисунку 3.2. 
 
 
Рисунок 3.2 – Розширена піраміда тестування 
 
 34 
У цій піраміді рівень функціонального тестування (Automated Service Tests) 
було розширено на 3 різні рівні. Серед них – Component Tests, Integration Tests, API 
Tests. Тести компонентів, зазвичай, є найнижчим рівнем автоматизованих тестів у 
піраміді та зосереджені на тестуванні окремих програмних компонентів або модулів 
ізольованих від решти системи. Ці тести часто пишуться розробниками, і їх можна 
виконувати швидко та часто, оскільки вони не мають багато залежностей. 
Інтеграційні тести є наступним рівнем у піраміді тестування та зосереджені на 
перевірці взаємодії між різними компонентами або модулями програмної системи. Ці 
тести призначені для того, щоб переконатися, що окремі компоненти системи 
працюють разом належним чином, і їх можна використовувати для виявлення 
проблем, які можуть виникнути через залежності між різними компонентами. 
Тести API – це ще один тип автоматизованого тестування, який можна 
використовувати для тестування програмного забезпечення на вищому рівні 
абстракції, ніж компонентні або інтеграційні тести. Ці тести зосереджені на 
тестуванні інтерфейсів між різними системами або службами, і їх можна 
використовувати, щоб переконатися, що системи взаємодіють одна з одною 
правильно. 
Зовнішній рівень «хмарки» з’явився на вершині, щоб показати ручне 
тестування, ідея полягає в тому, що воно є окремим від піраміди та може відбуватися 
в будь-який час. Оскільки слово «автоматизація» було видалено з діаграми, це 
призвело до того, що дії ручного та автоматизованого тестування були розмиті на 
діаграмі, а в деяких випадках були неправильно представлені, оскільки тепер піраміда 
намагається інкапсулювати всі дії тестування, а не зосереджуватися лише на 
автоматизації.  
Загалом, кожен тип автоматизованого тестування в піраміді тестування служить 
певній меті та може використовуватися для виявлення різних типів проблем у 
програмному забезпеченні. Використовуючи комбінацію різних типів 
автоматизованих тестів на різних рівнях деталізації, розробники програмного 
забезпечення можуть створювати більш надійні та якісні системи програмного 
забезпечення. 
 35 
3.2 Розробка через тестування (Test-driven development) 
Test-driven development (TDD) – це методологія розробки програмного 
забезпечення, в якій спочатку створюються тести, а потім вже код, який проходить ці 
тести. Основна ідея полягає у тому, щоб писати тести, які перевірятимуть 
правильність роботи програми перед тим, як будь-який код буде написаний. 
У TDD, процес розробки програми розбивається на малі етапи. Спочатку 
пишуться тести, які перевіряють очікувану поведінку програми. Потім пишеться 
достатньо коду, щоб пройти ці тести. Код повинен бути мінімальним та виконувати 
лише необхідні функції, які необхідні для проходження тестів. Після цього, код 
рефакториться таким чином, щоб він відповідав вимогам до якості, був читабельним 
та легко змінюваним. 
Даний підхід дозволяє знизити кількість помилок та покращити якість коду. 
Вона забезпечує максимальне покриття тестами, що дозволяє вчасно виявляти 
проблеми та уникати їх появу в майбутньому. Крім того, TDD покращує комунікацію 
в команді розробників, оскільки вимагає чіткого формулювання вимог до програми 
та опису її поведінки. 
Проте, TDD може бути вимогливим для виконання та вимагати додаткового 
часу та зусиль від розробників. Крім того, якщо тестування неправильно виконано, це 
може призвести до створення неправильного коду та невірної поведінки програми. 
Цикл розробки за методологією Test-driven development (TDD) складається з п’яти 
етапів: 
а) написання тестів: спочатку розробник пише тест на очікувану 
функціональність, яку необхідно реалізувати; 
б) перевірка тестів: підтвердження коректності роботи тестів; 
в) реалізація коду: після написання тесту, розробник починає розробку коду, що 
буде виконувати необхідну функціональність. Основна мета полягає в тому, щоб код 
пройшов тест; 
г) проходження тестів та аналіз результатів: запуск тестів в середовищі 
тестування з подальшим отриманням звіту результатів тестування. У випадку якщо 
 36 
тести пройдені успішно, можна бути впевненим що код відповідає вимогам, що 
перевіряються тестами; 
д) рефакторинг: після впевненості в успішності пройдених попередніх етапів, 
розробник проводить покращення коду, щоб зробити його більш чистим та 
ефективним. 
Цикл розробки за методологією TDD повторюється для кожної нової 
функціональності, яку необхідно додати в програму. Цей підхід дозволяє 
розробникам швидше виявляти помилки та забезпечує високу якість програмного 
забезпечення. Схематичне зображення даного підходу зображено на рисунку 3.3. 
 
Рисунок 3.3 – Цикл розробки TDD 
3.3 Розробка, орієнтована на поведінку (Behavior-driven development) 
Ще одним з відомих підходів до автоматизованого тестування і розробки в 
загальному сенсі є керована поведінкою розробка (з англ. Behavior-driven development 
– BDD). Даний підхід наголошує на співпраці між розробниками, тестувальниками та 
зацікавленими сторонами у створенні та автоматизації тестових випадків. У контексті 
 37 
автоматизації контролю якості BDD зосереджується на визначенні та перевірці 
поведінки програмного продукту за допомогою виконуваних специфікацій, також 
відомих як сценарії або файли функцій. 
Однією з ключових переваг використання BDD в автоматизації контролю якості 
є те, що воно сприяє чіткій комунікації між усіма зацікавленими сторонами, 
залученими до процесу розробки. Використовуючи спільну мову та спільне 
розуміння поведінки програми, розробники та тестувальники можуть працювати 
разом більш ефективно, щоб забезпечити відповідність програмного забезпечення 
бізнес-вимогам. 
У BDD тестові випадки визначаються в зручному для читання форматі за 
допомогою такої структури, як Gherkin. Ці тестові випадки написані з точки зору 
кінцевого користувача та розроблені, щоб охопити заплановану поведінку програми. 
BDD наголошує на важливості написання тестових випадків, які є короткими, 
легкими для розуміння та орієнтованими на бізнес-цілі. Приклад тестового випадку, 
описаного за допомогою структури Gherkin подано на рисунку 3.4. 
 
Рисунок 3.4 – Опис тестового випадку за допомогою Gherkin 
Для автоматизації цих тестів можна використовувати фреймворки BDD, такі як 
Cucumber і Behave. Ці фреймворки дозволяють автоматично виконувати тести та 
створювати звіти, які показують, які тести пройшли чи не пройшли. Завдяки 
автоматизації цих тестів команда розробників може швидко виявити будь-які 
 38 
помилки або проблеми, які можуть виникнути під час процесу розробки програмного 
забезпечення. 
В основі даного підходу лежить трьоетапний ітеративний процес, етапи якого 
наведено нижче: 
- виявляється найближча зміна в системі (User Story) і далі обговорюються 
конкретні приклади нової функціональності для дослідження, виявлення та згоди з 
деталями того, що потрібно зробити; 
- на другому етапі ці приклади документуються таким чином, щоб їх можна 
було автоматизувати, перевіряється згода; 
- нарешті, впроваджується поведінка, описана кожним документованим 
прикладом, починаючи з автоматизованого тесту, щоб керувати розробкою коду. 
Ідея полягає в тому, щоб робити кожну зміну маленькою та ітеруватись швидко, 
повертаючись на рівень вище кожного разу, коли необхідна більш детальна 
інформація. Кожного разу, коли автоматизується та впроваджується новий приклад, 
додається щось цінне до системи. Даний процес називають трьома словами: 
дослідження, формулювання та автоматизація. Модель керованої поведінки розробки 
подано на рисунку 3.5. 
 
Рисунок 3.5 – Модель Behavior-driven development 
Загалом BDD є цінним підходом для автоматизації контролю якості, оскільки 
він допомагає покращити співпрацю та спілкування між розробниками, 
тестувальниками та зацікавленими сторонами, а також забезпечує чіткий і 
послідовний спосіб визначення та перевірки поведінки програмного додатку. 
 39 
3.4  Порівняльний аналіз існуючих підходів до автоматизації тестування 
Піраміда тестування, TDD та BDD – це різні підходи до автоматизованого 
тестування, які мають свої особливості та переваги. 
Піраміда тестування – це підхід, що базується на рівнях тестування, де кожен 
рівень має свою мету та функцію, що дозволяє максимально оптимізувати час та 
зусилля, витрачені на тестування. Основна ідея піраміди тестування полягає в тому, 
що більшість тестів повинні бути написані на нижчому рівні (наприклад, unit-тести), 
а на вищих рівнях (наприклад, UI-тести) повинна бути менша кількість тестів. Такий 
підхід дозволяє забезпечити високу швидкість виконання тестів та зменшити 
кількість фальшивих позитивів. 
TDD – це підхід, що базується на написанні тестів перед написанням коду. 
Основна ідея TDD полягає в тому, що розробник спочатку пише автоматичні тести 
для нової функціональності, а потім пише саму функціональність, щоб пройти ці 
тести. Такий підхід дозволяє швидше виявляти та виправляти помилки, що допомагає 
зменшити час витрачений на тестування та покращення якості коду. 
BDD – це підхід до тестування, що зосереджується на визначенні та описі 
поведінки системи за допомогою прикладів, що базуються на бізнес-вимогах. Це 
дозволяє всім учасникам проекту зрозуміти, як система повинна працювати та які 
результати очікувати. BDD також забезпечує позитивний вплив на комунікацію між 
розробниками, QA та бізнес-аналітиками. Проте, BDD може вимагати значних зусиль 
у процесі визначення бізнес-вимог та визначення необхідних тестів в BDD 
проводиться у взаємодії з розробниками та бізнес-аналітиками і включає в себе 
визначення ключових прикладів, на основі яких будуть створені тестові випадки. 
У таблиці 3.1 наведена порівняльна характеристика особливостей піраміди 
тестування, розробки через тестування та розробки, орієнтованої на поведінку. 
 40 
Таблиця 3.1 – Порівняльний аналіз трьох підходів до автоматизованого тестування 
Тестова піраміда TDD BDD 
Охоплює тестове Охоплює тестове Зосереджується на бізнес-
покриття на кожному рівні покриття окремих вимогах та поведінці 
(unit-тести, інтеграційні, одиниць коду програми 
UI) 
Раннє виявлення дефектів Раннє виявлення дефектів Раннє виявлення дефектів 
Стабільна кодова база, яка Код, призначений для Добре задокументоване 
підтримується проходження тестів програмне забезпечення 
Оперативність у Полегшує рефакторинг Тестові прикладки 
виконанні тесту описуються простою 
мовою  
Висновок до розділу 3 
В третьому розділі проведено огляд сучасних підходів до автоматизованого 
тестування, досліджено такі підходи як піраміда тестування, розробка через 
тестування (TDD), та керована поведінкою розробка (BDD). Дані підходи є 
важливими при побудові стратегії тестування, оскільки допомагають обрати 
найкращі рішення при проектуванні тестів до програмного забезпечення. 
Також було наведено порівняльний аналіз у вигляді таблиці щодо відмінностей 
між підходами до автоматизованого тестування.  
  
 41 
4 ВИБІР ІНСТРУМЕНТІВ ДЛЯ РОЗРОБКИ АВТОМАТИЗОВАНИХ ТЕСТІВ 
4.1 Критерії вибору інструментів для автоматизації тестів 
Після обґрунтування необхідності тестування та огляду існуючих підходів до 
автоматизації тестування, наступним кроком є вибір інструментів для розробки 
автоматизованих тестів. Вибираючи інструменти для автоматизованого тестування, 
важливо враховувати різні критерії, щоб переконатися, що вибраний інструмент 
відповідає конкретним вимогам проекту. 
Важливим критерієм є тип тестування, який може підтримувати інструмент. 
Наприклад, деякі інструменти краще підходять для функціонального тестування, а 
інші – для тестування продуктивності чи безпеки. Важливо вибрати інструмент, який 
підтримує типи тестування, необхідні для проекту. Іншим важливим критерієм є 
простота використання інструменту та сумісність із середовищем розробки. 
Інструмент має бути простим у налаштуванні та інтеграції з існуючими 
інструментами розробки, а також простим у використанні групою розробників. Крім 
того, інструмент має бути сумісним із мовою програмування та платформою, які 
використовуються в проекті. 
Наявність і якість підтримки та документації є ще одним важливим критерієм, 
який слід враховувати. Постачальник інструменту повинен надати вичерпну 
документацію, навчання та підтримку, щоб команда розробників могла ефективно 
використовувати інструмент і вирішувати будь-які проблеми, які можуть виникнути. 
Важливим фактором є і вартість інструменту. Хоча деякі інструменти можуть 
бути дорогими, вони можуть пропонувати розширені функції, необхідні для проекту. 
Однак існують також інструменти з відкритим вихідним кодом, які можуть 
безкоштовно надавати подібні функції. Важливо зважити вартість інструменту та 
його функції та переваги, щоб визначити, чи варто це інвестувати для проекту. 
Нарешті, слід враховувати масштабованість інструменту та його здатність 
інтегруватися з іншими інструментами тестування. У міру того, як проект може рости 
та розвивається, вимоги до тестування можуть змінюватися, і інструмент повинен 
мати можливість відповідного масштабування. Крім того, інструмент повинен мати 
 42 
можливість інтегруватися з іншими інструментами тестування, щоб оптимізувати 
процес тестування та забезпечити більш комплексне рішення для тестування. 
Розглядаючи ці критерії та ретельно оцінюючи доступні інструменти, можна 
вибрати інструмент, який найбільше підходить для конкретних вимог проекту до 
тестування, і забезпечити успішну стратегію автоматизованого тестування. 
4.2 Вибір оптимальних інструментів для реалізації авто тестування 
Вибір мови програмування має велике значення, оскільки він визначає 
ефективність, зручність та потенційні можливості автоматизованого тестування. 
Існує багато різних мов програмування, кожна з яких має свої переваги і особливості. 
Один із головних факторів, які слід враховувати при виборі мови 
програмування – це відповідність мови потребам проекту. Різні мови програмування 
мають свої особливості і можуть бути більш або менш підходящими для конкретного 
проекту залежно від його характеристик і вимог. Наприклад, якщо проект базується 
на платформі Javascript, то використання мови програмування Javascript для 
автоматизованого тестування може бути доцільним, оскільки це дозволить легко 
інтегрувати тестовий фреймворк з основними компонентами проекту. 
Другим важливим аспектом є популярність та підтримка мови програмування в 
галузі автоматизованого тестування. Обираючи мову, яка є широко 
використовуваною в спільноті тестувальників, можна забезпечити доступ до багатої 
бази знань, документації та різноманітних ресурсів, що полегшують розвиток і 
підтримку автоматизованих тестів. Крім того, популярні мови програмування частіше 
оновлюються, мають активну спільноту розробників і стабільну підтримку з боку 
інструментів тестування. 
Також варто враховувати рівень володіння командою розробників обраної мови 
програмування. Якщо команда вже має досвід роботи з певною мовою, вона буде 
більш ефективною і продуктивною при розробці автоматизованих тестів. Знання 
мови програмування, фреймворків та інструментів, пов'язаних з обраною мовою, 
дозволять команді швидше реалізувати тестові скрипти, проводити налагодження 
програми та підтримувати автоматизовані тести в майбутньому. 
 43 
Крім того, екосистема мови програмування є важливим фактором при виборі. 
Важливо перевірити наявність різноманітних інструментів підтримки 
автоматизованого тестування для обраної мови, таких як фреймворки, бібліотеки 
тестування, засоби збирання звітів тощо. Це дозволить легко і швидко розгортати 
тестове середовище, забезпечити необхідні функціональність і зручність у процесі 
розробки та виконання автоматизованих тестів. 
Вибір мови програмування для автоматизованого тестування є вагомим 
рішенням, яке потребує збалансованого підходу. Враховуючи потреби проекту, 
популярність мови, рівень володіння командою та наявність інструментів підтримки, 
можна зробити обґрунтований вибір, що сприятиме успішному розвитку та підтримці 
автоматизованих тестів. 
4.2.1 Використання мови програмування Javascript 
JavaScript є однією з найпоширеніших мов програмування, яка широко 
використовується для розробки веб-додатків і, зокрема, автоматизованого 
тестування. Вибір JavaScript для розробки автоматизованих тестів має свої переваги і 
може бути доцільним залежно від конкретних потреб проекту. 
Однією з головних переваг JavaScript є його широке поширення і популярність. 
Це означає, що пошук ресурсів, документації, форумів та спільноти розробників для 
підтримки та розв'язання проблем буде значно простіше. Багато фреймворків та 
бібліотек тестування, таких як Selenium WebDriver, Jest, Mocha, Playwright є 
доступними для JavaScript, що дозволяє розширити можливості та зручність 
автоматизованого тестування.  
Дана мова програмування чи не найкраще підходить для веб-автоматизованого 
тестування, оскільки ця мова є основною у фронтенд розробці.  
Також при виборі JavaScript для автоматизованого тестування варто 
враховувати його особливості. Мова має динамічну типізацію, що може призвести до 
помилок через неочікуване поведінку деяких об'єктів. Крім того, JavaScript може бути 
вразливим до затримок інтерфейсу користувача, що може ускладнити автоматизацію 
деяких сценаріїв. 
 44 
За даними дослідження Stack Overflow мова програмування Javascript займає 
перше місце серед інших мов за своєю популярністю і найчастішим запитом 
інформації розробниками по всьому світу [4]. Опублікований рейтинг мов 
програмування подано на рисунку 4.1. 
 
Рисунок 4.1 – Рейтинг мов програмування за версією Stack Overflow 
Вибір мови програмування для розробки автоматизованих тестів є важливим 
етапом процесу побудови інструментів тестування. JavaScript є популярною мовою 
програмування, яка забезпечує широкі можливості та розширює доступні 
фреймворки і бібліотеки для автоматизованого тестування. Його широке поширення, 
доступність ресурсів та простота навчання роблять його привабливим вибором для 
багатьох автоматизаторів тестування. 
 45 
Слід враховувати особливості мови, такі як динамічна типізація, яка може 
призвести до потенційних помилок, а також затримки інтерфейсу користувача, які 
можуть вплинути на процес автоматизації. При виборі мови програмування слід 
враховувати вимоги проекту, здатність розробників та підтримку спільноти, щоб 
забезпечити ефективну і успішну реалізацію автоматизованих тестів. 
4.2.2 Вибір системи управління тестуванням 
Ефективне управління процесом тестування є важливим аспектом 
автоматизованого тестування. У даному розділі розглянуто вибір системи управління 
тестуванням, яке допоможе забезпечити організацію, планування та виконання 
тестових випадків інтернет-магазину. 
Система управління тестуванням (Test Management System) є інструментом, 
який дозволяє організовувати та відстежувати весь життєвий цикл тестування. Вона 
дає можливість створювати, виконувати та відстежувати тестових сценарії, керувати 
дефектами, аналізувати результати тестування та спільну роботу між командами 
розробників та тестувальників. 
При виборі системи управління тестуванням необхідно враховувати кілька 
факторів. Перш за все, важливо визначити потреби та вимоги щодо управління 
тестуванням. Це можуть бути такі аспекти, як розподіл завдань між командами, 
відстеження стану тестових сценаріїв, звітність та аналітика результатів тестування 
тощо. Також слід звернути увагу на функціональні можливості системи управління 
тестуванням. Це включає можливість створення та організації тестових сценаріїв, 
інтеграцію з іншими інструментами тестування, відстеження дефектів та здатність до 
аналізу результатів тестування. 
Технічні вимоги також є важливим аспектом при виборі системи управління 
тестуванням. Система повинна бути легко встановлюваною та налаштовуваною, 
залежно від потреб проєкту, а також сумісна з іншими інструментами та 
технологіями, які використовуються в ПЗ. 
Безпека та захист інформації також мають велике значення при виборі системи 
управління тестуванням. Важливо переконатися, що система надає необхідні умови 
 46 
для зберігання та захисту конфіденційної інформації, такої як тестові дані, дані про 
дефекти та результати тестування. 
Також на критерій вибору системи впливає вартість та доступність. Ціна за 
використання може варіюватись в залежності від функціональності, ліцензійних 
умов, засобів підтримки та інших факторів. Важливо оцінити, чи відповідає ціна 
системи бюджетним можливостям. 
Аналізуючи ринок даних систем керування було знайдено велику кількість 
систем керування тестуванням. Серед відомих інструментів існують такі: TestRail, 
Zephyr, QTest, PractiTest, Testinity. 
TestRail – це популярна система управління тестуванням, розроблена 
компанією Gurock Software. Вона надає зручні інструменти для планування, 
виконання, відстеження та керування тестовими процесами. Однією з головних 
переваг TestRail є його можливість централізованої організації тестових сценаріїв, 
тестових наборів, тест-кейсів та інших артефактів тестування. За допомогою даної 
системи можна  створювати структуровані плани тестування, включаючи ієрархію 
наборів тестів, пов'язані дефекти та іншу важливу інформацію. На рисунку 4.2 
відображено вікно інтерфейсу користувача системи TestRail.  
 
Рисунок 4.2 – Система управління тестуванням TestRail 
Даний інструмент також дозволяє фіксувати результати виконання тестів, 
включаючи їх успішність, помилки та помітки. 
 47 
Ще однією важливою функцією TestRail є його інтеграція з іншими 
інструментами розробки, такими як системи управління завданнями (наприклад, 
JIRA), системи версіонування коду та автоматизовані фреймворки тестування. Це 
дозволяє забезпечити безперервний тестовий процес та обмін даними між різними 
інструментами. 
Також TestRail має зручний інтерфейс користувача, що спрощує роботу з 
системою та навігацією між різними функціями. 
Даний інструмент вважається одним із найкращих серед своїх конкурентів, 
оскільки надає цілий спектр можливостей для тестувальника ПЗ. 
У таблиці 4.1 наведені результати порівняльного аналізу систем управління 
тестуванням. 
Таблиця 4.1 – Порівняльна характеристика існуючих систем управління тестуванням 
Система Вартість Пробна Основні функції  Користувачі Загальне 
управління користування версія оцінювання 
тестуванням (від 1 до 5) 
TestRail $34/місяць  30 днів Написання тестових Від малих до 5 
випадків, тест плану, великих 
звіти тестування проєктів 
Zephyr $10/місяць 30 днів Інтеграція з іншими Від малих до 4 
системами, великих 
тестування основане проєктів 
на вимогах 
QTest Індивідуально 14 днів Підтримка Agile Від малих до 4 
під потреби процесів, підходить середніх 
проєкту під BDD підхід проєктів 
тестування 
PractiTest $39/місяць 14 днів Інтеграція з іншими Середні 3 
системами  проєкти 
Testinity $17/місяць 30 днів Управління тестами Малі проєкти 3 
 48 
4.2.3 Фреймворк автоматизованого тестування Playwright 
Фреймворк автоматизованого тестування Playwright є інструментом, 
спроектованим для автоматизації тестування веб-додатків. Розроблений компанією 
Microsoft в 2020 році вважається на сьогоднішній час одним із найпопулярніших і 
найзатребуванішим серед інженерів-автоматизаторів. Спочатку він починався як 
бібліотека на основі Javascript, але з часом розширився і підтримує такі сучасні мови 
програмування як Python, Java, .NET. 
Даний інструмент високо цінується завдяки кросс-браузерній підтримці, 
оскільки Playwright підтримує автоматизацію веб-додатків в різних браузерах, таких 
як Google Chrome, Firefox, Safari, Microsoft Edge. Це дозволяє забезпечити сумісність 
тестів з різними браузерами та переконатися, що веб-додаток працює належним 
чином у всіх популярних браузерах. Не менш важливим є також те, що Playwright 
підтримує багатоплатформність. Він може бути використаний для автоматизації 
тестування на різних платформах, включаючи Windows, macOS та Linux. Це робить 
його універсальним інструментом для розробки та виконання автоматизованих тестів 
незалежно від операційної системи. 
Playwright надає багатий набір функцій для автоматизації веб-додатків, 
наприклад, взаємодія з DOM-елементами, перевірка стану веб-сторінок, виконання 
дій миші та клавіатури, обробка асинхронних запитів та багато іншого. Також, 
Playwright може бути легко інтегрований з інструментами для CI/CD, такими як 
Jenkins або CircleCI, що дозволяє автоматизувати запуск тестів в процесі розробки. 
Важливо також те, що багато компаній використовують його все частіше для 
тестування, оскільки Playwright забезпечує швидкість проходження тестів, а також 
зручне використання з простим та зрозумілим синтаксисом та добре описаною 
документацією, яка включає приклади використання, посібники та роз’яснення 
ключових концепцій. Це допомагає розробникам швидко оволодіти фреймворком та 
швидко розпочати автоматизацію тестів. Темп розвитку даного інструменту подано 
на рисунку 4.3. 
 49 
 
Рисунок 4.3 – Популярність Playwright за скачуванням  
Playwright має активну спільноту розробників тестів, які надають підтримку та 
спільно працюють над розвитком даного фреймворку та обмінюються досвідом свого 
користування. Це означає, що завжди можна отримати допомогу, поради та 
рекомендації від інших розробників. Крім того, активна спільнота сприяє 
вдосконаленню фреймворку, вносить нові функції та виправляє помилки.  
Playwright надійний і простий в обслуговуванні, оскільки виконує різноманітні 
перевірки працездатності елементів перед виконанням конкретних дій. Це означає, 
що середовище тестування може зосередитись на інших аспектах скрипту замість 
того, щоб контролювати очікування коду, це робить тестування більш простим і менш 
схильним до помилок. Приклад реалізації авто-очікування подано на рисунку 4.4. 
 
Рисунок 4.4 – Реалізація Auto-Waits 
Тестові сценарії можна використовувати для налаштування умов, при яких 
тестується програма, шляхом автоматизації імітації завантажень файлів, обробки 
 50 
різних методів автентифікації, перехоплення мережевих запитів та імітації відповідей 
на запити. Це дозволяє проводити більш точне тестування, гарантуючи правильну 
роботу програмного забезпечення в багатьох сценаріях. Дана функція в Playwright має 
назву Network Control. Приклад реалізації даної функції подано на рисунку 4.5. 
 
Рисунок 4.5 – Реалізація Network Control 
Для  відправки запитів безпосередньо на сервер веб-додатку з Node.js, 
Playwright також може мати доступ до REST API. Це може стати корисним, якщо 
немає необхідності завантажувати сторінку і запускати в ній код JS.  
Використання функції тестування API є важливим для перевірки 
функціональності на стороні серверу, а також його можна використовувати для 
підготовки даних і стану перед доступом до веб-програми. Окрім того, тестування 
API може допомогти перевірити постумови виконання різних дій в браузері. На 
рисунку 4.6 показано приклад реалізації даного підходу тестування API. 
 
Рисунок 4.6 – Тестування API запитів 
 51 
Висновки до розділу 4 
В даному розділі було визначено необхідні інструменти для автоматизації 
процесу тестування. З огляду на сучасні потреби замовників проєктів необхідним 
інструментом для зберігання та керування тестовою документацією було обрано 
сучасну систему управління тест менеджментом TestRail. Також наведено 
порівняльну характеристку інших подібних систем, визначено їх основні функції та 
вартість за користування. 
Найбільш важливим було обрати необхідний фреймворк автоматизованого 
тестування Playwright, який підтримує сучасну мову програмування Javascript. Окрім 
забезпечення швидкості тестування, даний інструмент підходить для взаємодії з 
різними веб-елементами, тестуванням мережевих запитів та API, а також має велику 
спільноту розробників, які активно розвивають даний фреймворк. 
  
 52 
5 ПРОЕКТУВАННЯ ТА РОЗРОБКА АВТОМАТИЗОВАНИХ ТЕСТІВ 
5.1 Написання тестових випадків в системі управління тестами TestRail 
Перед початком розробки автоматизованих скриптів для веб-сайту Rozetka, 
необхідно створити тестову документацію у вигляді тестових випадків. Тестова 
документація допоможе систематизувати та описати очікувані результати та 
поведінку на сайті, що буде перевірятися під час автоматизованого тестування. 
Було розглянуто основну функціональність веб-сайту та обрано конкретні 
аспекти, які необхідно перевірити. Головна сторінка веб- сайту Rozetka зображена на 
рисунку 5.1.  
 
Рисунок 5.1 – Головна сторінка інтерфейсу Rozetka 
Перше що бачить користувач інтернет-магазину це каталог товарів з різними 
категоріями продуктів. Перевірка каталогу товарів є першочерговим та важливим 
кроком, оскільки відображення товарів є основною складовою частиною інтернет-
магазину. Тому необхідно провести детальне тестування цієї функціональності, щоб 
переконатися в її коректності та надійності. На даному етапі було створено набір 
тестових випадків з назвою Goods Catalog в системі управління тестуванням TestRail. 
Даний набір тестів показано на рисунку 5.2. 
 53 
 
Рисунок 5.2 – Набір тестів для каталогу в СУТ TestRail 
Кожен тест-кейс повинен містити унікальний ідентифікатор, назву та опис 
перевірки. Опис повинен включати вихідний стан, кроки для відтворення тесту та 
очікувані результати. Наприклад, для тестування фільтрації товарів за ціною можна 
мати окремий тестовий випадок зі списком кроків для пошуку елементу на сторінці, 
натискання на кнопку, введення значень в поля вводу (ціна: від та до) та перевірки 
результатів. Приклад тестового випадку з детальним описом подано на рис. 5.3. 
 
Рисунок 5.3 – Опис тестового випадку для фільтрації товарів за ціною 
 54 
5.2 Автоматизація сценаріїв тестування інтернет-магазину за допомогою 
Playwright 
Як було досліджено раніше, Playwright є фреймворком для тестування веб-
сайтів да додатків. Для його роботи потрібен NodeJS [5], інсталяція даної бібліотеки 
встановлюється безпосередньо на робочий комп’ютер. Спочатку створюємо проєкт 
Playwright (рис. 5.4). Базова структура проєкту показана на рис. 5.5. Команда запуску 
тестів подана на рис. 5.6. Результати тестів записуються в html-файли, які можна 
переглянути в браузері (рис. 5.7). 
 
Рисунок 5.4 – Команда ініціалізації Playwright 
 
Рисунок 5.5 – Структура проєкту Playwright 
 
Рисунок 5.6 – Команда запуску Playwright-тестів 
 
Рисунок 5.7 – Команда запуску результатів тестів 
Приклад результатів проходження тестів записаних в HTML документ за 
кількістю пройдених, не пройдених, або пропущених тестів подано на рисунку 5.8. 
 55 
 
Рисунок 5.8 – Результат проходження тестів 
Розетка є одним з найбільших інтернет-магазинів в Україні. Вона була 
запущена у 2005 році і стала одним з найпопулярніших місць для онлайн-шопінгу в 
країні. Розетка пропонує широкий асортимент товарів, включаючи електроніку, 
комп'ютери, побутову техніку, одяг, косметику, іграшки та багато іншого. 
Розетка має великий вибір товарів в різних категоріях. Вони співпрацюють з 
багатьма відомими брендами та постачальниками, що дозволяє представляти велику 
кількість товарів у своєму каталозі. 
Веб-сайт та мобільний додаток має зручний інтерфейс, який дозволяє 
користувачам швидко знаходити потрібні товари, порівнювати їх характеристики та 
ціни, а також здійснювати покупки зручним способом. Користувачі можуть 
звертатися до служби підтримки з будь-якими питаннями, проблемами або запитами, 
і отримувати оперативну допомогу. Безпека покупок  включає великий акцент на 
безпеку та захист персональних даних своїх клієнтів. Вони використовують захищені 
засоби комунікації та шифрування для забезпечення безпеки платежів та 
конфіденційності інформації. 
 56 
Сайт також надає різні варіанти доставки, включаючи кур'єрську доставку, 
самовивіз з пунктів видачі та поштову доставку. Також є різні способи оплати, такі як 
готівка при отриманні, онлайн-платежі, платіжні картки та інші. 
Програма лояльності, яка надає додаткові переваги та знижки для постійних 
покупців. Це можуть бути бонусні бали, знижки на майбутні покупки або спеціальні 
акції. Користувачі мають можливість залишати відгуки про товари. Це допомагає 
іншим покупцям зробити кращий вибір і надає додаткову інформацію про якість та 
задоволення від товарів. 
Загалом, Rozetka – це надійний та популярний інтернет-магазин з великим 
асортиментом товарів, зручною системою замовлення та доставки, а також якісним 
сервісом підтримки клієнтів. Вона надає зручний спосіб для шопінгу онлайн і стала 
популярним вибором для багатьох українських покупців. 
Для того, щоб продемонструвати набуті знання про автоматизацію тестування, 
було вирішено розробити тести на основі попередньо створених тестових випадків. 
Базові тести: 
– пошук по коду товару перенаправляє на сторінку товару; 
– товари можна знайти по назві; 
– логін працює; 
– перемикач мов працює; 
– привітальна кнопка логіну працює. 
Корзина: 
– товари додаються в корзину; 
– товари видаляються з корзини; 
– вираховується правильна вартість деякої кількісті товарів; 
– кнопка «продовжити шопінг» працює. 
Вигляд тесту пошуку товарів показано на рис. 5.9. Для спрощення написання 
коду використана ООП-модель «Page-object». 
Page-object є шаблоном проектування, який використовується в 
автоматизованому тестуванні веб-додатків, в тому числі в бібліотеці Playwright. Він 
 57 
дозволяє створювати окремі об'єкти для кожної сторінки веб-додатку, які містять 
методи та властивості, необхідні для взаємодії з цією сторінкою. 
За допомогою патерну Page-object можна абстрагувати веб-елементи та 
функціональність кожної сторінки в окремий клас. Це дозволяє розподілити логіку 
взаємодії зі сторінкою на рівень вище ізоляції, що спрощує підтримку та покращує 
структуру автоматизованих тестів. 
 
Рисунок 5.9 – Тест пошуку товару по коду 
В цьому тесті використовується клас HomePage, в якому реалізовано метод 
navigateToThis, який відкриває сторінку сайту Rozetka. Також використаний об’єкт 
клавіатури з Playwright для відтворення натискання на кнопку Enter. 
Вигляд класу CartPage показано на рис. 5.10. Цей клас реалізовано за 
методологією page-object, де визначено основні елементи сайту з об'єктної моделі 
документу (Document Object Model). Також тут прописані основні допоміжні методи, 
які допоможуть реалізовувати кроки відтворення тестів. 
 
Рисунок 5.10 – Клас сторінки корзини 
 58 
Тест пошуку товару за самою назвою в полі пошуку показано на рисунку 5.11. 
 
Рисунок 5.11 – Тест пошуку товарів по назві 
Варто зауважити, що всі тести в кожному наборі тестів обгорнуті в описуючу 
функцію test.describe(), показану на рис. 5.12. Ця функція описує назву набору тестів, 
які включені до конкретного сценарію тестування. 
 
Рисунок 5.12 – Тест пошуку товару по коду 
Результати запуску всіх тестів видно на рис. 5.13. Утім, один тест провалився – 
це тест на логін. Нажаль, не кожен раз вдається перевірити цей функціонал через 
спорадичну наявність Google Captcha. 
 
Рисунок 5.13 – Результати виконання реалізованих тестів 
Реалізацію інших тестів можна побачити в додатку Б. 
 
 59 
5.3 Налаштування звіту Allure про результати тестування 
Allure є фреймворком та звітним інструментом, який допомагає збирати, 
аналізувати та візуалізувати результати тестування. Він дозволяє створювати 
докладні звіти про виконані тести, які можуть бути легко зрозумілі та доступні для 
всіх учасників проекту, включаючи розробників, тестувальників та менеджерів. 
Даний інструмент є фреймворкомом з відкритим вихідним кодом, призначеним для 
створення звітів про виконання тестів, зрозумілих кожному в команді. Це гнучкий та 
легкий інструмент, який дозволяє отримати не лише коротку інформацію про хід 
виконання тестів (як наприклад, звіти в HTML), а й надає всім учасникам 
виробничого процесу максимум корисної інформації із повсякденного виконання 
автоматизованих тестів. Розробникам та тестувальникам використання звітів Allure 
дозволяє скоротити життєвий цикл дефекту [6]. 
Також він має підтримує багатьох мов програмування та інтегрується з різними 
фреймворками для автоматизованого тестування, такими як Playwright, Selenium, 
JUnit, TestNG тощо. Звіти Allure мають графічний інтерфейс, який дозволяє швидко 
отримати уявлення про стан тестів та їх результати виконання. 
Тести можуть бути організовані у вигляді пакетів, модулів, сценаріїв та окремих 
тестових кейсів, що допомагає логічно групувати тести та аналізувати їх результати 
на кожному рівні. Allure дозволяє вбудовувати скріншоти екрану та відео з 
результатами виконання тестів, що полегшує відлагодження та аналіз помилок. 
Існує підтримка різних форматів виходу: Allure може генерувати звіти в різних 
форматах, таких як HTML, XML, JSON, що дозволяє легко інтегрувати їх з різними 
системами управління проектами та звітності. 
Allure став популярним інструментом у спільноті тестувальників та 
розробників завдяки своїм зручним функціям та зворотному зв'язку, який він надає 
під час виконання тестів. Він допомагає покращити процес тестування та сприяє 
забезпеченню якості програмного забезпечення. 
 60 
Для співпраці з Playwright є пакет «allure-playwright». Інсталяція показана на 
рисунку 5.14. Після цього потрібно встановити відповідне значення поля reporter в 
файлі «playwright.config.ts» (рис. 5.15). 
 
Рисунок 5.14 – Команда додавання пакету allure-playwright в проект 
 
Рисунок 5.15 – Значення reporter в налаштуваннях Playwright 
Для генерації результатів застосовується команда «npx playwright test --
reporter=allure-playwright». Для відкриття цих результатів можна виконати команду 
«allure open allure-report». Результати тестування  в Allure подано на рис. 5.16. Інші 
сторінки, зокрема сторінка «Suites» (рис. 5.17), показує детальні результати 
тестування кожного тест-кейсу. Кожен тест може мати 5 станів: 
– Passed – тест пройшов успішно; 
– Broken – некоректно описаний тест; 
– Failed – тест пройшов не успішно; 
– Skipped – тест пропущено; 
– Unknown – невідомий стан. 
Також можна вказувати атрибут серйозності для тесту за допомогою 
спеціальних методів в самих тестах, де аргумент серйозності тесту може мати одне з 
наступних визначених значень [7]: 
– Critical – мають найвищий ступінь важливості; 
– High – перевіряють важливі аспекти фунціональності; 
– Medium – перевіряють основну функціональність та забезпечують 
правильність роботи в стандартних умовах; 
– Minor – перевірка додаткових аспектів функціональності або менш важливих 
функцій. 
 61 
 
 
Рисунок 5.16 – Вигляд головної сторінки звіту Allure 
 
Рисунок 5.17 – Вигляд сторінки набору тестів Allure 
Висновки до розділу 5 
В четвертому розділі було описано тестову документацію до сайту інтернет 
магазину Rozetka у вигляді тестових випадків. Це дозволило структурувати тестові 
сценарії, описати очікувані результати та надати тип і пріоритет. Для зручності в 
 62 
якості системи управління тестами була обрана система TestRail, яка надає 
безкоштовний обмежений доступ зі зручними інструментами для створення та 
організації тестової документації. 
Для розробки демонстраційних автоматизованих тестів був використаний 
фреймворк Playwright, який дуже швидко набирає свою популярність завдяки своїм 
перевагам, таким як авто-очікування, Network Control, тестування API запитів, 
кросбраузерне і кросплатформне тестування, а також можливість запускати тести 
паралельно. Швидкість і зручність користування була однією з важливих ключових 
показників при виборі даного фреймворку. 
При написанні тестів було використано редактор коду Visual Studio Code з 
підтримкою таких розширень, як Playwright Runner, Playwright Test Snippets для 
швидкої перевірки окремих тестів.  
Було автоматизовано ключові функції сайту, такі як  пошук товарів, кошик, 
відображення товарів в каталозі, сторінки товарів, авторизація користувача. 
Також було підключено фреймворк Allure, який генерує детально описані звіти 
про результати тестування. 
  
 63 
ВИСНОВКИ 
В ході даної кваліфікаційної роботи було зосереджено на проектуванні та 
розробці автоматизованих тестів для інтернет-магазину Rozetka. Метою було 
визначити різні аспекти автоматизації тестування, включаючи можливість 
протестувати вже готовий програмний продукт. Дана робота включає дослідження 
існуючих підходів до тестування програмного забезпечення, критерії вибору 
інструментів і вибір мови програмування з фреймворком автоматизації. 
Під час дослідження було перевірено значення тестування в життєвому циклі 
розробки ПЗ. Було визначено, що тестування відіграє важливу роль у забезпеченні 
якості, надійності та функціональності програмних додатків. Це допомагає виявити 
дефекти ще на ранніх стадіях розробки, щоб не допустити випуск програми з 
недоліками, які можуть вплинути на репутацію та дохід бізнес-проекту.  Було 
розглянуто підходи до автоматизації тестування та проаналізовано переваги і 
обмеження даних підходів. 
Вибір інструментів тестування є критичним рішенням для написання 
автоматизованих тестів. Проаналізувавши відомі системи управління тестами, 
зокрема Testrail, Zephyr, PractiTest, Testinity, та надавши порівняльний аналіз їх 
можливостей і придатності для різних потреб тестування, було обрано СУТ TestRail. 
Окрім роботи в TestRail, було вирішено реалізовувати автоматизацію за 
допомогою мови JavaScript, як універсальна мова, яка широко використовується в 
тестуванні веб-додатків, а також ідеально підходить для фреймворку автоматизації 
тестування Playwright. Одним із важливих етапів було реалізувати автоматизовані 
тести в середовищі Playwright. На цьому етапі було розроблено тести для ключових 
функціональностей інтернет-магазину Rozetka, а також підключено зручний для 
аналізу інструмент Allure, який генерує  звіти про тестування. 
Загалом це дослідження сприяє розумінню автоматизованого тестування та дає 
цінну інформацію для практиків і дослідників у галузі тестування програмного 
забезпечення. Використовуючи концепції та практики, розглянуті в цьому 
дослідженні, організації можуть покращити свої процеси тестування ПЗ. 
 64 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 
1. Модель багаторівневої архітектури URL: http://eed3si9n.com/layered-
architecture/ ( дата звернення 15.03.2023). 
2. І. Слюз, Р. Жаровський. Критерії ефективності тестування комп’ютерної 
інформаційної системи : Актуальні задачі сучасних технологій, 174 с. 
3. Критерії вибору тестів – Studfiles матеріали. URL: 
https://studfile.net/preview/14533242/page:3/ (дата звернення 23.03.2023). 
4. Опитування Stack Overflow. 2022. URL: 
https://survey.stackoverflow.co/2022/#overview (дата звернення 24.03.2023). 
5. NodeJS. URL: https://nodejs.org/en/about (дата звернення 30.04.2023). 
6. Allure Framework – популярний інструмент побудови звітів. URL: 
https://qagroup.com.ua/publications/allure-framework-populiarnyj-instrument-pobudovy-
zvitiv/ (дата звернення 05.05.2023). 
7. Allure framework documentation. URL: https://docs.qameta.io/allure/ (дата 
звернення 05.05.2023). 
8. Playwright. URL: https://playwright.dev/ (дата звернення 05.05.2023).