Unit testing – дуже важлива частина розробки будь-якого софту. По-суті, unit testing – це тестування окремих модулів коду. Це можна робити як вручну, так і автоматизовано.
Для існує три найбільш популярних інструменти для юніт-тестування. Це звичайно ж Unit Test Framework від NI,JKI VI Tester від JKI, а також Caraya Unit Test Framework теж від JKI (для юніт-тестування та assertions).
Хотілося б привести простий приклад роботи з JKI VI Tester.
На відміну від NI Unit Test Framework, JKI VI Tester безкоштовний. Встановити його можна за допомогою VI Package Manager. Після встановлення, тулкіт доступний в меню Tools -> VI Tester.
Принцип роботи JKI VI Tester доволі простий. Можна створювати Test Cases, та Test Suites (які містять в собі Test Cases). Test Cases зазвичай можуть містити в собі тести для конкретного модулю/функціоналу.
При створенні Test Case, в проект добавляється клас, який містить setUp.vi, tearDown.vi, vi-приклад у вигляді vi-шаблону testExample.vit.
У setUp.vi та tearDown.vi можна добавляти код, який буде проводити ініціалізацію якихось параметрів для тесту, та їх деініціалізацію. Таким чином, при запуску тесту виконується послідовність setUp.vi – test.vi - tearDown.vi.
Щоб створити новий тест, достатньо клацнути правою кнопкою на testExample.vit -> New from Tempate. Потрібно не забувати, що всі віайки-тести повинні містити префікс test на початку назви віайки.
Ну а далі, у створеній віайці можна писати сам тест. При встановленні тулкіту, в палітру функцій JKI Toolkits добавляються API функції для роботи з VI тестером. Їх і треба використовувати для створення тесту, а саме логіки – при якій умові тест буде пройдений, або ж ні.
Приведу простий приклад того, як використовувати тулкіт.
Нехай потрібно створити модуль, який буде інкрементувати числовий суфікс рядку. І, повинен зберігатися такий функціонал:
- Якщо рядок пустий, буде генеруватися помилка (5005);
- Якщо рядок не містить числового суфіксу, він буде створений (string -> string_01);
- Якщо рядок уже містить числовий суфікс, він буде інкрементований (string_02 -> string_03).
Отже, вимоги нам відомі, можна створити шаблон віайки.
Тепер, запустимо сам тестер. Для цього вибираємо Tools -> VI Tester -> Test VIs…
Оскільки проект ще не містить тести, список тестів пустий.
Добавимо тест.
Для цього вибираємо Tools -> VI Tester -> New -> Test Case…, і зберігаємо створений клас, який тепер містить у нашому проекті.
Тепер, ми можемо створити три тести, на основі наших вимог. Створюємо, зберігаємо віайку, і зберігаємо проект.
Переходимо до вікна VI Tester, тиснемо кнопку Reload – і бачимо наші тести. Запускаємо їх, і бачимо що всі вони мають статус Fail (само собою, оскільки наш модуль ще не імплементований).
Тепер, імплементуємо наші вимоги. Перше – це перевірка умови пустого рядку, і генерація помилки.
Зберігаємо зміни віайки, запускаємо тест. Тепер, один тест із трьох виконався успішно.
Імплементуємо ще дві вимоги відразу, і запускаємо тести. Всі тести пройшли успішно, а значить, наш модуль імплементований вірно.
Звичайно, що такий простий функціонал швидше можна було б перевірити вручну. Але уявімо, що модуль повинен виконувати більше вимог. З часом він може мінятися – а значить, треба перевіряти його функціонал повністю. І таких модулів у проекті можуть бути десятки, а то і сотні – і іноді зміна однієї з віайок може нашкодити декільком іншим.
А написавши один раз тест, і потім використовуючи його для автоматичного тестування коду, ми збережемо купу часу для тестування, а головне – будемо впевнені, що імплементовані алгоритми працюють.
Також, за допомогою VI Tester можна імплементувати запуск тестеру із проекту – наприклад, при білді коду в бібліотеку, чи exe. За допомогою Pre-Build Action, та VI Tester API віайки будуть тестуватися автоматично, таким чином гарантуючи, що код буде функціональним.
Ще однією особливістю VI Tester є те, що по-перше, він має відкритий вихідний код (на GitHub є доступний репозитарій), а по-друге, оскільки він є об’єктно-орієнтованим, то це означає, що можна модифікувати тест-алгоритми так, як це потрібно.
Підсумовуючи все вищесказане, як на мене, VI Tester – гарний інструмент, який повинен бути на озброєнні у будь-якого розробника, оскільки він реально здатний полегшити життя, та допоможе писати код надійно і правильно.
JKI VI Tester - інструмент для тестування LabVIEW коду
-
Kosist
- expert
- Сообщения: 1237
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
JKI VI Tester - інструмент для тестування LabVIEW коду
- Вложения
-
- VI Tester Example.zip
- (104.56 КБ) 203 скачивания
Мы делили апельсин - много наших полегло...
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 4 Ответы
- 1679 Просмотры
-
Последнее сообщение Eugene543210
-
- 4 Ответы
- 4123 Просмотры
-
Последнее сообщение Maverick_Tomcat
-
- 3 Ответы
- 1558 Просмотры
-
Последнее сообщение dadreamer
-
- 5 Ответы
- 1146 Просмотры
-
Последнее сообщение irafka
-
- 0 Ответы
- 707 Просмотры
-
Последнее сообщение tamperplay