Урок № 67. Поняття «бета-тест». Збір та аналіз відгуків

І. Опрацюйте теоретичний матеріал:

Сьогодні ми з вами розглянемо поняття «бета-тест» та навчимось  збирати і аналізувати відгуки користувачів програми.

Серед помилок, що виникають при роботі програми, виділяють такі помилки, що не повторюються, та стійкі, що виникають систематично. Помилки, що не повторюються, виникають з певних причин, серед яких неправильні дії користувача (зокрема, неправильне введення даних), збої в роботі апаратури, дії інших програм або операційної системи. Стійкі помилки виникають через неправильно написаний код програми, неправильні вхідні дані, невірний їх формат. В процесі налагодження вирішується завдання розробки програми і доведення її характеристик до значень, заданих вимогами документації.
В ході тестування оцінюють, наскільки програма відповідає вимогам, якими керувалися проектувальники та розробники, чи правильно реагує програма на усі можливі вхідні дані, чи виконуються функції програми за прийнятний час, чи сумісна програма з програмним забезпеченням та операційними системами, чи відповідає вона задачам замовника. Тестування ПЗ може надавати об’єктивну, незалежну інформацію про якість ПЗ, ризики відмови, як для користувачів так і для замовників. Будь-яке тестування вказує тільки на наявність помилок в програмі, але ніяк не на їх відсутність. Налагодження – це процес виявлення природи помилок, їх локалізації та усунення. Спочатку процес налагодження був суміщений з тестуванням.

Тестування – це одна з технік контролю якості, що включає в себе активності з планування робіт (Test Management), проектування тестів (Test Design), виконання тестування ( Test Execution) і аналізу отриманих результатів (Test Analysis).
План тестування (Test Plan) – це документ, що описує весь обсяг робіт з тестування, починаючи з опису об’єкта, стратегії, розкладу, критеріїв початку і закінчення тестування, до необхідного в процесі роботи обладнання, спеціальних знань, а також оцінки ризиків з варіантами їх вирішення.
Тест дизайн (Test Design) – це етап процесу тестування ПО, на якому проектуються і створюються тестові випадки (тест кейси), відповідно до визначених раніше критеріями якості та цілями тестування.
Тестовий випадок (Test Case) – це артефакт, що описує сукупність кроків, конкретних умов і параметрів, необхідних для перевірки реалізації функції або її частини.
Баг / Дефект Репорт (Bug Report) – це документ, що описує ситуацію або послідовність дій, що призвела до некоректної роботи об’єкта тестування, із зазначенням причин і очікуваного результату.

Багами зазвичай називаються помилки, що виявляються на стадії роботи програми (а не при проектуванні чи написанні коду).
Походження слова «баг» пов’язують з подією 9 вересня 1947 року, коли вчені Гарвардського університету, що тестували обчислювальну машину Mark II Aiken Relay Calculator, знайшли комаху, що застрягла між контактами електромеханічного реле й Грейс Хоппер вперше вжила цей термін. Знайдена комаха була вклеєна до технічного щоденника, з супроводжувальним надписом: «First actual case of bug being found» (англ. «перший випадок у практиці, коли було знайдено комаху»).
Тепер 9 вересня – день тестувальника.

В комп’ютерних іграх виділяють наступні категорії багів:
візуальні (visual) – розрив зображення на екрані, відсутність текстур, клиппинг (обрізання областей зображення) та ін .;
аудіо (audio) – відсутність озвучення, спотворення звуку, занадто низька / висока гучність;
баги дизайну рівнів (level design) – невидима стіна, відсутність геометрії (текстура присутній, але 3D моделі немає, що дозволяє пройти крізь стіну);
штучний інтелект (artificial intelligence) – гравець не в змозі рухатися правильно по ходу гри, не рухається зовсім, занадто часто вмирає, не може відкрити двері;
баги фізики (physics) – об’єкти ширяють у повітрі, коли не повинні, об’єкт не ламається, об’єкт не зупиняється після того, як його штовхнули, неможливість скласти об’єкти в купу;
стабільність (stability) – фризи, креш (чорний екран), Crash to Desktop (ПК), неможливо завантажити рівень, гра не відповідає;
дефекти продуктивності (performance) – найнижчий показник ФПС (проблеми з анімацією), занадто довго вантажаться рівні, мінімальна підтримувана конфігурація ПК не може відтворити гру, гра дуже довго встановлюється, дуже часто гра зупиняється, щоб завантажити дані;
нетворкінг (networking) – проблеми із з’єднанням, неможливо приєднатися до запрошення, лаги (затримки у відповіді сервера на дії гравця), невидимі гравці, помилки з підрахунком очок.

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

Виділяють декілька етапів тестування гри:
Пре-альфа: гра є прототипом. Інтерфейс завершений, але не всі функції реалізовані. На цьому етапі гра не публікується.
Альфа: розробка гри добігла кінця, гра перевірена зсередини на наявність помилок і проблем.
Бета: гра є стабільною і випущена для обмеженої кількості користувачів. Мета полягає в тому, щоб отримати відгуки про гру і внести відповідні зміни в неї.
Реліз-кандидат: на основі відгуків бета-тесту вносяться зміни в гру і виправляються помилки. На цьому етапі функціональність радикально не змінюється. Реліз-кандидат виставляється для широкого кола гравців.
Випуск: все працює, гру випущено для загального користування.

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

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

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

ІІ. Виконайте практичне завдання:

Протестуйте проєкт гри «Хрестики-нулики» та виправте виявленні помилки.
Лістинг “неправильної” гри “Хрестики-нулики” можна знайти клікнувши на даному посиланні.

Учням у яких немає можливості працювати з Python на комп’ютері можна складати програми у зошиті і надсилати для перевірки фотокопії своїх робіт. Для виконання практичної роботи можете використати онлайн систему https://techarge.in/online-python-compiler/

Виправлену гру “Хрести-нулики” надсилайте для перевірки в електронний щоденник або на електронну пошту kybedu@gmail.com (в темі повідомлення вкажіть своє прізвище, ім’я, клас)

ІІІ. Домашнє завдання: повторіть матеріал з теми “Алгоритми та програми”, підготуйтеся до контрольного тестування