Похожие презентации:
Testuvannia_PZ_Petrov_Illya_Ihorovych
1.
Тестування ПЗQA
Елементи теорії та практичні приклади
BUG
Група 242/2
Петров Ілля Ігорович
OK
Навчальна презентація
Quality
Assurance
Тестування ПЗ
01
2.
Що таке тестування програмного забезпечення?Тестування допомагає знайти дефекти до того, як їх побачить користувач.
QA
Тестування ПЗ — процес перевірки програми,
щоб оцінити її якість, відповідність вимогам і
готовність до використання.
Вимоги
→
Перевірка
→
Головна ідея: не довести, що помилок немає, а
знайти ризики та слабкі місця.
Дефекти
→
Якість
• порівнює фактичний результат з очікуваним
• зменшує ризик помилок у релізі
• дає команді інформацію для прийняття рішень
Тестування ПЗ
02
3.
Мета та цінність тестуванняТестування економить час, гроші й репутацію продукту.
01 Зниження ризику
02 Зворотний зв’язок
03 Підтримка якості
04 Економія ресурсів
менше критичних помилок у продакшені
стабільна робота після змін
команда бачить реальний стан продукту
дефект дешевше виправити раніше
Приклад: баг у платежах краще знайти на тестовому середовищі, ніж після реальних оплат користувачів.
Тестування ПЗ
03
4.
Місце тестування у життєвому циклі розробкиQA бере участь не лише наприкінці, а протягом усього SDLC.
Вимоги
→
Дизайн
→
• на етапі вимог QA шукає неоднозначності
• під час розробки створюються автотести
• перед релізом виконується регресія
Тестування ПЗ
Розробка
→
Тестування
→
Реліз
→
Підтримка
• у Agile тестування йде в кожному спринті
• після релізу важливий моніторинг помилок
• якість — відповідальність усієї команди
04
5.
Верифікація та валідаціяДва близькі поняття, але різні питання.
Верифікація
«Чи правильно ми створюємо продукт?»
Перевірка відповідності документації, вимогам,
дизайну, стандартам коду.
Приклад: рев’ю вимог і коду до запуску програми.
DOC
Тестування ПЗ
Валідація
«Чи той продукт ми створили?»
Перевірка, чи продукт справді вирішує потребу
користувача.
Приклад: тестування форми реєстрації реальним
сценарієм користувача.
USER
05
6.
Рівні тестуванняВід маленької функції до всієї системи.
Unit
→
окремі функції або класи
Integration
→
взаємодія модулів
System
→
система цілком
Acceptance
→
прийняття замовником/користувачем
Приклад: для інтернет-магазину перевіряють функцію розрахунку ціни, зв’язок з оплатою, весь процес покупки і
приймання бізнесом.
Тестування ПЗ
06
7.
Види тестування: функціональне й нефункціональнеЩо система робить і наскільки добре вона це робить.
Функціональне тестування
Нефункціональне тестування
Перевіряє функції продукту: логін, пошук, оплата,
збереження даних.
Перевіряє швидкість, безпеку, зручність,
стабільність, сумісність.
Питання: чи працює потрібна можливість?
Питання: наскільки якісно це працює?
Login
Speed
Тестування ПЗ
Search
Security
07
8.
Ручне та автоматизоване тестуванняОбидва підходи потрібні, але для різних задач.
Ручне тестування
Автоматизоване тестування
QA вручну проходить сценарії, досліджує продукт,
перевіряє UX.
Скрипти самі перевіряють стабільні сценарії після
змін.
Добре для нового функціоналу, exploratory testing,
візуальної перевірки.
Добре для регресії, API, unit та повторюваних
перевірок.
MAN
Тестування ПЗ
AUTO
08
9.
Тест-кейс, чекліст і тест-планДокументація робить перевірку зрозумілою та повторюваною.
Тест-план
Чекліст
Тест-кейс
Що, коли, хто і як тестує. Описує
підхід, ресурси, ризики.
Короткий список перевірок без
детальних кроків.
Детальний сценарій: передумови,
кроки, очікуваний результат.
Приклад тест-кейсу: Реєстрація користувача
1. Відкрити форму реєстрації
2. Ввести валідний email і пароль
3. Натиснути «Створити акаунт»
Очікувано: акаунт створено, користувач бачить головну сторінку
Тестування ПЗ
09
10.
Життєвий цикл дефектуБаг проходить шлях від знаходження до закриття.
New
→
Assigned
→
In Progress
• дефект має опис, кроки відтворення та фактичний
результат
• важливі поля: severity, priority, environment
• після виправлення QA робить retest
Тестування ПЗ
→
Fixed
→
Retest
→
Closed
Bug: Не працює кнопка «Оплатити»
Steps: додати товар → перейти в кошик → натиснути кнопку
Actual: кнопка не реагує
Expected: відкривається сторінка оплати
10
11.
Black-box, white-box та gray-box підходиРізниця — у доступі до внутрішньої логіки системи.
B
W
G
Black-box
White-box
Gray-box
тестуємо поведінку без
знання коду
аналізуємо код, гілки, умови,
покриття
маємо часткове знання
архітектури або БД
Приклад: при black-box перевіряємо тільки форму логіну; при white-box дивимось, які умови в коді обробляють
помилки; при gray-box можемо додатково перевірити запис у базі даних.
Тестування ПЗ
11
12.
Техніки тест-дизайнуВони допомагають вибрати мінімум тестів з максимумом користі.
Класи еквівалентності
Ділимо дані на групи, де система має поводитись
однаково.
Граничні значення
Перевіряємо межі: мінімум, максимум і сусідні
значення.
Таблиці рішень
Зручно для правил із кількома умовами.
Попарне тестування
Комбінуємо параметри, не перевіряючи всі варіанти.
Приклад межі віку: дозволено 18–60 → тестуємо 17, 18, 19, 59, 60, 61
Тестування ПЗ
12
13.
Приклад unit-тестуванняUnit-тести перевіряють маленькі частини програми ізольовано.
• швидко запускаються
• добре показують помилку в конкретній функції
• часто пишуться розробниками
function sum(a, b) { return a + b; }
test("adds numbers", () => {
expect(sum(2, 3)).toBe(5);
});
Ідея: якщо після зміни коду функція sum(2, 3) поверне не 5, тест одразу покаже проблему.
Тестування ПЗ
13
14.
Приклад інтеграційного тестуванняПеревіряємо, чи модулі правильно працюють разом.
Frontend
→
• реєстрація створює користувача в БД
• API повертає правильний статус
• система надсилає лист підтвердження
Тестування ПЗ
API
→
База даних
→
Scenario: create account
POST /users → 201 Created
DB: user exists
Email: confirmation sent
14
15.
Приклад UI / end-to-end тестуE2E тест імітує дії користувача від початку до кінця.
Сценарій: купівля товару
1. Відкрити сайт
2. Знайти товар
3. Додати в кошик
4. Оформити замовлення
5. Перевірити повідомлення про успіх
await page.goto("/shop");
await page.fill("#search", "phone");
await page.click("text=Add to cart");
await page.click("text=Checkout");
await expect(page.locator(".success"))
.toBeVisible();
Плюс: показує реальну працездатність продукту. Мінус: повільніший і більш крихкий, ніж unit-тест.
Тестування ПЗ
15
16.
Нефункціональні перевіркиЯкість — це не лише наявність функції.
P Performance
час відповіді, навантаження, стабільність
U Usability
зручність, зрозумілість, доступність
Тестування ПЗ
S Security
авторизація, права доступу, захист даних
C Compatibility
браузери, ОС, мобільні пристрої
16
17.
Smoke, sanity та regression testingЦе різні перевірки перед релізом і після змін.
Smoke testing
Швидка перевірка: чи продукт
взагалі запускається і основні
функції доступні.
Sanity testing
Regression testing
Коротка перевірка конкретного
виправлення або невеликої зміни.
Перевірка, що нові зміни не
зламали старий функціонал.
Приклад: після зміни логіну треба перевірити не лише логін, а й реєстрацію, профіль і доступ до сторінок.
Тестування ПЗ
17
18.
Інструменти для тестуванняQA використовує різні інструменти залежно від задачі.
Test management
Bug tracking
TestRail, Zephyr, Qase
Jira, YouTrack, GitHub Issues
TOOLS
Тестування ПЗ
API testing
Postman, Swagger, Insomnia
Automation
Playwright, Selenium, Cypress
Performance
JMeter, k6, Lighthouse
18
19.
Метрики тестування та якостіМетрики допомагають бачити стан продукту, але не замінюють мислення QA.
Defect density
кількість дефектів на модуль або обсяг коду
Test coverage
яка частина вимог або коду покрита тестами
Pass rate
відсоток успішно пройдених тестів
Escaped defects
дефекти, які потрапили до користувачів
Важливо: 100% покриття тестами не гарантує відсутності помилок, але зменшує ризики.
Тестування ПЗ
19
20.
ВисновкиТестування ПЗ — основа якості сучасних програмних продуктів.
• тестування перевіряє відповідність вимогам і
реальним потребам
• існують різні рівні, види та техніки тестування
• документація дефектів допомагає команді швидше
виправляти помилки
• автоматизація корисна для повторюваних
перевірок
Головна думка:
якісний продукт створюється не
в кінці розробки, а на кожному її
етапі.
OK
Дякую за увагу!
Тестування ПЗ
20
Программное обеспечение