Це лише декілька прикладів помилок, які можуть бути виявлені за допомогою Error Guessing. Техніка не базується на формальних правилах, але наш досвід у тестуванні може qa тестувальник курси бути цінними для виявлення потенційних слабких місць у програмі. Варто пам’ятати, що ця техніка гарантує повне покриття всіх можливих помилок, це лише додаткова техніка, яку краще застосовувати в комбінації з іншими.
Юзер може залогінитися в систему, використовуючи логін та пароль. Якщо кількість невдалих спроб введення пароля перевищить три, то система заблокує юзера. Після того як користувач успішно залогінився, його скеровує в особистий кабінет. Іншим недоліком є ризик приділити занадто багато часу на досить рідкісні юз-кейси і недостатньо часу на решту функціоналу. Для тестування беруть три значення для кожної границі класу — саме граничне значення, наступне значення перед та після границі. Для тестування беруть по два значення з кожної границі класу — саме граничне значення і наступне значення, яке перебуває за межами границі.
По суті, параметри — це значення, які виступають в ролі вхідних даних, надаючи певну інформацію, необхідну для конкретної операції. Впевнена, що багатьом знайома ситуація, коли добре знаєш теорію, але не дуже розумієш, як її використовувати на практиці. Так відчула себе я, коли розбиралась з поняттями тест-аналізу та тест-дизайну. Прочитавши книги, пройшовши курси, отримавши ISTQB-сертифікати, я однаково не бачила загальної картини, як це все поєднати між собою. У Back-end тестуванні завжди важливо перевіряти не тільки успішну роботу методу за допомогою Request-Response, адже це лише свідчить про те, що метод повернув очікувані значення, отримавши коректні параметри. Такий підхід допомагає виявити помилки, пов’язані з обробкою граничних значень, тому що часто саме на межах діапазонів програми можуть поводитися некоректно.

Знайти всі взаємодіючі умови може бути складно, особливо коли вимоги не чітко визначені або взагалі не задокументовані. Якщо умов занадто багато, кількість правил зростатиме в геометричній прогресії, що може ускладнити створення, сприйняття та підтримку таблиці. Оскільки всі значення від 1 до 50 символів знаходяться в одному еквівалентному класі, нам потрібно перевірити лише одне значення в цьому класі. Замість 50 тестів, кожен з яких має різне значення, нам потрібен лише один тест, щоб перевірити коректну обробку будь-якого значення у цьому класі. Привіт, я — Дмитро Скрипка, відповідаю за Back-end тестування у Wirex — британській фінтех-компанії, інженери якої створюють продукт, що поєднує традиційні гроші та криптовалюти в одному додатку.

