Що таке тестування на основі моделі?
Що таке тестування на основі моделі?
Тестування на основі моделі — це техніка тестування програмного забезпечення, за якої поведінка тестованого програмного забезпечення під час виконання перевіряється на прогнози, зроблені моделлю. Модель — це опис поведінки системи. Поведінка може бути описана в термінах вхідних послідовностей, дій, умов, виведення та потоку даних від входу до виходу. Він повинен бути практично зрозумілим і його можна використовувати багаторазово; Shareable повинен мати точний опис системи, що тестується.
Існує багато доступних моделей, і вони описують різні аспекти поведінки системи. Приклади моделі:
- Потік даних
- Контроль потоку
- Графи залежностей
- Таблиці рішень
- Машини переходу стану
Тестування на основі моделі описує, як система поводиться у відповідь на дію (визначається моделлю). Поставте дію та перевірте, чи система відповідає очікуванням.
Це легкий формальний метод перевірки системи. Це тестування можна застосовувати як до тестування обладнання, так і до програмного забезпечення.
Приклад тестування на основі моделі
Наведена вище модель пояснює спрощений підхід до написання віршів у блокноті та можливі дії, пов’язані з кожним кроком. Для кожної дії (наприклад, початок, введення вірша, збереження), Тестовий випадок можна згенерувати, а вихід можна перевірити.
Види МБТ
Існує два типи структур тестування на основі моделі:
- Офлайн / апріорі: генерація наборів тестів перед їх виконанням. Набір тестів — це не що інше, як набір тестів.
- Онлайн/на льоту: Генерація наборів тестів під час виконання тесту
Різні моделі в тестуванні
Щоб зрозуміти MBT, необхідно розуміти деякі моделі, пояснені нижче. Давайте переглянемо їх один за іншим:
Кінцеві державні машини
Ця модель допомагає тестувальникам оцінити результат залежно від вибраного входу. Різні комбінації входів можуть привести до відповідного стану системи.
Система матиме певний стан і поточний стан, який регулюється набором вхідних даних, наданих тестувальниками.
Розглянемо приклад -
Існує система, яка дозволяє співробітникам входити в додаток. Тепер поточний стан працівника – «Вийшов», і він став «Вхід», коли він увійшов у систему. У стані «in» працівник може переглядати, друкувати та сканувати документи в системі.
Державні діаграми
Це розширення кінцевого автомата і може використовуватися для складних систем реального часу. Діаграми станів використовуються для опису різних дій системи. Він має певну кількість станів. Поведінка системи аналізується і представляється у вигляді подій для кожного стану.
Наприклад -
Дефекти відображаються в інструменті керування дефектами зі статусом Новий. Після виправлення розробниками його потрібно змінити на статус Виправлено. Якщо дефект не виправлено, змініть статус на Повторно відкрити. Карти штатів мають бути розроблені таким чином, щоб у них містилася подія для кожного штату.
Уніфікована мова моделювання (UML)
Уніфікована мова моделювання (UML-) є стандартизованою мовою моделювання загального призначення. UML містить набір методів графічної нотації для створення візуальних моделей, які можуть описати дуже складну поведінку системи.
UML має такі позначення, як:
- Діяльності
- Актори
- Бізнес-процес
- компоненти
- Мова програмування
Проблеми тестування на основі моделі
Очевидно, що розгортання MBT у кожній організації вимагає великих інвестицій і зусиль. Нижче наведено недоліки MBT в Розробка програмного забезпечення.
- Необхідні навички, необхідні для тестерів
- Часу навчання буде більше
- Важко зрозуміти саму модель
Переваги модельного тестування
Переваги MBT:
- Просте обслуговування тестового випадку/набору
- Зниження вартості
- Покращене покриття тестів
- Може запускати різні тести на n машин
- Раннє виявлення дефектів
- Збільшення кількості дефектів
- Економія часу
- Покращене задоволення від роботи тестувальника
Висновок
Тестувальники все одно будують ментальні моделі під час свого тестування. Ці ментальні моделі можна перетворити на моделі на папері. Це допомагає тестувальникам досягти читабельності та можливості повторного використання.
Тестування на основі моделі – це новий підхід до тестування програмного забезпечення. Еволюція тестування програмного забезпечення показана нижче –