Порівняння двох підходів до Unit-тестування Angular-додатків.

dc.contributor.authorПолупан, Ю. В.
dc.contributor.authorРодіонов, П. Ю.
dc.contributor.authorДьомін, М. К.
dc.contributor.authorPolupan, Yu. V.
dc.contributor.authorRodionov, P. Yu.
dc.contributor.authorDomin, M. K.
dc.date.accessioned2025-02-20T16:12:10Z
dc.date.available2025-02-20T16:12:10Z
dc.date.issued2024
dc.description.abstractВ сучасному світі реактивні системи набирають все більшої популярності, при цьому в основі реактивно-сті є робота з асинхронними потоками даних. Тестування реактивних систем стоїть окремою задачею, в якій є низка відкритих питань, наприклад, вимірювання ефективності тестів, використовуючи той чи інший підхід до тестування. Для тестування Angular-додатків в роботі було об-рано два підходи: 1) з використанням зв’язки Jasmine+ Karma, що встановлюється за замовчуванням при створенні додатку; 2) з використанням Jest. В статті тестується Angular-додаток, який має 7тестів, 3 з яких – тести синхронних блоків коду і 4 –для асинхронних блоків. При тестуванні використовувались інструменти, що пропонує Angular із коробки та фреймворк Jest. Для вимірювання ефективності Unit-тестів, як правило, використовуються чотири критерії [2, 4]: за-хист від помилок (protection against bugs); стійкість до рефакторингу (resilience to refactoring); швидкість зворотнього зв’язку (fast feedback); простота підтримки (maintain ability). Порівнюючи різні підходи до тестування можна визначити як той чи інший підхід впливає на конкретний критерій ефективності Unit-тестів, підвищуючи його, або навпаки зменшуючи. Як відомо, на сьогодні не існує автоматичного способу вимірювання ефективності з отриманням значень для кожного критерію і тому кожен тест потрібно оцінювати окремо. Для отримання значення по критерію «швидкість зворотнього зв’язку» будемо використовувати час виконання тестів, в тому числі з визначенням відсотка покриття коду тестами при допомозі команди coverage. Цей критерій показує, що чим швидше виконується тест на етапі розробки, тим меньше часу витрачається на усунення знайдених помилок, тим самим, значно підвищуючи ефективність Unit-тестів. В результаті порівняння роботи двох фреймворків для тестування, можна зробити висновок, що при використанні Jest тести виконуються в середньому на 60% швидше за рахунок того, що система відстежує зміни файлів та не виконує непотрібних дій. При тестуванні асинхронного коду така ж тенденція (збільшення швидкості тестування на 60%) зберігається, тому Jest відмінно підходить для виконання тестування Angular-проектів, які містять багато асинхронного коду. Так як ефективність Unit-тестів залежить від швидкості зворотнього зв’язку (fast feedback), то, використовуючи Jest, ми, тим самим, значно підвищуємо ефективність Unit-тестування та всього проекту в цілому.
dc.identifier.citationПолупан Ю. В., Родіонов П. Ю., Дьомін М. К. Порівняння двох підходів до Unit-тестування Angular-додатків. Вісник Східноукраїнського національного університету імені Володимира Даля. 2024. № 5 (285). С. 5-9.
dc.identifier.doihttps://doi.org/10.33216/1998-7927-2024-285-5-5-9
dc.identifier.udc004.41
dc.identifier.urihttps://dspace.snu.edu.ua/handle/123456789/1852
dc.language.isouk
dc.publisherСНУ ім. В. Даля
dc.subjectUnit-тестування
dc.subjectAngular-додаток
dc.subjectJasmine
dc.subjectKarma
dc.subjectJest
dc.subjectмодульні тести
dc.subject-test coverage
dc.subjectAngular CLI
dc.subjectChromeHeadless
dc.subjectреактивність
dc.subjectсинхронний та асинхронний код
dc.titleПорівняння двох підходів до Unit-тестування Angular-додатків.
dc.title.alternativeComparison of two approaches to Unit testing Angular apps
dc.typeArticle

Files

Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
Unit-тестування_5.pdf
Size:
715.88 KB
Format:
Adobe Portable Document Format
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
4.73 KB
Format:
Item-specific license agreed to upon submission
Description: