Найбільш трудомісткою частиною роботи по створенню нового програмного забезпечення є зовсім не написання коду, а процес його налагодження і виправлення помилок. Код пишуть люди, а люди можуть помилятися. За статистикою, на кожну тисячу рядків коду припадає від 5 до 15 помилок, і ось відлов цих помилок якраз займає левову частку часу. Саме для цього і існує налагодження.

Первинне налагодження коду йде паралельно з його написанням і займаються ним самі програмісти. У міру готовності окремі програмні модулі надходять до штатних тестувальників компанії розробника, які починають їх перевіряти за допомогою спеціальних систем автоматизованого тестування. Зазвичай, на вході програмного модуля задається певний набір параметрів і при цьому відомо, що повинно бути на виході при правильній роботі програми. Якщо на виході виявляться інші результати, тестувальник починає пошук помилок за допомогою відлагоджувача або з використанням оточення, яке допомагає швидко виявляти знайдені помилки.

Після того як окремі програмні модулі готові, вони об'єднуються в якесь єдине ціле. Це ще не повнофункціональна програма, але вона вже здатна працювати і виконувати, хоча б частково, свої головні завдання. Такий варіант програми і називають альфа-версією.

Альфа-тестування (alpha testing) – це вид приймального тестування, яке зазвичай проводиться на пізній стадії розробки продукту і включає імітацію реального використання продукту штатними розробниками або командою тестувальників. Зазвичай альфа-тестування полягає в систематичній перевірці всіх функцій програми з використанням технік тестування «білого ящика» і «чорного ящика».

Альфа- бета-тестирование

Переваги альфа-тестування:

  • Забезпечує краще уявлення про надійність програмного забезпечення на ранній стадії.
  • Допомагає моделювати поведінку користувача і навколишнє середовище в режимі реального часу.
  • Виявляє багато серйозних помилок.
  • Дає можливість раннього виявлення помилок щодо дизайну і функціональності.

Недоліки альфа-тестування:

  • Функціональність не може бути перевірена на всю глибину, оскільки програмне забезпечення все ще знаходиться на стадії розробки. Іноді розробники і тестувальники незадоволені результатами альфа-тестування.

Бета-тестування (beta testing) – інтенсивне використання майже готової версії продукту з метою виявлення максимального числа помилок в його роботі для їх подальшого усунення перед остаточним виходом (релізом) продукту на ринок, до масового споживача. Бета-тестування є реально працюючою версію програми з повним функціоналом. І завдання бета-тестів – оцінити можливості і стабільність роботи програми з точки зору її майбутніх користувачів.

На відміну від альфа-тестування, проведеного силами штатних розробників або тестувальників, бета-тестування передбачає залучення добровольців з числа звичайних майбутніх користувачів продукту, яким доступна згадана попередня версія продукту (так звана бета-версія).

Такими добровольцями (їх називають бета-тестерами) часто керує цікавість до нового продукту, задля якої вони цілком згодні миритися з можливістю випробувати наслідки ще не знайдених (а тому і не виправлених) помилок. Крім цікавості, мотивація може бути обумовлена ​​бажанням вплинути на процес розробки і в підсумку отримувати більше задоволення їхніх потреб в продукті. Дуже добре, якщо це люди, які вже мають досвід роботи з програмами такого типу, а ще краще – з попередньою версією цієї ж програми. Зазвичай у компаній вже є певне коло осіб, з якими вони постійно співпрацюють.

Бета-тестування може бути:

  • Закритим: Програма тестується в невеликій групі користувачів за запрошеннями.
  • Відкритим: Цей варіант дозволяє протестувати додаток в більшій групі і отримати великий обсяг зворотного зв'язку. Будь-який користувач зможе приєднатися до відкритого бета-тестування і відправити особистий відгук.

Відкрите бета-тестування, наприклад, може використовуватися як частина стратегії просування продукту на ринок (наприклад, безкоштовна роздача бета-версій дозволяє залучити широку увагу споживачів до остаточної дорогої версії продукту), а також для отримання попередніх відгуків про нього від широкого кола майбутніх користувачів.

Треба сказати, що розробники не відчувають нестачі в бажаючих взяти участь в такій роботі. Такого роду співпраця приносить користь обом сторонам, адже виправлення простіше зробити в процесі роботи, а не коли вона вже завершена, до того ж зауваження і побажання користувачів дозволяють зробити програмне забезпечення кращим і якіснішим.

Переваги бета-тестування:

  • Знижує ризик виходу продукту з ладу в процесі валідації клієнта.
  • Бета-тестування дозволяє компанії тестувати інфраструктуру після запуску.
  • Підвищує якість продукції завдяки зворотному зв'язку з клієнтами.
  • Є економічним методом збору даних в порівнянні з аналогічними методами.
  • Створює доброзичливість з клієнтами і підвищує задоволеність клієнтів.

Недоліки бета-тестування:

  • Управління тестуванням – проблема. У порівнянні з іншими типами тестування, які зазвичай виконуються всередині компанії в контрольованому середовищі, бета-тестування виконується в реальному світі, де у компанії рідко є контроль.
  • Пошук правильних користувачів бета-версії і підтримання їх участі може викликати труднощі.

Фази тестування

Альфа- бета-тестирование

Пре-альфа: програмне забезпечення є прототипом. Інтерфейс завершений, але не всі функції є такими. На цьому етапі програмне забезпечення не публікується.

Альфа: розробка програмного забезпечення підійшла до кінця і програмне забезпечення внутрішньо перевірено на наявність помилок і проблем.

Бета: програмне забезпечення стабільно і випущено обмеженому числу користувачів. Мета полягає в тому, щоб отримати відгуки клієнтів про продукт і внести відповідні зміни в програмне забезпечення.

Реліз-кандидат: на основі відгуків бета-тесту вносяться зміни в програмне забезпечення і перевіряється виправлення помилок. На цьому етапі функціональність радикально не змінюється. Реліз-кандидат також виставляється громадськості.

Випуск: все працює, програмне забезпечення випущено для загального користування.

Відмінності між альфа- і бета-тестуванням

Альфа-тестування Бета-тестування
Що робить
Підвищує якість продукту і забезпечує готовність до бета-тестування. Підвищує якість продукту, інтегрує дані про клієнта в готовий продукт і забезпечує готовність до випуску.
Коли проводиться
Ближче до кінця процесу розробки, коли продукт перебуває в майже повністю працездатному стані. Безпосередньо перед запуском.
Як довго проводиться
Зазвичай дуже довго протягом багатьох ітерацій. Альфа-тестування нерідко триває в 3-5 разів більше тривалості бета-тестування. Зазвичай тільки кілька тижнів (іноді до декількох місяців) з невеликою кількістю основних ітерацій.
Що включає в себе
Майже виключно включає перевірку якості ПЗ (баги, баги, баги). Зазвичай включає в себе маркетинг, підтримку, документацію, якість і інжиніринг (в основному, всю групу продуктів).
Хто проводить
Зазвичай виконується тестувальниками, розробниками, а іноді і «друзями і сім'єю». Фокусується на тестуванні, яке буде емулювати ~ 80% клієнтів. Випробувано в «реальному світі» з «реальними клієнтами» і зворотний зв'язок може охоплювати кожен елемент продукту.
Що отримують тестувальники
Безліч помилок, збоїв, відсутніх документів і функцій. Кілька помилок, менше збоїв, більшість документації і функцій завершені.
Налагодження
Більшість відомих критичних проблем виправлені, деякі функції можуть бути змінені або додані в результаті раннього зворотного зв'язку. Велика частина зібраної зворотного зв'язку розглядається і/або застосовується в майбутніх версіях продукту. Виконуються тільки важливі/критичні зміни.
Як тестують
Тестують за методологією, показниками ефективності. Хороший альфа-тест задає чітко визначені критерії і вимірює продукт по відношенню до цих орієнтирів. Тестують із застосуванням реальності та уяви. Бета-тести досліджують межі продукту, дозволяючи клієнтам досліджувати кожен елемент продукту в своєму рідному середовищі.
Результат
Є відмінне уявлення про те, як працює продукт і чи відповідає він критеріям дизайну (і чи «бета-готовий» він). Є уявлення про те, що ваш клієнт думає про продукт і про те, що він може відчувати, коли купує його.
Подальші дії
 Бета-тестування. Реліз.