Починаємо опрацьовувати сілабус. Розглянемо що таке тестування, типові цілі тестування, тестування і дебаг.
Що таке тестування?
Програми, програмні системи є невід’ємною частиною життя, від бізнес-додатків (наприклад, банківська справа) до споживчих продуктів (наприклад, автомобілі). Більшість людей стикалися з програмним забезпеченням, яке не працювало належним чином. Програмне забезпечення, яке не працює належним чином, може призвести до багатьох проблем, у тому числі до втрати грошей, часу чи ділової репутації, і навіть до травм чи смерті. Тестування програмного забезпечення – це спосіб оцінити якість програмного забезпечення та знизити ризик збою в роботі програмного забезпечення.
Тестування ПЗ – це набір видів діяльності щоб знайти дефекти та оцінити якість програмних артефактів. Ці артефакти, коли тестуються, стають тестовими об’єктами.Поширене неправильне сприйняття тестування полягає в тому, що воно складається лише з запуску тестів, тобто перевірці функціонування програмного забезпечення та результатів його роботи. Насправді, тестування програмного забезпечення – це процес, який включає багато різних стадій; виконання тесту (включаючи перевірку результатів) є лише одним із цих видів діяльності. Процес тестування також включає такі стадії, як планування тестування, аналіз, проектування та впровадження тестів, звітування про хід і результати тестування, а також оцінка якості об’єкта тестування.
Тестування може включати запуск на виконання компонента або системи, що тестується; таке тестування називається динамічним. Інше тестування не передбачає виконання компонента або системи, що тестується; таке тестування називається статичним тестуванням. Отже, тестування також включає перевірку робочих продуктів, таких як вимоги, історії користувачів і вихідний код.
Інше поширене неправильне сприйняття тестування полягає в тому, що воно повністю зосереджено на перевірці вимог, історій користувачів чи інших специфікацій. Хоча тестування включає перевірку відповідності системи визначеним вимогам, воно також передбачає валідацію, яка перевіряє, чи відповідатиме система потребам користувачів та інших зацікавлених сторін у своєму робочому середовищі.
І звісно, що тестування організовується та виконується по-різному в різних життєвих циклах розробки.
Тестування не є виключно технічною діяльністю. .Воно також потребує належного планування, керування, моніторингу і контролю.
Тестувальники використовують інструменти,але важливо пам’ятати, що тестування є інтелектуальною діяльністю, що потребує від тестувальників наявності спеціалізованих знань, використання аналітичних навичок, а також застосовувати критичне та системне мислення.
Типові цілі тестування
Для будь-якого конкретного проекту цілі тестування можуть включати (версія 3.1):
- Запобігти дефектам, оцінити робочі продукти, такі як вимоги, історії користувачів, дизайн і код
- Перевірити, чи виконано всі зазначені вимоги
- Перевірити, чи тестовий об’єкт закінчений, і перевірити, чи він працює так, як очікують користувачі та інші зацікавлені сторони
- Сформувати впевненість у рівні якості об’єкта тестування
- Знаходити дефекти та збої, знижуючи рівень ризику неналежної якості програмного забезпечення
- Надавати зацікавленим сторонам достатньо інформації, щоб вони могли приймати обґрунтовані рішення, особливо щодо рівня якості об’єкта тестування
- Дотримання договірних, правових або нормативних вимог або стандартів та/або для перевірки відповідності об’єкта випробувань таким вимогам або стандартам
Типовими цілями тестування є (версія 4.0):
- Оцінка робочих продуктів, таких як вимоги, історії користувачів, проекти та код
- Ініціювання збоїв і виявлення дефектів
- Забезпечення необхідного покриття об’єкта тестування
- Зниження рівня ризику неналежної якості програмного забезпечення
- Перевірка виконання визначених вимог
- Перевірка того, що тестовий об’єкт відповідає договірним, правовим і нормативним вимогам
- Надання інформації зацікавленим сторонам, щоб вони могли приймати обґрунтовані рішення
- Формування впевненості в якості об’єкта тестування
- Перевірка того, чи тестовий об’єкт завершений і чи працює, як очікують зацікавлені сторони
Цілі тестування можуть відрізнятися залежно від контексту компонента, який тестується чи системи, рівня тестування та моделі життєвого циклу розробки програмного забезпечення. Ці відмінності можуть включати, наприклад:
- Під час тестування компонентів однією з цілей може бути виявлення якомога більшої кількості збоїв, щоб завчасно виявити та усунути основні дефекти. Іншою метою може бути збільшення охоплення коду компонентних тестів.
- Під час приймального тестування однією з цілей може бути підтвердження того, що система працює належним чином і задовольняє вимоги. Ще однією метою цього тестування може бути надання інформації зацікавленим сторонам про ризик випуску системи в певний час.
Тестування і дебаг (налагодження) (версія 3.1)
Тестування та налагодження різні або нетотожні. Виконання тестів може виявити збої, спричинені дефектами програмного забезпечення. Налагодження — це частина розробки, яка знаходить, аналізує та виправляє такі дефекти. Подальше тестування підтвердження перевіряє, чи виправлення усунули дефекти. У деяких випадках тестувальники несуть відповідальність за початковий тест і остаточний тест підтвердження, тоді як розробники виконують налагодження, пов’язані компоненти та тестування інтеграції компонентів. Однак у розробці Agile та в деяких інших життєвих циклах розробки програмного забезпечення тестувальники можуть брати участь у налагодженні та тестуванні компонентів.
Стандарт ISO (ISO/IEC/IEEE 29119-1) містить додаткову інформацію про концепції тестування програмного забезпечення.
Тестування і дебаг (налагодження) (версія 4.0)
Тестування та налагодження є окремими видами діяльності. Тестування може викликати збої, спричинені дефектами програмного забезпечення (динамічне тестування), або безпосередньо знаходити дефекти в тестовому об’єкті (статичне тестування).
Коли динамічне тестування викликає збій, налагодження стосується пошуку причин цього збою (дефектів), аналізу цих причин та їх усунення. Типовий процес налагодження в цьому випадку включає:
- Відтворення невдачі
- Діагностика (виявлення першопричини)
- Усунення причини
Подальше тестування підтвердження (confirmation testing) перевіряє, чи виправлення вирішили проблему. Бажано, щоб підтверджувальне тестування проводилося тією ж особою, яка проводила початковий тест. Також можна виконати наступне регресійне тестування, щоб перевірити, чи виправлення спричиняють збої в інших частинах тестового об’єкта.
Коли статичне тестування визначає дефект, налагодження спрямоване на його усунення. Немає потреби у відтворенні чи діагностиці, оскільки статичне тестування безпосередньо виявляє дефекти і не може викликати збої.
В цьому відео починаємо працювати з секцією 1.1.
02:35 Що таке тестування?
14:45 Типові цілі тестування
24:09 Тестування і дебаг