-
-
-
-
URL copied!
Автор: Тарас Попів, Team Lead, Engineering, Consultant, GlobalLogic Ukraine
Більшість із вас хоча б раз були в ситуації, коли для покращення якості проєкту потрібно додатково зробити декілька невеликих завдань, але команда партнера з якихось причини не одразу на це готова. З такою ситуацією зіткнулась і наша команда розробників у GlobalLogic. У цій колонці я хочу поділитись вирішенням, яке створили наші інженери та показати шлях для пошуку рішень, який, сподіваюсь, стане у пригоді ентузіастам та розробникам.
Чому ми вирішили розробити Modular HIL Test Bench
На проєкті для автоматизованого тестування embedded пристрою використовувалась комплексна програмно-апаратна платформа, розроблена третьою стороною, спеціально для потреб замовника. І наче містила вона все необхідне: високошвидкісний контролер, інтегрована FPGA, модельне програмування (так-так, програмування в графічному редакторі під embedded), різні джерела живлення, можливість використання різноманітних інтерфейсів, велика кількість додаткової периферії. Рішення розроблялось для ручного тестування, але надалі почало застосовуватись і для автоматизованого.
Однак, попри значну кількість переваг, були й деякі недоліки:
- використання різних стеків технологій для програмування пристрою, що тестується, та середовища тестування;
- значна кількість обладнання вимагала початкової ініціалізації, і хоч зі всього переліку використовувалась одна-дві, а то й жодної периферії, проте неправильно проініціалізовані частини(що не використовувались) могли впливати на результати тестів;
- хоча основний процесор і був значно потужнішим за процесор пристрою, що тестувався, та, зважаючи на мову високого рівня, інколи його потужностей було замало навіть для звичайної комунікації, а програмування FPGA для таких цілей – доволі часозатратний процес;
- при використанні великої кількості периферії в системі виникали шуми й “наводки”, які спричиняли помилки в тестуванні;
- оскільки апаратне рішення виготовлялось третьою стороною, виникали труднощі в додатковій кількості обладнання, що збільшувало час тестування основного продукту.
Та попри всі недоліки, не маючи готової альтернативи, замовник не ризикував вкладати кошти в розробку чогось нового.
Поштовх до змін
Зазвичай, скільки б функцій не було додано до платформи, завжди знайдеться щось, чого не вистачає. От і в нашому випадку не знайшлося функціоналу, який міг би керувати рівнем напруги на контролері, що тестується. Спершу, для розв'язання проблеми була спроба використати наявні на ринку аналоги, та вони не дали бажаного результату. А от розроблений прототип першого модуля успішно вирішив поставлене завдання.
Його вартість була приблизно вдесятеро меншою за аналоги; процес розробки й виготовлення тривав близько двох тижнів, а головне, це було саме те, чого раніше не вистачало. Це і стало першим кроком в розробці нашого Modular HIL Test Bench.
Зі збільшенням кількості тестів зростало навантаження на пристрій керування тестовим середовищем, і його ресурс в якийсь момент закінчився. Замість розділення тестів на частини (для чого необхідно було б не тільки розділити програмну частину, але і створити нові апаратні стенди), було запропоновано використати додатковий контролер, який опрацьовуватиме нові сценарії паралельно з тим, що вже існував. Зважаючи на значну різницю у строках виконання та дешевизну, пропозиція, звісно, «зайшла». Одним із переломних моментів при програмуванні нового контролера було використання того ж програмного стека технологій, що і для основного пристрою. Тепер розробнику не доводилось «перемикатись» зі звичайного «С» на малювання блок схем та оновлення FPGA, що значно прискорило процес розробки та налагодження тестів. А новий контролер, хоч і був слабшим за свого «колегу», та з оптимізованим кодом виконував значно більшу кількість завдань. На цьому етапі вдалося використати високошвидкісну комунікацію по SPI інтерфейсу з різними пристроями водночас.
Оскільки нова система працювала стабільно, то при додаванні чи модифікації чинних тестів, вони додатково переносились на новий контролер. А при необхідності використання нового апаратного функціонала - розроблявся новий апаратний модуль, керував яким, зрозуміло, новий контролер.
Висновок перший
В наш час вимоги до пристроїв змінюються швидше, ніж час, який потрібен на розробку повного рішення. Припускаю, що після завершення роботи над повним рішенням, воно було б не актуальне. Саме тому, під час нашого процесу розробки ми використали такий підхід коли при появі нової вимоги створюється лише новий максимально простий модуль (а не переробляється вся система), що дозволяє задовольнити дану вимогу з мінімальними фінансовими й часовими витратами.
Переваги рішення
Приблизно за пів року часу стару систему було поступово замінено на нашу розробку. Кількість апаратних модулів зростала, і створювати зв’язки між ними ставало дедалі важче. Для розв'язання проблеми модулі та інтерфейси між ними було стандартизовано. Всі вони з’єднувались між собою за допомогою основної плати, на якій були розташовані слоти для розширення. Фактично, саме тоді й з'явився термін «Modular HIL Test Bench», оскільки з основною платою рішення стало модульною системою.
Зважаючи на успіх, нашу систему почали активно використовувати інші команди замовника. Оскільки система модульна – вона підійшла практично всім. Наприклад:
- Потрібна додаткова периферія? Можна просто створити потрібний модуль;
- Щось застаріло, чи не підходить? Модуль можна дуже легко змінити, без впливу на систему загалом;
- Не вистачає ресурсів контролера? Його завжди можна замінити на більш потужний, адже програмна частина теж має модульну структуру і майже не прив’язана до самого MCU.
Попри те, що автоматизоване тестування практично повністю перейшло на нову систему, залишалась необхідність підтримувати старе рішення, адже воно все ще використовувалось для ручного тестування. Фінальним в цій історії стало написання GUI аплікації, що з’єднувалась зі стендом і містила необхідний для ручного тестування функціонал. Додатково GUI дозволяє запускати також автоматичні тести, збирати та аналізувати логи, і на даний час знаходиться в активній розробці.
Висновок другий
Основною перевагою цього рішення є модульність. Вона спрощує впровадження системи в проєкт, надає швидку можливість розширення, є простою у використанні (адже використовуються тільки потрібні модулі), забезпечує можливість заміни старого модуля на новий, що дозволяє легко впроваджувати нові технології. Розширення такої системи є максимально швидким та дешевим – час та вартість розробки нового модуля завжди менші, ніж створення комплексного рішення. Завдяки цим перевагам створена система застосовується для тестування нових «embedded» проєктів. У поточному ж проєкті, завдяки впровадженню даного рішення, вартість затрат на тестування зменшилась приблизно у десять разів.
Top Insights
Python: чому вивчати та з чого почати?
InsightsSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyТонкощі CV або Як скласти та куди надіслати,...
HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyCI/CD для JS розробників. Частина перша – теорія
DevelopmentSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologySoft and Hard Skills: Що важливіше? Розповідь одного...
HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnologyТОП автори
Категорії блогів
Давайте співпрацювати
Схожі теми
Як зберігати і підвищувати власну продуктивність в ІТ
Артур Мицко, Lead Software Engineer, GlobalLogic У компанії Globallogic я пройшов шлях від С++ trainee до Lead Software Engineer. Як зазвичай буває, коли людина приходить в ІТ-компанію вперше — все навколо нове та цікаве, ти не помічаєш як летить час. Чесно кажучи, в перші роки я не сильно то і відпочивав, переважно на свята. Це, … Continue reading Modular HIL Test Bench або шлях до оптимізації витрат на тестування →
Більше
Як покращити ресурсний стан через оточення
Катерина Васильєва, Senior HRBP, GlobalLogic Ресурсний стан як поняття, яке використовується в психології, медицині, спорті та інших галузях, описує психофізіологічний стан людини, який характеризується рівнем її енергії, витривалості, здатності до праці та концентрації уваги. Відповідно, ресурсний стан впливає на різні аспекти життя людини, і визначається різними чинниками, як то рівень фізичного здоров'я, ступінь стресу або … Continue reading Modular HIL Test Bench або шлях до оптимізації витрат на тестування →
Більше
Як стати .NET розробником. Перші кроки та поради
Олексій Глембицький, Senior Software Engineer, GlobalLogic Мене звати Глембицький Олексій, я .NET розробник в компанії GlobalLogic, а також проводжу вебінари та викладаю курси по мові програмування С#. І в цій статті я би хотів поділитись порадами, які допомагають моїм студентам опанувати мову програмування С# та стати .NET-розробниками. Про мову програмування C# та платформу .NET C# … Continue reading Modular HIL Test Bench або шлях до оптимізації витрат на тестування →
Більше
Як покращити презентації
Денис Братчук, Engineering Director, GlobalLogic Майже кожен з нас час від часу виступає із презентаціями чи доповідями, використовуючи як ілюстрацію слайди, створені в популярних офісних програмах, на кшталт PowerPoint або Google Slides. Менеджери проєктів створюють звіти про хід виконаних робіт, інженери презентують новітні технологічні рішення, керівництво звітує про досягнення фінансових цілей, а менеджери з продажів … Continue reading Modular HIL Test Bench або шлях до оптимізації витрат на тестування →
Більше
Від студента до Trainee-спеціаліста: історія випускника С++ GL BaseCamp
Почати шлях в ІТ під час навчання в університеті — ще той виклик, який вимагає наполегливості і постійної практики. Сергій Піскурський, студент та Trainee Specialist GlobalLogic, приєднався до компанії після проходження С++ GL BaseCamp. Хлопець поділився досвідом навчання перед курсом та підготовки до С++ GL BaseCamp. Чому ти вирішив вивчати С? Коли я почав думати … Continue reading Modular HIL Test Bench або шлях до оптимізації витрат на тестування →
Більше
Share this page:
-
-
-
-
URL copied!