План уроку:
Позитивні та Негативні тести
Black box
- Попарне тестування (Pairwise testing)
- Тестування переходів станів (State transition testing)
- Користувацькі сценарії (Use case testing)
Experience based
- Передбачення помилки (Error guessing)
- Дослідницьке тестування (Exploratory testing)
- Інтуїтивне тестування (Ad-hoc testing)
Як писати гарні тест-кейси
Позитивні та Негативні тести
Позитивне тестування – дозволяє перевірити, чи працює система в нормальних умовах так, як задумувалося.
Позитивні тести – перевіряють, що те, що має працювати - працює.
Негативне тестування – гарантує, що програма продовжить роботу у разі помилки або непередбаченої поведінки.
Негативні тести – перевіряють реакцію програми на невалідні дані/поведінку.
Рекомендація:
Починайте з простих очевидних тест-кейсів, які перевіряють працездатність основних функцій програми. А потім розширюйте покриття більш складними сценаріями.
Рекомендована послідовність виконання тест-кейсів:
прості позитивні;
прості негативні;
складні позитивні;
складні негативні.
Техніки тест-дизайну
Тест-дизайн – це один з етапів процесу розробки програмного забезпечення, етап придумування, розробки та впорядкування тестів у набори на основі аналізу вимог та функціональності продукту.
Техніка тест-дизайну – це метод створення тестів.
Test Design. На основі специфікації
Класи еквівалентності (Equivalence partitioning)
Граничні значення (Boundary value analysis)
Таблиця прийняття рішень (Decision tables)
Попарне тестування (Pairwise Testing)
Діаграма переходів станів (State transition testing)
Користувацькі сценарії (Use case testing)
Попарне тестування (Pairwise Testing)
Попарне тестування – техніка тестування, в якій замість перевірки всіх можливих комбінацій значень усіх параметрів перевіряються тільки комбінації значень кожної пари параметрів.
Тестування переходів станів (State transition testing)
Схема станів і переходів – техніка для візуалізації ТЗ. Вона наочно показує, як об'єкт переходить з
одного стану до іншого.
Діаграма переходів станів. Приклад
Схема станів і переходів для процесу логіну в банкомат:
Користувацькі сценарії (Use case testing)
Use case – це сценарії, що описують те, як діяч (actor), зазвичай це людина, але може бути й інша система, користується системою для досягнення певної мети. Варіанти використання описуються з точки зору користувача, а не системи.
Use case описує, як актор намагається досягти будь-якої мети за допомогою
системи або застосунку.
Структура:
ціль;
актори;
попередні умови (необов'язково);
основний сценарій;
розширення (альтернативний сценарій).
Приклад: Реєстрація
Сайт має надавати можливість реєстрації. Користувач має заповнити форму для реєстрації. Сайт має надіслати електронного листа з підтвердженням після успішної реєстрації користувача.
Те саме у форматі Use Case:
Use Case: реєстрація на сайті
Актор: Користувач
Умова: користувач знаходиться на сторінці входу
Основний сценарій:
1. Користувач натискає кнопку "Зареєструватися".
2. На сайті відображається форма реєстрації.
3. Користувач заповнює форму та підтверджує реєстрацію.
4. Сайт підтверджує правильність заповнення форми.
5. Сайт реєструє користувача та надсилає йому на пошту листа з підтвердженням реєстрації.
Test Design. На основі досвіду
• Передбачення помилки (Error guessing)
• Дослідницьке тестування (Exploratory testing)
• Інтуїтивне тестування (Ad-hoc testing)
Передбачення помилки (Error guessing)
Передбачення помилки (Error guessing) – підхід, при якому тестувальник думає над тим, яких
помилок можна допустити в процесі розробки, а також визначає шляхи їх появи, використовуючи
інтуїцію, знання та досвід.
Дослідницьке тестування (Exploratory testing)
Дослідницьке тестування (Exploratory testing) – це одночасне вивчення програмного продукту, проєктування тестів та їх виконання.
Це неформальний метод проєктування тестів, при якому тестувальник активно контролює проєктування тестів у той час, як ці тести виконуються, та використовує отриману під час тестування інформацію для проєктування нових тестів
Інтуїтивне тестування (Ad-hoc testing)
Інтуїтивне тестування (Ad-hoc testing) – це вид тестування, який виконується без підготовки до тестування продукту, без визначення очікуваних результатів та проєктування тестових сценаріїв.
Це неформальне, імпровізаційне тестування. Воно не вимагає жодної документації, планування, процесів, яких слід дотримуватися при виконання тестування.
Властивості якісних тестів
Декілька перевірок в одному тесті
Тест-кейс чи тест-сценарій?
Тест, який тестує нічого
Всі ці тести можна пройти, але користувач не зможе увійти в систему або створити новий обліковий запис.
Ми витрачаємо час на їх створення та виконання, але не можемо гарантувати роботу цього функціоналу
Незалежність чи обґрунтована пов'язаність
Пов'язані тест-кейси явно чи неявно (у межах набору) посилаються на інші (як правило, на попередній).
Незалежні тест-кейси не посилаються на жодні інші.
Переваги незалежних тест-кейсів:
легко виконувати;
можуть працювати навіть після збою програми на інших тест-кейсах;
можна групувати будь-яким чином і виконувати у будь-якому порядку.
Переваги пов'язаних тест-кейсів:
наступний у наборі тест-кейс використовує дані та стан застосунку, що підготовлені попереднім.
можуть імітувати роботу реальних користувачів;
Тести, які будуть автоматизовані
тестові дані повинні бути вказані в тест-кейсі або додайте запит для їх створення або знаходження;
1 тест – 1 основна перевірка;
забезпечте простежуваність між ручними та автоматичними тестами:
- відзначте, які тести автоматизовані в інструменті тест-менеджменту;
дізнайтесь, який підхід до автоматизації використовується, і надайте зручні для них тести.
Особливості тест-кейсів для автоматизації
їх немає;
Гарний тест-кейс = якісний алгоритм;
Автоматизація = це програмування;
Програма виконує алгоритм.
Пишіть якісні тест-кейси!
Отже підіб'ємо підсумок
Гарний тест-кейс:
має зрозумілу ідею - хоча може бути складний у виконанні
послідовний у досягненні мети.
не містить зайвих (безглуздих) дій.
не дублює інші тест-кейси.
робить виявлену помилку очевидною.
нічого не передбачає, а забезпечує те, що необхідно (пре-і пост-умови)
Необхідно ставитися до тестів як до інструкції або рецепту.
Головне – це зрозумілість та завершеність.
Q&A
Дякую всім за заняття!🙌🏻
❗️🎓Техніки тест-дизайну. Частина 2
Нагадую, що дедлайн здачі домашніх робіт – до наступного уроку.
Якщо виникають складнощі, пишіть, допоможу із задоволенням 😌
Запис лекції тренер опублікує трохи пізніше 🖥
Не забудьте повторити матеріал та підготуватися до наступного уроку📚
Успіху і до зустрічі!🤩
1. Напишіть чек-лист тестування короткострокової події.
Інтернет-магазин робить промоакцію – протягом одного робочого дня з 8 ранку і до 22 вечора на
сайті мають бути знижки на різні категорії товарів у різний час:
•До 12:00 на взуття, з 12:00 і до 18:00 на курточки, а з 18:00 до 22:00 – на штани.
•Знижка на взуття 15%, на штани - 10%, а на куртки - 30%.
1. Створіть таблицю рішень для тестування системи продажів у кінотеатрі, згідно з нею на фільми діє знижка у таких випадках:
•Ранкова сесія в будь-який день – 15%
•Усі сеанси у глядацький день – 30%
•Пільгові категорії відвідувачів (студенти, пенсіонери, інваліди) за умови надання довідок – 30%
•Знижки підсумовуються, за виключенням знижки у глядацький день