Інтелектуальна система для автоматичного запуску тестів
Використання системи управління тестуванням, що дозволяє визначати пріоритети тест-кейсів залежно від внесених до коду продукту виправлення, заснованої на нейромережевій моделі. Оцінювання інтелектуальних можливостей автоматичного запуску тестів.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | украинский |
Дата добавления | 14.12.2024 |
Размер файла | 3,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Західноукраїнський національний університет
Інтелектуальна система для автоматичного запуску тестів
Михальчук Назар Олександрович аспірант кафедри інформаційно- обчислювальних систем і управління, Федорович Віктор Іванович аспірант кафедри інформаційно-обчислювальних систем і управління
м. Тернопіль
Анотація
Життєвий цикл розробки будь-якого програмного забезпечення в обов'язковому порядку супроводжується активностями з верифікації та тестування продукту. Серед усіх процесів, що лежать в основі тестування ПЗ, найбільш ресурсозатратним, але водночас обов'язковим для виконання є регресійне тестування. Запуск тестів буде відбуватися автоматично, коли на сервері, де вони виконуються, є достатньо ресурсів. Система аналізуватиме обсяг вільної оперативної пам'яті, використання процесора, доступне місце на диску, навантаження на базу даних тощо, і на основі цього визначатиме найоптимальніший час для запуску тестів.
Однак в умовах обмеженості ресурсів при регресійному тестуванні з повного набору перевірок, як правило, запускаються лише вибіркові тестові кейси. Цей факт зумовлює завдання оптимального вибору максимально пріоритетних запусків. Рішенням поставленої задачі може виступати використання системи управління тестуванням, що дозволяє визначати пріоритети тест-кейсів залежно від внесених до коду продукту виправлення, заснованої на нейромережевій моделі. У статті проведено огляд таких систем та наведено їх сильні і слабкі місця, що дозволяє оцінити їх інтелектуальні можливості автоматичного запуску тестів.
З появою сучасних інформаційних технологій, тестові системи трансформуються, що дозволяє опрацьовувати великі дані за допомогою штучного інтелекту, а також оптимізувати хмарні обчислення. У цій статті розглядаються основні компоненти і методи, необхідні для створення програми для автоматичного запуску тестів, у тому числі і обробки даних, моделюванні та прийнятті рішення. Функціонування такої системи можливе завдяки збору та аналізу даних про зміни в коді із системи контролю версій та подальшого використання цієї інформації як вхідних даних для штучної нейронної мережі. А навчання нейронної мережі проходить на основі реальних даних, отриманих на підставі результатів запуску тестів на етапі розробки програмного забезпечення. Навчена нейронна мережа (інтелектуальна система) здатна пріоритизувати тестові випадки та оптимізувати ресурси на проведення тестування.
Ключові слова: нейронна мережа, штучний інтелект, інтелектуальна система, тести, код, сервер.
Abstract
Mykhalchuk Nazar Oleksandrovych PhD student, Department of Information and Computer Systems and Management, Western Ukrainian National University, Ternopil,
Fedorovych Viktor Ivanovych PhD student, Department of Information and Computer Systems and Management, Western Ukrainian National University, Ternopil
INTELLIGENT SYSTEM FOR AUTOMATIC TEST EXECUTION
The life cycle of any software development project is invariably accompanied by activities related to the verification and testing of the product. Among all the processes underlying software testing, the most resource-intensive, yet mandatory, is regression testing. Test execution will occur automatically when the server hosting them has sufficient resources. The system will analyze available RAM, CPU usage, disk space, database load, etc., to determine the optimal time to run the tests. However, due to resource constraints during regression testing, only selective test cases from the full suite are usually executed. This necessitates the task of optimally selecting the highest priority tests. A potential solution to this problem is using a test management system that prioritizes test cases based on the code changes using a neural network model. This article reviews such systems and outlines their strengths and weaknesses, allowing for an assessment of their intelligent capabilities for automatic test execution.
With the advent of modern information technologies, test systems are evolving to process large data sets using artificial intelligence and optimize cloud computing. This article examines the main components and methods required to develop a program for automatic test execution, including data processing, modeling, and decision-making. The operation of such a system is made possible by collecting and analyzing code changes from the version control system and using this information as input data for an artificial neural network. The neural network is trained on real data obtained from test execution results during the software development phase. The trained neural network (intelligent system) can prioritize test cases and optimize resources for testing.
Keywords: neural network, artificial intelligence, intelligent system, tests, code, server.
Постановка проблеми
Тестування програмного забезпечення - складний процес, який, як правило, вимагає залучення фахівців, які мають експертні знання. Але у зв'язку з тим, що цей процес вимагає великої кількості ресурсів, у тому числі тимчасових, стає актуальним питання можливості автоматизації процесу тестування. Автоматизовані тести розробляються за допомогою мов програмування та дозволяють за допомогою спеціального драйвера, інструменту взаємодії з браузером, керувати послідовністю дій у системі. При успішному виконанні сценарію тест позначається як пройдений, а у разі виявлення помилки (відхилення від очікуваного) - неуспішним, із зазначенням, яка саме перевірка у тесті визначила, що фактична поведінка програмного продукту відрізняється від закладеного у ході розробки.
Перевірки, котрі здійснюються в рамках розроблених тестів, можуть торкатися функціональних аспектів (такі як перевірка логіки роботи системи в відповідно до бізнес-вимог, перевірка коректності відображення інтерфейсу, тестування безпеки) та нефункціональні характеристики (навантажувальне тестування, тестування на відмову та відновлення). Однак багато команд з розробки програмного забезпечення стикаються з обмеженістю ресурсів для проведення тестових активностей, навіть з урахуванням автоматизації, у зв'язку з чим постає питання про оптимізацію проведення тестування. тестування нейромережевий інтелектуальний
Таким чином, для оптимального використання наявних тимчасових ресурсів на проведення тестування, необхідно насамперед перевірити ту частину функціоналу, до якого були внесені зміни, а також функціонал, який глобально впливає на всю систему (такою як авторизація), решта кейси можуть бути перевірені пізніше. Інструмент, що дозволяє визначити черговість запуску тестів в автоматичному режимі, дозволяє у таких ситуаціях уникати залучення фахівців-експертів зі знаннями про систему, що розробляється. Тому в роботі розглянуто декілька таких систем переважно на основі штучного інтелекту і запропоновано розробити систему, яка буде усувати їхні недоліки. Також даний сервіс буде вміти повертати посилання на сам запуск тестів щоб користувач міг в реальному часі подивитись зам запуск і результати виконання тестів.
Аналіз останніх досліджень і публікацій
Організація та виконання автоматизованого тестування вимагає врахування великої кількості взаємозалежних деталей та вимог. Невиконання навіть однієї вимоги або ж поява хоч би одного збою під час тестування призводить до зупинки та відкидання тестових результатів. Для вирішення проблем щодо побудови самого тестового коду запропоновано такі архітектурні вирішення, як використання бібліотеки тестів, побудова тестів на основі ключових слів, табличний підхід або тести, що керуються даними (data driven) [1], тести, засновані на моделях [2]. Водночас, відомі архітектурні вирішення не дають змоги автоматизувати вирішення завдання налаштування та підготовки середовища тестування і проведення самого тестування, яке є складним та виконується вручну.
Актуальною є проблема пріоритизації тестування програмного забезпечення. На цьому етапі необхідно виділити дві основні стратегії тестування програмних продуктів: тестування чорної та білої скриньки [3] (представлені на рис. 1). Тестування чорної скриньки передбачає перевірку функціональної поведінки системи з точки зору кінцевого користувача, при якому не використовується знання інженера з тестування про внутрішній пристрій тестованого коду проекту. У стратегії білої скриньки під час тестування розглядається внутрішня логіка, структура та реалізація коду.
Система управління тестуванням на проєкті з розробки складних програмних продуктів також може бути розглянута як система прийняття рішень [5]. У ролі вхідних даних автори [6] використовували зміни, внесені до коду кожного з модулів програмного проекту, такими характеристиками можуть бути кількість доданих/змінених рядків коду, число доданих методів, цикломатична складність функцій, модулів, методів і т. д.
Рис. 1 Основні характеристики стратегій тестування білої та чорної скриньки [4]
Поділ на модулі програмного проекту може бути проведено різними способами, наприклад, відповідно до певної функціональності системи або призначенням кожного із класів коду продукту. Вихідними параметрами є спрогнозований результат, чи кожен модуль, що розглядається потенційно містить помилку, яка може призвести до поведінки системи, відмінної від очікуваного [7].
Якщо результати прогнозу зводяться до того, що ймовірність наявності помилки в модулі більше порогового значення, регресійні тести для цього модуля запускаються в першу чергу і в повному обсязі. Якщо, ґрунтуючись на інформації від нейромережі, модуль потенційно не містить помилки, набір регресійних тестів для такого модуля може бути мінімальним і може бути запущений після найпріоритетніших тестів. У найбільш загальному вигляді модель нейронної мережі авторами [8] представлена на рис. 2.
Формування цілей статті
Метою цієї статті є дослідження найкращих програм штучного інтелекту для планування та автоматизації тестів та розробка інтелектуальної системи автоматизованого запуску тестів.
Виклад основного матеріалу
Розглянемо приклади існуючих програм для автоматизації штучного інтелекту, що використовуються для успішного проведення різних тестувань:
Рис. 2 Модель нейронної мережі [9]
Testm.io - це провідне програмне забезпечення для автоматизації штучного інтелекту, розроблене для спрощення процесу створення стійких наскрізних тестів. Testim.io, запущений у 2014 році, постійно розвивався, додаючи функції та покращуючи якість, щоб задовольнити потреби своїх користувачів (рис. 3).
Рис. 3 Інтерфейс програми Testim.io
Testim.io обслуговує три основні варіанти використання: допомога командам розробників Agile у швидкому та ефективному тестуванні мобільних і веб-додатків, орієнтованих на клієнтів, тестування Salesforce і тестування мобільних додатків. В таблиці 1 розглянуто основні мінуси і плюси та функції Testim.io.
Таблиця 1. Характеристика програми Testim.io
Основні функції Testim.io |
Плюси Testim.io |
Мінуси Testim.io |
|
Стабільність завдяки основі AI: програма використовує штучний інтелект з метою підвищення стабільності тестів |
Швидке створення тестів і прискорений процес тестування |
Ціноутворення не дуже прозоре |
|
Швидке створення: програма дозволяє швидке створення тестів |
Підтримка клієнтів: програма має позитивну репутацію |
Обмежена підтримка браузера |
|
Інструменти TestOps: платформа надає доступ до інструментів TestOps |
Програма спрощує керування пристроями та програмами |
Неможливість копіювання кроків |
|
Інтеграція з Jira: програма бездоганно інтегрується з Jira |
Percy - це платформа для візуального тестування та перегляду, яка легко інтегрується у ваш набір автоматизованих тестів. Він створений, щоб допомогти командам впевнено проектувати, розробляти та розгортати програмне забезпечення. Завдяки міжбраузерному тестуванню, адаптивному візуальному тестуванню та інтелектуальному візуальному регресійному тестуванню Percy гарантує, що ваш інтерфейс користувача залишається узгодженим у кількох веб-переглядачах. Він використовує алгоритм на основі штучного інтелекту для виявлення змін, які цікавлять користувачів, зменшуючи шум і спрощуючи порівняння зображень (рис. 4).
Рис. 4 Інтерфейс програми Percy
Механізм візуального тестування Percy є наріжною функцією, яка робить знімки екрана для перегляду, гарантуючи, що будь-які візуальні зміни виявляються та розглядаються, перш ніж вони досягнуть кінцевого користувача.
Існує безліч програм для планування, які використовують штучний інтелект для оптимізації управління календарем [11]. Розглянемо декілька:
Reclaim - це розумний календар, який інтегрується з Google Calendar для зручного використання. Він корисний людям, яким потрібно розподілити час для завдань і рутинних справ між робочим та особистим графіком (рис. 5).
Рис. 5 Інтерфейс програми Reclaim
Reclaim визначає пріоритетність завдань (табл. 2). Він враховує ваші звички та створює розклад з найоптимальнішим розподілом часу, вибираючи найкращий варіант для самостійної роботи та зустрічей.
Таблиця 2. Характеристика програми Reclaim
Плюси |
Мінуси |
|
Ефективне планування часу для зустрічей |
Безплатна версія не дає доступ до багатьох функцій |
|
Створення розкладу на основі різних факторів |
Можуть виникати труднощі при плануванні часу зустрічі з людьми, які не використовують програму |
|
Синхронізація разом різних календарів, наприклад, особистого та робочого |
Володіє повною підтримкою лише для Google Calendar |
|
Інтегрування з багатьма інструментами, включаючи: Asana, Zoom, Slack, Todoist тощо |
Тривалі чи цілоденні події можуть вибити з колії планувальник |
Flowsavvy спочатку був розроблений для студентів, але він також добре підходить для тих, хто веде кілька проєктів одночасно. Flowsavvy додає список справ до календаря, завдяки чому користувачі чітко знають, що саме їм потрібно зробити і коли це потрібно зробити. Це відбувається завдяки автоматичному плануванню (рис. 6).
Рис. 6 Інтерфейс програми Flowsavvy
В таблиці 3 розглянуто основні мінуси і плюси Flowsavvy, який може розподіляє робоче навантаження на декілька днів.
Таблиця 3. Характеристика програми Flowsavvy
Плюси |
Мінуси |
|
Оптимізація дозволяє користувачу розподілити завдання на кілька днів |
Має проблеми в доступі до календаря під час синхронізації з Google Calendar |
|
Переформатування всього розкладу в один клік |
Працює лише при плануванні завдань, але не для зустрічей |
|
Простий UI-дизайн |
Виникають питання при розміщенні з новими часовими блоками |
|
Кольорова гамма кодів залежно від наближення до терміну виконання |
Відсутня інтеграція із зовнішнім менеджером завдань |
Проте дані системи не вміють аналізувати навантаження на сервері де раниться тести і не завжди можуть вибрати ефективний час запуску тестів і тому нами запропоновано розробити систему інтегрування. Розроблений сервіс з використанням ШІ який буде легко інтегруватись у різні архітектури, він буде аналізувати навантаження на сервер на якому раняться автоматичні тести, буде вміти запускати тести відповідно до навантаження на сервері і сповіщати користувача про те що запуск відбувся, коли запуск тестів закінчиться він буде вміти сповіщати користувача що даний запуск закінчився.
Також даний сервіс буде вміти повертати посилання на сам запуск тестів щоб користувач міг в реальному часі подивитись сам запуск і результати виконання тестів. Класична модель веб-застосунку зображена на рисунку 7.
Рис. 7 Модель веб-застосунку запропонованої програми
Щодо автоматизованого тестування, ми пропонуємо використовувати запропонований нами сервіс з трьома ключовими інструментами: Playwright, Puppeteer та Selenium. Вони дозволяють автоматизувати веб-браузер, при загрузці тестів інтегрованою програмою.
Висновки
Автоматизація запуску тестування відіграє важливу роль у розробці високоякісних програмних продуктів. Сучасні інструменти та методи автоматизації дозволяють розробникам визначати час тестування, забезпечуючи високу стабільність та продуктивність програмного продукту. Проте дані системи містять недоліки зокрема не вміють аналізувати навантаження на сервері де раняться тести і відповідно до цього вибрати ефективний час запуску тестів. Використання сервісу автоматизованого тестування інтегрованого з штучним інтелектом є необхідним компонентом успішного процесу запуску тестів для користувача, який в реальному часі може ознайомитися із їх результатами. І чим раніше почнеться розробка сервісу, який до того ж буде вміти повертати посилання на сам запуск тестування, що відповідає вимогам (без подальших переробок), можна буде одразу отримати якісний продукт.
Література
1. Myers G. The art of software testing/Glenford Myers. - John Wiley&Sonc Inc, 2004. - 255 p.
2. Lewis W. Software testing and continuous quality improvement / William L. Lewis.- Auerbach publications. - NY., 2005. - 561 p.
3. Baker P. Model Driven Testing/ Paul Baker, Zhen Ru, Dai Jens, 0ystein Haugen, Ina Schieferdecker. - Springer-Verlag Berlin Heidelberg, 2008. - 184 p.
4. Danilov A.D., Samotsvet D.A., Mugatina V.M. Using neural network models in the quality management system for the software defect prediction. IOP conference series: Materials science and engineering. International Workshop "Advanced Technologies in Material Science, Mechanical and Automation Engineering”. MIP: Engineering. 2019.
5. Humble J., Farley D. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation / J. Humble, D. Farley. - Addison-Wesley Professional, 2010. - 512 p.
6. Kim, G., Debois, P., Willis, J., & Humble, J. The DevOps Handbook: How to Create World-Class Agility, Reliability, & Security in Technology Organizations. IT Revolution Press, 2016. - 480 p.
7. Erich, M., Amrit, C., Duvall, P. Continuous Delivery: Patterns and Practices in the Cloud. Addison-Wesley, 2021. - 224 p.
8. Nayan B. Ruparelia, Cloud Computing, revised and updated edition.The MIT Press Essential Knowledge series, 2023. - 304 p.
9. Shivakumar R.Goniwada, Cloud-Native Application Architecture: Microservice Development Best Practice. Springer, 2023. - 399 p.
10. Blokdyk, G., Containers and Microservices Second Edition. 5STARCooks, 2021. - 311 p.
11. Erich, M., Amrit, C., Duvall, P., Continuous Delivery: Patterns and Practices in the Cloud. Addison-Wesley, 2021. - 224 p.
References
1. Myers G. The art of software testing/Glenford Myers. - John Wiley&Sonc Inc, 2004. - 255 p.
2. Lewis W. Software testing and continuous quality improvement / William L. Lewis.- Auerbach publications. - NY., 2005. - 561 p.
3. Baker P. Model Driven Testing/ Paul Baker, Zhen Ru, Dai Jens, 0ystein Haugen, Ina Schieferdecker. - Springer-Verlag Berlin Heidelberg, 2008. - 184 p.
4. Danilov A.D., Samotsvet D.A., Mugatina V.M. Using neural network models in the quality management system for the software defect prediction. IOP conference series: Materials science and engineering. International Workshop "Advanced Technologies in Material Science, Mechanical and Automation Engineering”. MTP: Engineering. 2019.
5. Humble J., Farley D. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation / J. Humble, D. Farley. - Addison-Wesley Professional, 2010. - 512 p.
6. Kim, G., Debois, P., Willis, J., & Humble, J. The DevOps Handbook: How to Create World-Class Agility, Reliability, & Security in Technology Organizations. IT Revolution Press, 2016. - 480 p.
7. Erich, M., Amrit, C., Duvall, P. Continuous Delivery: Patterns and Practices in the Cloud. Addison-Wesley, 2021. - 224 p.
8. Nayan B. Ruparelia, Cloud Computing, revised and updated edition.The MIT Press Essential Knowledge series, 2023. - 304 p.
9. Shivakumar R.Goniwada, Cloud-Native Application Architecture: Microservice Development Best Practice. Springer, 2023. - 399 p.
10. Blokdyk, G., Containers and Microservices Second Edition. 5STARCooks, 2021. - 311 p.
11. Erich, M., Amrit, C., Duvall, P., Continuous Delivery: Patterns and Practices in the Cloud. Addison-Wesley, 2021. - 224 p.
Размещено на Allbest.ru
Подобные документы
Багатоплановість проблеми тестування, види тестів, схема взаємодії тестуючого з тестувальником. Огляд і можливості деяких сучасних програмних засобів для створення тестів. Технологія створення тестів на прикладі програмного забезпечення MyTestX.
дипломная работа [1,8 M], добавлен 15.06.2014Вибір та особливості використання технологій та схемо технічних рішень. Особливості використання технологій, засобів проектування системи автоматичного відкривання сміттєвого відра. Інструкція користувача із експлуатації обчислювальної системи.
дипломная работа [3,1 M], добавлен 06.11.2022Організована структура, призначена для зберігання інформації. Системи управління базами даних. Зберігання та пошук інформації про можливості використання ресурсів психологічних тестів мережі Internet. Створення об'єктів бази даних та запити до них.
курсовая работа [3,1 M], добавлен 21.10.2012Дія елементів системи автоматичного регулювання. Розрахунок передаточної функції замкнутої системи за каналами задаючої і збурюючої дії. Побудова годографа амплітудно-фазової частотної характеристики розімкнутої системи і визначення запасу стійкості.
курсовая работа [2,6 M], добавлен 24.12.2012База даних як організована структура, призначена для зберігання інформації. Проектування та реалізація в СУБД MS Access інформаційної системи "База даних Internet-ресурсів тестів з психології". Розробка логічної системи даних, інструкції користувача.
курсовая работа [5,3 M], добавлен 22.10.2012Використання редактора Macromedia Flash MX 2004 для вдосконалення програмного продукта і налагодження середовища. Установка можливостей редагування виділеної групи об'єктів; налагодження автоматичного форматування коду Action Script і комбінацій клавіш.
реферат [261,6 K], добавлен 27.06.2011Дослідження цифрових систем автоматичного керування. Типові вхідні сигнали. Моделювання цифрової та неперервної САК із використання MatLab. Результати обчислень в програмі MatLab. Збільшення періоду дискретизації цифрової системи автоматичного керування.
лабораторная работа [173,7 K], добавлен 14.03.2009Проблеми процесу тестування програмного забезпечення. Розробка алгоритму автоматичної генерації тестів і тестового набору для ручного виконання. Побудова тестів для системи "Банкомат" і для баг-трекінгової системи, представленої графом із циклами.
дипломная работа [1,2 M], добавлен 26.02.2014Розробка майбутніх програмних продуктів, управління їх вихідним кодом. Концепція та моделі надання послуг хмарних обчислень. Особливості використання системи управління версіями Git. Технологія командної роботи над проектом конфігураційного управління.
курсовая работа [1,9 M], добавлен 24.07.2014Характеристика лінійної системи автоматичного керування. Розрахунок показників регульованого параметра, датчика, підсилювача, силового елемента та об’єкта регулювання. Визначення виразів передаточних функцій елементів, складання структурної схеми.
курсовая работа [1,4 M], добавлен 28.01.2015