Головна
Кейси
Оптимізовані процеси, завдяки підвищенню рівня автоматизації тестування

Індустрія:

Енергетика та природні ресурси

Локація

США

Платформа

.NET

Оптимізовані процеси, завдяки підвищенню рівня автоматизації тестування

ПРО КЛІЄНТА

Наш клієнт (NDA) знаходиться на етапі трансформації з .Net framework v 1.1 на .Net Core, а також з Angular.js на Angular 16, працюючи в режимі реального часу з датчиками електроенергії, тепла та температури.  Основною метою компанії є економія енергії, для чого обладнання та рішення розробляються і розміщуються в Azure Cloud з подальшою звітністю за допомогою Microsoft Power BI. Виклик, з яким вони зіткнулися, полягав у впровадженні автоматичного тестування в управлінні системою, що складає енергозберігаючу екосистему, а також варто зазначити, що подібні рішення раніше не використовувалися в розробці їхніх проектів.

ВИКЛИКИ ПРОЕКТУ

Основним викликом було безболісно знайти метод інтеграції рішення, яке потрібно було розробити таким чином, щоб розробка наскрізного (Е2Е) тесту не включала програмування.

Також були проблеми з безперебійною роботою CI/CD Pipelines, що вимагало втручання тестувальників і порушувало часові рамки.

Розробник NetLS, який першим познайомив проектну команду з новим методом реалізації цього рішення, взяв на себе завдання стати першопрохідцем у впровадженні автоматизації тестування.

Клієнт обрав аутстафінгову модель співпраці та заручився підтримкою нашого профільного розробника. 

ЩО БУЛО ЗРОБЛЕНО

  • Розробка бібліотек для автоматизованого тестування

Розробник NetLS, який працював над цим проектом як аутстафер, почав зі створення кастомізованої бібліотеки для автоматизації тестування, щоб задовольнити унікальні потреби клієнта. Ця бібліотека була розроблена, щоб забезпечити тестувальників надійним набором інструментів, призначених для спрощення складнощів автоматизованого тестування. Specflow (C#) і Cypress (JavaScript) були інтегровані в 2 окремі бібліотеки (кожна окремо) з використанням різних підходів — від селектора елементів XPath до Selenium, а також був застосований підхід Behavior Driven Development, щоб дозволити тестувальникам використовувати синтаксис Gherkin.

Шлях до створення комплексного рішення для тестування передбачає подолання цілої низки викликів.

Монтажна область 1-3

  • Ефективна реалізація AWAIT

Розробляючи цю бібліотеку для автоматизації тестування, ми приділили значну увагу ефективній обробці операцій AWAIT. Наша команда зіткнулася з кількома технічними проблемами, серед яких необхідність забезпечення точного завантаження сторінок, безперервного зберігання даних на всіх етапах та запобігання помилкам під час перезавантаження сторінок.

  • Робота з асинхронними операціями

Ключовим аспектом була робота з асинхронними операціями. Крім стандартних сценаріїв завантаження сторінок, необхідно було вміло управляти випадками, коли асинхронні запити сервера оновлювали лише частину сторінки. Розроблене NetLS рішення вміло враховувало ці варіації, забезпечуючи бездоганне виконання тестів у цих динамічних ситуаціях. Тести були точно синхронізовані з виконанням JavaScript, задовольняючи як стандартні перезавантаження сторінки, так і асинхронні запити сервера.

  • Покращена сумісність з сайтом на Angular

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

  • Спеціальна логіка прокрутки

Також була реалізована спеціальна логіка скролінгу для вирішення проблем із втручанням меню сайту та різними розмірами екрану бутстрапу, коли важливий елемент технічно був присутній на екрані, але залишався прихованим від користувача. Проблема була вирішена шляхом розробки спеціальної логіки скролінгу, яка дозволила автоматизованим тестам визначити справжню видимість елемента.

  • Гнучкість модальних вікон

Ще одна вимога від клієнта була привнесена в проект —  часта поява і зникнення модальних вікон. Ці <iframe> елементи мають особливу проблему, яка може зіпсувати загальне враження від сторінки сайту. Розробник відреагував на це, включивши інтелектуальну логіку, яка дозволила тестам динамічно оцінювати наявність модальних вікон. Якщо вони були виявлені, тести автоматично виконували заздалегідь визначені дії. Однак, якщо їх не було, тести не генерували помилку "модальне вікно не знайдено", а замість цього ігнорували відсутність модального вікна.

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

  • Динамічна обробка значень

Одним з унікальних аспектів цих елементів автозаповнення є їхня здатність динамічно змінюватися. Коли відбуваються відкладені запрограмовані дії, значення в автозаповненні змінюються відповідно до прогнозованих очікувань. Ми розробили рішення, яке враховує цю поведінку, дозволяючи нашим тестувальникам фіксувати та зберігати початкові значення до виконання певних дій. Ці дані потім використовувалися для точного порівняння на наступних етапах тестування, забезпечуючи точність і надійність процесу тестування.

image (3)-1

  • Передача даних між етапами тестування

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

РЕЗУЛЬТАТ

Найважливішим результатом цієї роботи стало усунення необхідності для розробників писати наскрізні (Е2Е) тести, оскільки розробник NetLS писав автоматизовані .NET Gherkin тести для BA або QA. Тепер ці завдання можна делегувати тестувальникам, які не обов'язково є програмістами або мають глибокі знання з програмування. Цей перехід обіцяє принести нашому клієнту значну економію коштів. Зробивши автоматизовані тести більш доступними і менш залежними від досвіду програмування, проект досяг більш високого рівня ефективності та гнучкості.

Таким чином, інноваційна робота аутстаферного розробника NetLS значно покращила процеси тестування клієнта, потенційно підвищивши загальну економічну ефективність та продуктивність проекту та зменшивши бюджетні витрати на 30% на процес доставки завдяки досвіду експерта NetLS Full-Stack .Net, що виявилося дешевшим рішенням виправити проблему один раз, ніж витрачати бюджет на коригування якості поставок у разі їх збою.

 

Вас зацікавив наш кейс стаді?

Команда NetLS може розробити індивідуальне інноваційне рішення на основі нашого досвіду спеціально для вашого бізнесу. Заповнюйте форму і ми повернемось до вас з унікальною пропозицією!

I consent to receiving news, updates, and special offers via email

By sending a message you agree with your information being stored by us in relation to dealing with your enquiry. Please have a look at our Privacy Policy

;