DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Інтеграція тестування в процеси DevOps: методи та інструменти

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Програмного забезпечення (ПЗ)

Інформація про роботу

Рік:
2026
Тип роботи:
Курсова робота
Предмет:
Захист програмного забезпечення
Група:
ПК-31
Коротко про документ

Про що ця робота

У курсовій роботі досліджено принципи інтеграції тестування в процеси DevOps та методи забезпечення якості програмного забезпечення. Особливу увагу приділено автоматизації тестування за допомогою інструменту Selenium та аналізу веб-додатків.

У роботі розглядаються

  • DevOps
  • Тестування програмного забезпечення
  • Автоматизація тестування
  • Selenium
  • Веб-додатки
  • Інтеграційне тестування
  • Життєвий цикл розробки

Зміст і розділи

  1. Вступ
  2. Аналіз обраної області
  3. Аналіз предметної галузі
  4. Аналіз стратегії тестування
  5. Розроблення плану тестування і вибір методів
  6. Розроблення тестового забезпечення
  7. Тестування програми
  8. Висновки
  9. Список використаних джерел
Для кого:Студенти, викладачі та розробники програмного забезпечення, які цікавляться методологією DevOps та автоматизацією тестування.
Викладачі:Кафедра програмного забезпечення

Ключові поняття

DevOpsSeleniumінтеграційне тестуваннявеб-додаткиавтоматизація тестуванняCI/CDжиттєвий цикл ПЗтест-планмодульне тестування

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Пояснювальна записка до курсової роботи з курсу: «Тестування програмного забезпечення» на тему: «Інтеграція тестування в процеси DevOps: методи та інструменти» РЕФЕРАТ Обсяг пояснювальної записки : 33; Кількість частин записки : 7; Кількість ілюстрацій : 6; Кількість таблиць : 3; Кількість джерел : 5; Мета курсової роботи Метою курсової роботи є комплексне дослідження принципів інтеграції тестування в процеси DevOps, що включає аналіз методів, інструментів та підходів для забезпечення якості програмного забезпечення на всіх етапах життєвого циклу розробки. Метод розв’язання задачі Методами дослідження було обрано: аналіз процесу інтеграційного тестування веб-додатків, використання Selenium для автоматизації тестів, а також вивчення інструментів і методик, що сприяють інтеграції тестування в процеси DevOps. Отримані результати Отримані результати показали, що інтеграційне тестування є критично важливим для забезпечення якості програмного забезпечення, особливо в умовах безперервної доставки. Інструменти автоматизації, такі як Selenium, значно підвищують ефективність тестування і знижують ризик помилок в продуктивному середовищі. Ключові слова: DevOps, веб-додатки, інтеграційне тестування, Selenium ЗМІСТ Реферат……………………………………………………………………………... 2 Зміст………………………………………………………………………………… 3 Вступ………………………………………………………………………………... 4 1. Аналіз обраної області…...…………………………………………………….. 6 2. Аналіз предметної галузі………………………..…………………………….. 10 3. Аналіз стратегії тестування…………….……………………………………... 12 4. Розроблення плану тестування і вибір методів……………………………… 15 5. Розроблення тестового забезпечення…………….…………………………... 19 6. Тестування програми…………………..……………………………………… 22 7. Аналіз результатів тестування…………...…………………………………... 31 Висновки…………………………………………………………………………... 32 Список використаних джерел……………………………………………………. 33 ВСТУП Веб-розробка сьогодні є важливою частиною технологічного прогресу, оскільки з кожним роком зростає кількість інтернет-сервісів та мобільних додатків, що потребують безперервної модернізації та вдосконалення. Проблема забезпечення якості програмного забезпечення (ПЗ) у таких системах стає все більш актуальною, оскільки багатокомпонентні веб-додатки часто потребують високого рівня стабільності, продуктивності та безпеки. На цьому етапі важливу роль відіграє тестування програмного забезпечення, зокрема в контексті сучасних методологій розробки, таких як DevOps. DevOps — це підхід до розробки, який сприяє тісній співпраці між командами розробників і операційними командами, що дозволяє швидко і ефективно доставляти нові версії ПЗ. Інтеграція тестування в цей процес є надзвичайно важливою, оскільки тестування має бути частиною безперервного циклу розробки та доставки. Традиційно тестування ПЗ було ізольованим етапом, який проводився на пізніх етапах розробки. Однак із розвитком DevOps тестування стало невід'ємною частиною всього життєвого циклу розробки ПЗ. Світові тенденції в галузі тестування програмного забезпечення показують, що автоматизація тестування, інтеграція в процеси CI/CD (безперервної інтеграції та доставки) і застосування інструментів для тестування на всіх етапах життєвого циклу розробки є ключовими аспектами сучасного підходу до тестування в рамках DevOps. Це дозволяє значно зменшити час між розробкою та випуском нових версій ПЗ, а також знижує ймовірність появи дефектів у фінальній версії продукту. Незважаючи на широке застосування DevOps та інтеграцію тестування в цей процес, існують і проблеми, пов'язані з автоматизацією тестування, забезпеченням кросплатформенності, тестуванням на різних етапах життєвого циклу розробки, а також наданням можливості масштабування тестових сценаріїв у складних системах. Тому існує потреба в постійному вдосконаленні методів тестування, а також у використанні новітніх інструментів для забезпечення безперервної інтеграції та тестування. Актуальність цієї курсової роботи полягає в тому, що розробка та підтримка ефективних методів інтеграції тестування в процеси DevOps є необхідною для забезпечення високої якості ПЗ, швидкого виявлення помилок і підвищення продуктивності команд розробки. Враховуючи постійне збільшення складності веб-додатків та швидкість їх розробки, інтеграція тестування на всіх етапах життєвого циклу є важливою задачею для сучасних організацій, що прагнуть зберегти конкурентоспроможність на ринку. Метою курсової роботи є комплексне дослідження принципів інтеграції тестування в процеси DevOps, що включає аналіз методів, інструментів та підходів для забезпечення якості програмного забезпечення на всіх етапах життєвого циклу розробки. Зокрема, робота буде зосереджена на вивченні можливостей автоматизації тестування, а також на розгляді найпоширеніших інструментів та методів інтеграції тестів у процеси безперервної інтеграції та доставки (CI/CD). 1. АНАЛІЗ ОБРАНОЇ ТЕМИ DevOps– це підхід до розробки програмного забезпечення, який об'єднує розробку (Development) та операції (Operations) для створення більш ефективних та автоматизованих процесів. Використання DevOps дозволяє організаціям розробляти та впроваджувати нові функції та оновлення швидше, зменшуючи ризики та збільшуючи якість продукту. Важливою частиною DevOps є автоматизація процесів розробки та впровадження, що допомагає зберігати високу швидкість доставки продукту на ринок [1]. Цей підхід допомагає підприємствам бути більш гнучкими, швидше реагувати на зміни на ринку та задовольняти потреби клієнтів шляхом постійного вдосконалення продуктів і послуг. Далі розглянемо різні етапи життєвого циклу DevOps , показані на рис. 1. Рис. 1. Етапи життєвого циклу DevOps Планування. Цей етап допомагає визначити цінність продукції для бізнесу та вимог. Код. На цьому етапі виконується проектування програмного забезпечення та створення програмного коду. Розробка. На цьому етапі керують збірками та версіями програмного забезпечення, а також використовують автоматизовані інструменти для компіляції пакетного коду для майбутнього випуску. Також часто використовують репозиторії вихідного коду або репозиторії пакетів, які також «упаковують» інфраструктуру, необхідну для випуску продукту. Тестування. Цей етап включає в себе безперервне тестування (ручне або автоматичне), націлене на оптимальну якість коду. Впровадження. На цьому етапі створюється єдина платформа для взаємодії та співпраці, що включає всі етапи життєвого циклу розробки, починаючи від написання коду до деплойменту та моніторингу у реальному часі. Експлуатація. На цьому етапі здійснюється управління програмним забезпеченням під час експлуатації. Моніторинг. На цьому етапі виконується визначення та збір інформації про проблеми, що здійснюються у конкретній версії програмного забезпечення у процесі експлуатації. Основний принцип роботи DevOps - це підтримка безперервного процесу розробки. Використовуючи різні інструменти для автоматизації всіх процесів, пов'язаних із розробкою, DevOps інженери забезпечують можливість плавної та синхронної роботи всіх фахівців на проекті. Справа в тому, що написання коду, створення тестів, перевірка якості та експлуатація продукту – це зрозумілі, але не надто пов'язані між собою процеси. Адже для розробки потрібне одне середовище, для тестування – інше, а для експлуатації – зовсім інше. І якщо кожен із співробітників просто передаватиме результат своєї роботи у зручному для себе форматі наступному, то розробка не піде далі першого етапу. Порівняти таку ситуацію можна з поїздом: кожен етап розробки – це один вагон, але щоб локомотив зміг переміщати всі вагончики, а не лише їхати сам, потрібна зчіпка, яка дозволить з'єднати локомотив та всі вагони між собою. Цією зчіпкою в розробці виступають фахівці DevOps. Головна мета цієї методології - скоротити час створення програмного продукту. І сюди відносяться всі аспекти часу: на розробку, на тестування, на запуск програми, на будь-які доопрацювання, відновлення системи при будь-яких збоях і так далі. Адже саме DevOps дозволяє зробити процес розробки злагодженим, гладким та безперервним. Також до обов'язків DevOps входить: забезпечити узгоджену роботу двох етапів життєвого циклу продукту: розроблення та експлуатації; автоматизувати розгортання програмного забезпечення або програми, його розробку та тестування; брати участь у безперервному тестуванні програмного продукту; керувати будь-якими змінами в програмі, що розробляється, або програмі; відстежувати продуктивність та інші важливі показники, а також стежити за інфраструктурою. Тестування є невід’ємною частиною повного життєвого циклу DevOps, виступаючи мостом між етапами розробки та випуску. Цей етап життєво важливий для швидкого та надійного розгортання, що дозволяє командам швидко та на ранній стадії виявляти помилки. За допомогою стратегії тестування ваша організація підвищить свою ефективність у розробці нового програмного забезпечення. Це також допомагає зосередити всі команди на одній меті, а не зосереджувати увагу на одній дисципліні чи завданні. Так виглядає тестування в середовищі DevOps [5]: Тестування – це безперервний і автоматизований процес, який забезпечує безперервну та швидшу доставку програмного забезпечення. Тестування охоплює кожен етап життєвого циклу розробки програмного забезпечення (SDLC) . Кожен крок SDLC включає різні форми тестування. Це мінімізує повернення назад у випадку, якщо ви виявили помилку. Тестування більше не є обов’язком однієї конкретної команди. Спільні обов’язки з тестування дозволяють кожному зрозуміти вплив кожної зміни. Що ще важливіше, DevOps допомагає розвивати культуру якості в усій організації. Коли команда не має добре розробленої стратегії тестування як частини процесу розробки, якість залишається позаду, як окреме завдання в контрольному списку. Таке мислення часто призводить до уповільнення часу розробки та продуктів із помилками, а проблеми з часом ускладнюються, оскільки проблеми стають складнішими для швидкого вирішення. Крім того, у той момент, коли ваш розклад ризикує збити, тестування та якість є одними з перших речей, які виходять з вікна. Роль тестування в DevOps охоплює різні ключові стратегії, які бездоганно інтегрують якість у робочий процес команди. Ось кілька практик, які використовує DevOps, щоб покращити життєвий цикл розробки програмного забезпечення. Автоматизація тестування У середовищі DevOps розробники часто об’єднують код у центральне сховище. Це означає, що код постійно оновлюється завдяки безперервній інтеграції (CI). Щоб швидше й раніше отримувати відгуки про безперервно інтегрований код – слід автоматизовувати. Команди часто можуть створювати та запускати більше тестових випадків, щоб запобігти помилкам, розумно використовуючи автоматизацію тестування. Shift left Важливо, що культура DevOps використовує підхід до тестування Shift Left, який контрастує з традиційними середовищами, де тестування відбувається в кінці розробки. Тестування Shift Left штовхає тестування вліво, на попередні кроки процесу розробки ПЗ. Тестування також починається, коли розробка запущена. Такий підхід допомагає виявити помилки якомога раніше. Ці невід'ємні особливості середовища тестування DevOps сприяють значному покращенню якості ПЗ. Однак, успіх чи невдача стратегії тестування залежить від того, наскільки добре організації застосовують найкращі методи тестування DevOps. Continuous testing DevOps зі своєю гнучкою методологією допомагає оптимізувати розробку, але справжньою зміною є безперервне тестування (CT). CT in DevOps — це практика автоматичного запуску тестів протягом життєвого циклу розробки програмного забезпечення (SDLC), щоб забезпечити якість і функціональність на кожному етапі. Такий підхід означає, що тестування – це не лише кінцева контрольна точка, а безперервний процес, який забезпечує швидкий зворотний зв’язок і допомагає своєчасно виявляти проблеми. 2. АНАЛІЗ ПРЕДМЕТНОЇ ГАЛУЗІ Для тестування в рамках DevOps можна зосередитися на конкретній області, наприклад, тестуванні веб-додатків. Тестування веб-додатків — це процес перевірки їх функціональності, продуктивності, сумісності, безпеки та зручності використання з метою забезпечення високої якості продукту. У межах DevOps тестування стає невід'ємною частиною життєвого циклу розробки та доставки програмного забезпечення. Ключовими об’єктами для тестування веб-додатків є компоненти, які складають його структуру і забезпечують взаємодію користувача з системою. Вони включають: Фронтенд веб-додатка — це частина, з якою взаємодіє кінцевий користувач. Тестування фронтенду охоплює перевірку інтерфейсу користувача, функціональності форм, інтерактивних елементів (кнопки, меню, випадаючі списки) та візуальної сумісності на різних пристроях і браузерах. Це дозволяє впевнитися, що користувач може безперешкодно взаємодіяти з додатком, не стикаючись із помилками інтерфейсу чи проблемами сумісності. Оцінка повинна включати перевірку якості відображення елементів, правильність роботи форм, реакцію на введення даних, а також тестування адаптивності інтерфейсу для різних розмірів екрану. Бекенд — це серверна частина веб-додатка, яка відповідає за обробку запитів, виконання логіки програми та взаємодію з базою даних. Тестування бекенду включає перевірку правильності роботи серверної логіки, управління сесіями, а також здатність бекенду обробляти різноманітні типи запитів і підтримувати надійність сервісу. Зокрема, тестуються API (інтерфейси для взаємодії з іншими компонентами або системами), перевіряються алгоритми обробки даних і механізми обробки помилок. Це дозволяє забезпечити стабільність роботи веб-додатка і правильну реалізацію бізнес-логіки. База даних є важливою складовою веб-додатка, оскільки зберігає всі необхідні дані, з якими працює система. Тестування бази даних охоплює перевірку коректності запитів до бази, підтримки цілісності даних, здатність виконувати транзакції та забезпечення відновлення після помилок або збоїв. Тести мають на меті перевірити, чи правильно зберігаються, оновлюються і вилучаються дані, а також чи забезпечується належний рівень безпеки, особливо при роботі з конфіденційними даними. API забезпечує взаємодію між різними компонентами системи або між веб-додатком і зовнішніми сервісами. Тестування API включає перевірку правильності роботи інтерфейсів, забезпечення коректної обробки запитів і відповідів, а також обробку помилок. Важливо протестувати всі доступні методи API, їхню ефективність, здатність обробляти великий обсяг запитів і правильність передачі даних між сервісами. Це дає змогу переконатися, що різні компоненти веб-додатка (фронтенд, бекенд, бази даних) можуть безперешкодно взаємодіяти між собою через стандартизовані інтерфейси. У процесі тестування веб-додатків використовуються різноманітні інструменти, що забезпечують автоматизацію, навантажувальне тестування, кросбраузерну сумісність та інтеграцію з CI/CD процесами. Ось деякі з найпопулярніших інструментів: Фреймворки для автоматизації тестування Selenium: популярний інструмент для автоматизації тестів у різних браузерах, підтримує багато мов програмування (Java, Python, C#) і дозволяє перевіряти взаємодію користувача з веб-сторінками. Cypress: фреймворк на JavaScript для швидкого автоматизованого тестування фронтенду, з інтегрованим середовищем для виконання тестів і підтримкою роботи з DOM. Інструменти навантажувального тестування JMeter: інструмент для створення навантажувальних тестів, який дозволяє симулювати великий обсяг запитів і оцінювати продуктивність веб-додатка. Locust: інструмент на Python для навантажувального тестування, який дозволяє створювати сценарії навантаження у вигляді коду. Платформи для кросбраузерного тестування BrowserStack: хмарна платформа для тестування веб-додатків на реальних пристроях і браузерах, що підтримує автоматизоване тестування через Selenium. Sauce Labs: платформа для тестування веб і мобільних додатків на різних браузерах та пристроях з підтримкою автоматизованих тестів. Засоби інтеграції в CI/CD Jenkins: популярна платформа для автоматизації процесів CI/CD, яка дозволяє інтегрувати тести в пайплайни для безперервної доставки. GitLab CI: інструмент для безперервної інтеграції та доставки, який автоматизує тестування і деплоймент проектів з репозиторіїв GitLab. 3. АНАЛІЗ СТРАТЕГІЇ ТЕСТУВАННЯ Перш ніж занурюватися в конкретні техніки, важливо мати чітку дорожню карту. Ця стратегія повинна визначати [2]: Типи тестування: нижче наведено детальний опис поширених типів тестувань, які слід враховувати. Модульне тестування — це метод ізоляції та тестування окремих одиниць коду для визначення ефективності кожного компонента. Замість тестування програмного забезпечення цей метод розбиває його на менші частини, щоб переконатися в коректності окремих компонентів. Інтеграційне тестування — це тестування частини системи, що складається з двох і більш за модулів. Основне завдання інтеграційного тестування — пошук дефектів, пов’язаних з помилками в реалізації і інтерпретації інтерфейсної взаємодії між модулями. Тестування продуктивності — це процес, який виконується для визначення того, чи буде певний продукт добре виконувати очікувані процеси за різних робочих навантажень. Це може приймати форму тестування продуктивності веб-сайту або тестування продуктивності під час тестування програмного забезпечення, залежно від задіяного продукту. Тестування безпеки — це тип нефункціонального тестування, спрямований на оцінку здатності системи захищати дані та забезпечувати їх конфіденційність, доступність і цілісність. Основна мета — виявити вразливості системи до потенційних атак та усунути їх ще до запуску продукту. Тестування прийнятності користувачем (User Acceptance Testing, UAT) — це фінальний етап процесу тестування програмного забезпечення, на якому кінцеві користувачі перевіряють, чи відповідає продукт їхнім потребам, очікуванням і бізнес-вимогам. Головна мета UAT — підтвердити, що система готова до реального використання. Обсяг тестування: які функціональні можливості та функції буде перевірено? Обсяг тестування охоплює перевірку функціональних можливостей, що забезпечують коректну роботу системи. Це включає ретельну перевірку основних бізнес-процесів, які користувачі здійснюють під час взаємодії з продуктом. Тестуються процеси реєстрації та авторизації користувачів, перевіряючи правильність створення облікових записів, входу в систему, обробки неправильних даних і відновлення пароля. Також тестується робота основних функцій, таких як покупка товарів, бронювання послуг, заповнення форм і взаємодія між користувачами. Перевіряється інтерфейс, включаючи кнопки, меню та інші елементи, щоб забезпечити їх інтуїтивну зрозумілість і коректність роботи. Окрім того, тестуються процеси обробки та збереження даних, включаючи складні запити та великі обсяги інформації. Перевіряється інтеграція компонентів системи для забезпечення правильної взаємодії між ними. Тестується безпека системи, зокрема захист від несанкціонованого доступу та можливих уразливостей. Нарешті, перевіряється продуктивність системи, зокрема часи відгуку і здатність працювати під високим навантаженням. Частота тестування: як часто виконуватимуться різні тести? Нижче наведено варіанти частоти проведення тестування в залежності від типу тестів та стадії розробки продукту. Щоденні тести: регулярні перевірки виконуватимуться для кожного нового коміту чи змін в коді. Це можуть бути тести на базову функціональність, а також тестування інтеграційних точок системи. Такі тести дозволяють швидко виявляти критичні помилки. Тестування після кожного фіксування коду: автоматичні або напівавтоматичні тести виконуватимуться після кожного фіксування змін у коді, особливо у великих чи важливих модулях. Це включає в себе перевірку функціональних можливостей, які могли бути змінені в результаті змін в коді. Тестування після релізу: після кожного великого релізу продукту необхідно виконувати комплексні тести, які охоплюють усю систему. Це можуть бути кінцеві тестування перед випуском продукту в експлуатацію, перевірка всіх сценаріїв, а також ретестування всіх бізнес-процесів, щоб підтвердити, що вони працюють як слід. Тестування при наявності нових вимог чи змін у бізнес-логіці: після будь-яких змін у вимогах або бізнес-логіці проводиться повторне тестування для перевірки нових функцій і модифікацій системи. Рівень автоматизації: які тести можна автоматизувати, а які потребують ручного втручання? Рівень автоматизації тестів залежить від характеру перевірок та складності функціоналу, який перевіряється. Автоматизація дозволяє значно прискорити процес тестування і знизити кількість помилок, але є функції, які потребують ручного втручання. Автоматизовані тести: Регресійне тестування: автоматичне виконання всіх тестів, щоб перевірити, чи не були порушені вже реалізовані функції після внесення змін у систему. Тести на продуктивність: автоматизація тестів на навантаження і стрес-тести дозволяє швидко вимірювати, як система поводиться при високому навантаженні. API тести: автоматизація тестування API, що дозволяє швидко перевіряти, чи працюють всі кінцеві точки сервісу без помилок. Ручне тестування: Інтерфейс користувача: хоча деякі елементи інтерфейсу можна автоматизувати, детальне тестування взаємодії з користувачем, як правило, потребує ручного втручання, оскільки воно передбачає перевірку візуальних аспектів та досвіду користувача. Тестування на безпеку: деякі аспекти безпеки потребують ручних тестів, таких як перевірка на вразливості, проведення пентестів чи тестів на атаки. Сценарії з глибокою перевіркою: складні бізнес-сценарії, які залежать від конкретних умов чи виведення результатів, можуть вимагати ручного тестування для перевірки точності логіки. 4. РОЗРОБЛЕННЯ ПЛАНУ ТЕСТУВАННЯ І ВИБІР МЕТОДІВ З метою забезпечення комплексної перевірки функціональності веб-додатка та виявлення потенційних проблем на стику різних компонентів, у рамках курсової роботи було обрано інтеграційне тестування. Цей тип тестування дозволяє оцінити, наскільки ефективно взаємодіють між собою такі модулі, як модуль авторизації, модуль корзини, модуль оплати тощо. Крім того, інтеграційне тестування дає змогу переконатися, що система в цілому відповідає поставленим вимогам щодо продуктивності, безпеки та зручності використання. Коли система буде готова і модулі успішно протестовані окремо, їх можна інтегрувати та тестувати. Повний процес інтеграційного тестування складається з кількох етапів і має низку фреймворків і безперервну інтеграцію. • Підготовка плану інтеграційного тестування Першим етапом виконання інтеграційних тестів завжди є створення ретельного плану інтеграційних тестів. План інтеграційного тестування містить тестові приклади, сценарії та деталі середовища, а також описує, як буде проводитися інтеграційне тестування. План тестування є чітким, детальним і простим у дотриманні, ефективно описуючи всі аспекти інтеграційного тесту для всіх залучених сторін і зацікавлених осіб. Призначення та сфера застосування У плані тестування визначено мету та обсяг вашого інтеграційного тесту, вказуючи, які програмні компоненти ви тестуєте та для чого їх тестуєте. Більшість проектів інтеграційного тестування матимуть відносно короткі розділи з описом мети та обсягу, але вони все ще корисні як довідкові інструменти для співробітників, які беруть участь у процесі тестування. План тестування інтеграції У розділі плану тестування вашого документа вказано, що ви тестуєте та як. Ця частина вашого плану тестування має детально описувати модулі, які ви тестуєте, і які саме функції ви плануєте протестувати. У ньому також описано порядок інтеграційного тестування, якщо ви використовуєте підхід поетапного тестування. План тестування може також окреслювати результати тестування, які необхідні до, під час і після інтеграційного тестування. У цьому розділі також описано завдання, необхідні для тестування, і будь-які конкретні екологічні потреби, які необхідно враховувати під час процесу тестування. Тестові характеристики інтеграції У специфікаціях тестових прикладів викладаються всі окремі тести між модулями та окреслюються вхідні специфікації, вихідні специфікації та потреби середовища для кожного тесту. Цей розділ плану інтеграційного тестування має бути чітким, лаконічним і недвозначним, щоб співробітники могли легко виконувати тестові випадки, не потребуючи прийняття рішень. Процедури тестування інтеграції У розділі тестових процедур плану тестування описано всі процедури, які ви використовуватимете під час інтеграційного тесту, а також мета кожної процедури та кроки, які вона включає. Поряд зі специфікаціями тестових випадків і планом тестування, цей розділ повинен допомогти зацікавленим сторонам і тестувальникам зрозуміти, як саме потрібно проводити кожен інтеграційний тест. Результати інтеграційного тесту Залиште місце в кінці плану тестування для запису результатів тестування після завершення інтеграційного тестування. Для кожного тесту, описаного раніше, вкажіть дату проведення тесту та деталі результатів тесту відповідно до цілей кожного описаного тесту. Визначення типу підходу до інтеграційного тестування Існує чотири різні підходи до поетапного інтеграційного тестування. Кожен із цих підходів має свої переваги та недоліки, і для команд розробників важливо визначити підхід, який найкраще працюватиме для їхнього проекту, перш ніж розпочати тестування. Найпопулярнішими підходами до інтеграційного тестування є тестування зверху вниз, тестування знизу вгору, сендвіч-тестування та тестування великого вибуху. Розглянемо кожен із цих типів інтеграційного тестування окремо. Низхідна інтеграція — це підхід до тестування, при якому перевірка інтеграції виконується з вершини системного стека через кожен рівень архітектури програмного забезпечення. Потік керування тестом рухається зверху вниз, починаючи з інтерфейсу користувача (UI) і закінчуючи базою даних програмного забезпечення. Цей метод інтеграційного тестування підходить як для веб-додатків, так і для багаторівневої архітектури програмного забезпечення. Перевага використання підходу тестування інтеграції зверху вниз полягає в тому, що його відносно просто реалізувати та він має мінімальну залежність від інших частин вашої програми. Низхідний підхід використовує заглушки, які, як правило, легше реалізувати, ніж драйвери. Простий і поступовий характер підходу «зверху вниз» дозволяє легко швидко ідентифікувати помилки інтерфейсу, хоча деякі критики цього модуля кажуть, що це призводить до неадекватного тестування модулів нижчого рівня. Рис.2. Схема інтеграційного тестування «зверху вниз» Інтеграційне тестування «знизу вгору» — це процес, у якому окремі компоненти тестуються та інтегруються, починаючи з найнижчого модуля в архітектурі й далі. Інтеграційне тестування «знизу вгору» дозволяє командам починати тестування, коли високорівневі модулі ще знаходяться в розробці. Цей підхід найчастіше використовується, коли команди намагаються інтегрувати готові компоненти з існуючими продуктами. Інтеграційне тестування «знизу вгору» має високі показники успішності та є відносно швидкою та ефективною формою інтеграційного тестування. Оскільки під час інтеграційного тестування знизу догори спочатку тестуються модулі нижчого рівня, команди тестувальників можуть переконатися, що найважливіші та базові моделі програми працюють безперебійно, перш ніж переходити до тестування модулів вищого рівня. Одним із найбільших недоліків тестування знизу вгору є те, що неможливо спостерігати за функціями системного рівня, доки не буде встановлено останній тестовий драйвер. Рис. 3. Схема інтеграційного тестування «знизу вгору» Сендвіч-інтеграційне тестування — підхід до сендвіч-тестування відомий як «гібридне тестування», оскільки він поєднує підходи до тестування «зверху вниз» і «знизу вгору». У тестуванні сендвіч-інтеграції система розділена на три рівні: середній, верхній і нижній. Тестери починають тестування модулів із середнього рівня та просуваються вгору та вниз, гарантуючи, що модулі верхнього та нижнього рівнів мають пріоритет. Тестування сендвіч-інтеграції використовує як заглушки, так і драйвери для тестування модулів на всіх рівнях. Тестування сендвіч-інтеграції особливо корисне у випадку великомасштабних проектів, які можна розділити на кілька підпроектів, або під час тестування програмних модулів, які самі по собі є надзвичайно великими. Однак сендвіч-тестування може зайняти дуже багато часу. Ця форма тестування також не надає можливості тестувати модулі, які утворюють підрозділи, перед остаточною інтеграцією, що може спричинити серйозні проблеми, якщо ці модулі не помічені. Рис. 4. Схема Сендвіч-інтеграційного тестування Інтеграційне тестування великого вибуху — це тип інтеграційного тестування, який групи програмного забезпечення можуть виконувати лише після того, як усі окремі модулі розроблені. Під час тестування великого вибуху всі модулі об’єднуються в єдину програмну систему та тестуються одночасно, на відміну від одноразової структури поетапного інтеграційного тестування. Інтеграційне тестування великого вибуху підходить для невеликих систем, де, якщо виникає помилка, менше місця для плутанини щодо місця та причини помилки. Основним недоліком інтеграційного тестування великого вибуху є те, що під час тестування частина ресурсів команди буде непродуктивною, оскільки необхідно дочекатися, поки всі модулі будуть розроблені, перш ніж розпочати тестування. Це означає, що тестування великого вибуху не завжди є найефективнішим і швидким методом тестування, хоча воно може заощадити час у довгостроковій перспективі для деяких команд. • Розробка тестових випадків, тестових сценаріїв і тестових сценаріїв Наступним кроком після створення плану інтеграційного тестування є розробка тестових випадків та сценаріїв. Тестові випадки слугують основою для перевірки конкретних функціональних можливостей системи, детально описуючи умови виконання, кроки тестування та очікувані результати. На їх основі створюються тестові сценарії, які об’єднують кілька тестових випадків для перевірки цілісних процесів або модулів системи. • Розгортання вибраних модулі та запуск тестів Цей етап передбачає ретельне налаштування тестового середовища, яке включає підготовку серверів, конфігурацію мережевих підключень, інтеграцію з базами даних і зовнішніми сервісами. Після успішного розгортання модулів запускаються тестові сценарії, які імітують реальні користувацькі дії та перевіряють, як компоненти взаємодіють між собою. Тестування допомагає виявити будь-які проблеми у передачі даних, обробці запитів чи синхронізації процесів, забезпечуючи стабільність і функціональність інтегрованої системи. • Відстеження виявлених помилок та запис результатів тестування У процесі виконання тестових сценаріїв всі виявлені збої, невідповідності або аномалії документуються із зазначенням деталей: умов, за яких сталася помилка, її впливу на роботу системи та можливих причин. Результати тестування ретельно записуються, включаючи успішно виконані тести, помилки та коментарі щодо їхнього впливу на інтеграцію модулів. Ця інформація стає основою для подальшого вдосконалення системи, дозволяючи розробникам і тестувальникам ефективно співпрацювати над усуненням виявлених проблем і перевіркою внесених змін. • Виправлення помилок і впровадження змін Після виявлення помилок на етапі тестування необхідно оперативно виправити їх, оновлюючи код чи конфігурації системи. Внесення змін може включати не тільки виправлення виявлених дефектів, а й оптимізацію функціональності, покращення ефективності або внесення нових можливостей. Після коригування програмного коду або налаштувань, повторно запускаються тести, щоб перевірити правильність виправлень і забезпечити безперебійне функціонування всіх компонентів системи в рамках змін. • Повторення наведених вище кроків, доки тести не будуть завершені Останнім етапом є постійна перевірка налаштувань тестового середовища, уточнення параметрів інтеграції між модулями та моніторинг ефективності підключених ресурсів. Важливо впевнитись, що всі елементи тесту, від підключення до баз даних до взаємодії із зовнішніми сервісами, працюють синхронно і коректно. Як тільки тестові сценарії виконуються, слід аналізувати результати, виправляти можливі помилки та повторювати процес, поки всі компоненти не будуть проходити перевірку без збоїв. 5. РОЗРОБЛЕННЯ ТЕСТОВОГО ЗАБЕЗПЕЧЕННЯ Мета інтеграційного тестування полягає в тому, щоб переконатися, що немає проблем зі зв’язком або передачею даних між різними модулями, що працюють в одній програмі [4]. Рис. 5. Схема процесу інтеграційного тестування Як вже згадувалось вище - тестові випадки інтеграції в основному зосереджені на передачі даних між модулями. Нижче наведено два приклади інтеграційних тестів і те, як команда тестувальників може підійти до тестування. Приклад перший: програмне забезпечення для онлайн-покупок ІТ-компанію просять створити програму онлайн-покупок для веб-сайту, який продає спортивні товари. Модулі, закодовані для програми, включають модулі реєстрації користувачів, виставлення рахунків і платежів. Після окремої розробки кожного модуля виконується модульне тестування, щоб переконатися, що кожен модуль працює належним чином. Після модульного тестування відбувається інтеграційне тестування. Приклад тестового випадку: Таблиця 1 Приклад другий: Платформа онлайн-спілкування ІТ-компанію просять створити внутрішню платформу соціальних мереж, яку можна використовувати для спілкування між колегами та співробітниками в організації. Модулі, закодовані для програми, включають модулі реєстрації користувачів, поштової скриньки та форумів. Нижче наведено приклади тестів, які можна включити до плану тестування інтеграції для цього проекту: Таблиця 2 Якщо бажаного результату не досягнуто, команда тестування повідомляє про дефект, який потім можна виправити в процесі розробки до того, як звіт про тестування буде завершено. 6. ТЕСТУВАННЯ ПРОГРАМИ Наведені вище приклади є лише ілюстрацією підходів до інтеграційного тестування. У цьому розділі розглядається процес інтеграційного тестування веб-застосунку з використанням інструменту Selenium: принципи та завдання. Як вже відомо, інтеграційне тестування – вид тестування, при якому на відповідність вимог перевіряється інтеграція модулів, їх взаємодія між собою, а також інтеграція підсистем в одну загальну систему. Для інтеграційного тестування використовуються компоненти, вже перевірені за допомогою модульного тестування, які групуються у множини. Дані множини перевіряються відповідно до плану тестування, складеним для них, а об’єднуються вони через свої інтерфейси. За допомогою доступних автоматизованих інструментів інтеграційне тестування може значно вплинути на різні модулі програмного забезпечення. Це спрощує процес і робить його більш гнучким. Ось один з найкращих інструментів інтеграційного тестування: Selenium — це провідна широкомасштабна платформа автоматизації тестування з відкритим вихідним кодом для автоматизації наборів інтеграційних тестів для ваших веб-додатків. Нижче наведено деякі основні функції та особливості, які роблять Selenium найпопулярнішим інструментом [3]: Він підтримує кілька мов – C#, Ruby, Java, JavaScript, PHP, Java, Python, Ruby та Perl. Працюйте в різних системних середовищах – Mac, Windows, Linux. Працює з усіма популярними браузерами, включаючи Firefox, Safari, Chrome і Headless. Стандартизація W3C робить тестування та створення сценаріїв бездоганними. Це дозволяє запускати паралельні тести з різними даними гібридних тестів. Розглянемо наступний сценарій тестування інтеграції: У банківській програмі клієнт використовує модуль для перевірки свого поточного балансу, який становить 1000. Після цього він переходить до модуля переказу, де ініціює транзакцію, переказуючи 500 на рахунок третьої сторони. Після успішного виконання переказу клієнт повертається до модуля поточного балансу, де перевіряє оновлений баланс, який тепер становить 500. Рис. 6. Схема інтеграційного тестування Цей процес демонструє інтеграцію між різними модулями програми, зокрема перевірку балансу та перекази, і є прикладом тестування їх взаємодії та коректності оновлення даних у реальному часі. Основним його завдання є перевірити: Чи правильно працюють програмні модулі при їх інтеграції один з одним, забезпечуючи коректне оновлення балансу після виконання переказу. Чи немає помилок у взаємодії між інтерфейсами програмного забезпечення, зокрема при переході між модулями поточного балансу та переказу. Чи модулі синхронізовані та чи можуть працювати одночасно без помилок, зокрема при паралельному виконанні операцій перевірки балансу та переказу коштів. Чи є програма вразливою до дефектів обробки винятків, зокрема під час невдалого переказу або збоїв у системі під час оновлення балансу. ПРОЦЕС ТЕСТУВАННЯ Тест-план для банківського веб-додатку Мета тестування Перевірити функціональність банківського веб-додатку, зокрема процеси перевірки балансу, виконання переказу та оновлення балансу після завершення транзакції. Тестування проводиться з використанням інструмента Selenium для автоматизації перевірок. Обсяг тестування Тестування включає наступні модулі: Перевірка поточного балансу. Переказ коштів на інший рахунок. Оновлення та перевірка балансу після переказу. Типи тестування Модульне тестування: Перевірка роботи окремих функцій програми, таких як перевірка балансу та переказ коштів, у ізольованому середовищі. Інтеграційне тестування: Перевірка взаємодії між модулями програми, зокрема коректність передачі даних між ними, а також продуктивності додатку при виконанні одночасних запитів. Тестове середовище Операційна система: Windows 10, macOS. Браузери: Google Chrome, Mozilla Firefox, Safari. Мобільні пристрої: iOS, Android. Графік тестування Підготовчий етап: Налаштування середовища та створення автоматизованих тестів за допомогою Selenium — 3 дні. Модульне тестування: Перевірка роботи модулів перевірки балансу, переказу коштів і оновлення балансу — 4 дні. Інтеграційне тестування: Перевірка взаємодії між модулями та стабільності функцій після внесення змін у код — 3 дні. Критерії початку тестування Усі вимоги до функціональності програми затверджені. Тестове середовище налаштоване. Реалізація основних модулів програми завершена. Тестові випадки затверджені. Критерії завершення тестування Виконано 95% тестових сценаріїв. Виправлено всі критичні дефекти. Програма відповідає прийнятому рівню якості та має мінімально допустимий рівень дефектів. Визначення підходу до інтеграційного тестування Для даного сценарію доцільно використовувати підхід "зверху вниз", оскільки він дозволяє спочатку перевірити взаємодію основних функціональних модулів (перевірка балансу, переказ коштів, оновлення балансу) та поступово тестувати інші залежні компоненти. Розробка тестів і сценаріїв Таблиця 3 Розгортання компонентів для тестування За допомогою Selenium налаштовуються тести для автоматизації взаємодії з інтерфейсом користувача: Модуль перевірки балансу: Введення облікових даних, навігація до сторінки балансу, перевірка початкового значення (1000). Модуль переказу: Введення даних переказу (сума 500, дані отримувача), підтвердження транзакції, очікування успішного повідомлення. Оновлення балансу: Перехід до модуля балансу після переказу та перевірка нового значення (500). Відстеження та запис результатів Під час тестування за допомогою Selenium результати кожного тесту фіксуються, якщо тест успішний, записується статус "Pass". У разі помилки фіксується її тип (невірне оновлення балансу, помилка в інтерфейсі) та створюється звіт із знімками екрану. Інтеграційне тестування з використанням Selenium відкриває широкі можливості для забезпечення якості програмного забезпечення, зокрема: Selenium дозволяє автоматизувати тестування інтеграції модулів, забезпечуючи перевірку коректного обміну даними між ними (наприклад, передача балансу між модулями у банківському додатку). Автоматичне виконання тестових сценаріїв знижує час і зусилля, потрібні для перевірки основних функцій, таких як переказ коштів, оновлення балансу чи авторизація. Можливість моделювання дій реального користувача, таких як навігація між сторінками, введення даних і натискання кнопок, дозволяє перевірити поведінку системи в умовах, наближених до реальних. Вчасна перевірка інтеграції модулів допомагає швидко знаходити та усувати проблеми в їхній взаємодії, що знижує ризики у подальших етапах розробки. Ці можливості роблять Selenium потужним інструментом для інтеграційного тестування складних систем, забезпечуючи їхню стабільність, функціональність і відповідність вимогам користувачів. Як і будь-яка інша техніка тестування, інтеграційне тестування також має деякі проблеми, з якими стикаються тестувальники та розробники. Ці виклики включають: Управління інтеграційним тестуванням іноді є складним через різні фактори, такі як бази даних, платформи, середовище тощо. Впровадження нових функцій або модулів у застарілі системи вимагає значних зусиль для адаптації та додаткового тестування. Забезпечення взаємодії між системами, створеними різними розробниками чи компаніями, часто стає серйозною проблемою через відмінності у стандартах, технологіях та підходах до розробки. Інтегровані системи зазвичай мають велику кількість можливих шляхів виконання та варіантів взаємодії, що ускладнює покриття всіх сценаріїв тестування та підвищує ризик пропуску дефектів. Використання Selenium для автоматизації інтеграційного тестування потребує точного налаштування для роботи з динамічними елементами, затримками в оновленні даних і складною логікою взаємодії між модулями. 7. АНАЛІЗ РЕЗУЛЬТАТІВ ТЕСТУВАННЯ Проведене тестування банківського веб-додатку за допомогою Selenium дозволило ефективно перевірити взаємодію основних модулів програми. Метою тестування було перевірити правильність виконання процесів перевірки балансу, переказу коштів і оновлення балансу після транзакцій. Для цього були розроблені автоматизовані тести, які перевіряли коректність кожної операції, забезпечуючи ефективне й безперервне тестування. Процес тестування був реалізований за методом "зверху вниз", що дозволило почати з перевірки основних функціональних модулів, а потім поступово додавати інші компоненти. Для кожного тестового випадку були створені сценарії, що автоматично виконували всі необхідні дії в інтерфейсі веб-додатку — від входу в систему до перевірки оновленого балансу після виконання переказу коштів. Результати тестування показали, що система коректно оновлює баланс клієнта після переказу, і всі тести успішно пройшли без помилок, що свідчить про правильну інтеграцію та функціонування програми. У разі виникнення помилок система автоматично генерувала звіти з детальними описами дефектів і знімками екрану, що значно спростило процес виправлення помилок. Наприклад, виявлена проблема з оновленням балансу при високому навантаженні стала підставою для оптимізації бази даних, що дозволило зменшити час обробки запитів і покращити ефективність роботи системи. ВИСНОВОК У ході виконання роботи було досліджено методології DevOps та їхню інтеграцію з процесами тестування, що дозволило глибше зрозуміти роль тестування у забезпеченні якості програмного забезпечення. Було детально розглянуто етапи розробки тестового плану, створення тестових сценаріїв та впровадження автоматизації тестування за допомогою інструменту Selenium. Основна увага була приділена інтеграційному тестуванню, яке забезпечує коректну взаємодію між різними модулями системи, такими як перевірка балансу, переказ коштів і оновлення даних у банківському додатку. Використання підходу "зверху вниз" дозволило поступово перевіряти ключові функціональні модулі та зменшити кількість потенційних помилок на ранніх етапах тестування. Отримані результати показали, що систематичний підхід до тестування у середовищі DevOps підвищує ефективність розробки, дозволяє швидше виявляти дефекти та забезпечує високу якість програмного продукту. Докладний аналіз тестових результатів підтвердив надійність обраної стратегії та інструментів, що були використані для тестування. СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ M. Coupland, DevOps Adoption Strategies: Principles, Processes, Tools, and Trends, 1st ed., vol. 1. Birmingham: Packt Publishing Ltd., 2021. Integrating Testing into the DevOps. Електронний ресурс, - режим доступу: https://medium.com/@ciente/integrating-testing-into-the-devops-pipeline-best-practices-5c8d38f6641e Integration Testing Tutorial: A Comprehensive Guide With Examples And Best Practices. Електронний ресурс, - режим доступу: https://www.lambdatest.com/learning-hub/integration-testing#g Що таке інтеграційне тестування? Глибоке занурення в типи, процеси та впровадження. Електронний ресурс, - режим доступу: https://www.zaptest.com/uk/%D1%89%D0%BE%D1%82%D0%B0%D0%BA%D0%B5%D1%96%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D1%96%D0%B9%D0%BD%D0%B5%D1%82%D0%B5%D1%81%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F%D0%B3%D0%BB%D0%B8%D0%B1 Rif'An F. Febrianto;Dinar M. K. Nugraheni;Edy Suharto;Aris Puji Widodo;Yunila Dwi Putri Ariyanti. Deployment Strategy with Integration Testing Implementation Using DevOps Method in Development and Production Environment, 2024 7th International Conference on Informatics and Computational Sciences (ICICoS)
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!