Техніки дизайну тестів допомагають покрити систему тестовими випадками по максимуму і без зайвих повторень. Повне тестування всіх комбінацій вводів і передумов фізично нездійсненно, крім виняткових випадків. — помилка програміста (або іншого члена команди), тобто коли в програмі щось йде не так, як планувалося і програма виходить з-під контролю. Додатково можна посидіти над знайденими багами та подумати “А може аналогічний баг бути в іншій частині системи? Збираємо в одній кімнаті/дзвінку одного або кількох програмістів, менеджерів, клієнтів, тестувальників, тощо. Використання та поєднання різних технік тест-дизайну чорної скриньки — це чудовий спосіб досягти гарного покриття на будь-якому етапі життєвого циклу розробки програмного забезпечення.
Менторську підтримку та супровід всі студенти отримують на теоретичних та практичних заняттях (в тому числі самостійних). Техніки містять рекомендації, як складати тести, але головна їх мета – практична. Тобто, кожна техніка тест-дизайну дає практичні поради – як правильно організувати процес тестування. Тому, важливо не просто вивчити техніку, а й спробувати проробити її на практиці. Тест дизайн (Test Design) – етап процесу тестування програмного забезпечення, на якому проектуються та створюються тестові випадки, що відповідають заданим раніше цілям та критеріям тестування. Виявлення та виправлення дефектів не допоможуть, якщо створена система не підходить користувачеві та не задовольняє його очікуванням та потребам.
Це моя інтерпретація отриманих знань та досвіду, що не претендує на унікальність чи незаперечну істину. Однак я вважаю, що це робочий підхід, який дає практичні та зрозумілі рекомендації. Для прикладу в цій статті ми візьмемо програму для обчислення віку людини. Якщо ви вважаєте, що я використала замало даних чи зробила це занадто просто, то це нормально, бо я не вводила в контекст багато різних даних, щоб все було максимально зрозумілим. Аналізуючи кожен можливий варіант позитивних і негативних значень, потрібно визначити результат або набір результатів для кожного варіанту на основі правил.
Комірки, позначені ~ символом, означають, що ми можемо підставити будь-яке інше значення параметру, оскільки всі пари значень параметру вже покриті в попередніх тестах. Розглянемо кроки тест-аналізу фічі на етапі декомпозиції на прикладі Slack-застосунку і такої фічі як створення облікового запису користувача. Параметри — це властивості або характеристики об’єкта, вони визначають конкретні умови, поведінку або конфігурації, пов’язані із цим об’єктом.
Ви вже могли читати мої статті на DOU про те, як я шукала роботу в ІТ та як пройшов мій перший рік в ІТ. Ти можеш використовувати будь-яку з них чи, навіть, створити свій власний метод. Тестування взаємодії між кількома класами, функціями, модулями. Техніка “Капелюхи / ролі” чимось схожа на техніку складання тест кейсів по Use Case. Це сценарій взаємодії користувача із системою для досягнення певної мети. Цей метод особливо корисний, коли вимоги документуються у вигляді блок-схем або бізнес-правил з твердженнями на кшталт «якщо A і B істинні, то виконайте дію C».
Вибір між одним чи іншим підходом залежить від рівня деталізації, необхідного для проєкту, проте двонаправлена матриця рекомендована для safety-critical програмного забезпечення. Це однонаправлена (one-directional) матриця, яка використовує лише половину матриці, де зелені клітинки показують наявність зв’язків між елементами. За необхідності можна додати примітки до клітинок з деталями кожної залежності. Матриця складається з рядків і стовпців, де кожен рядок і стовпець представляє об’єкт/епік (або інший елемент, який використовується для декомпозиції), а колір клітинки вказує чи є залежність між ними. Тому наступним важливим кроком є аналіз взаємозв’язків, де ми виявляємо зв’язки між об’єктами/епіками, аналізуємо, як вони взаємодіють один з одним. А якщо є ще 5 валют, які підтримують один із трьох типів транспорту, це вже не здається дрібницею.
Кожен з цих сценаріїв представляє різні ситуації взаємодії з програмою та допомагає впевнитися, що програма коректно обробляє всі можливі сценарії використання дати народження. Пам’ятаю, як передивлялась певні відео декілька разів, щоб зрозуміти деякі з технік. Тому я розписала основні з них (часто використовувані), наводячи приклади. Організатори мінікурсу залишаються на зв’язку з учасниками впродовж всього навчання.
Аналіз граничних значень (Boundary Value Analysis) – це техніка перевірки поведінки продукту на крайніх (граничних) значеннях вхідних даних. Граничне тестування також може включати тести, що перевіряють поведінку системи на вхідних даних, що виходять за допустимий діапазон значень. При цьому система повинна певним (заздалегідь обумовленим) способом обробляти такі ситуації. Наприклад, за допомогою виняткової ситуації або повідомлення про помилку. Тест дизайн – це етап процесу тестування гри, на якому проектуються та створюються тестові випадки (тест кейси), відповідно до визначених раніше критеріїв якості та цілей тестування. Просто кажучи, завдання тестувальника зводиться до того, щоб використовуючи різні стратегії та техніки тест дизайну, створити набір тестових випадків, що забезпечує оптимальну перевірку гри, що тестується.