План уроку:
Види тестування
- за запуском коду на виконання;
- за доступом до коду та архітектури застосунку;
- за рівнем деталізації застосунку;
- за рівнем автоматизації;
- за очікуваним результатом;
- за ступенем важливості функцій, що тестуються;
- за цілями та завданнями;
Рівні тестування
Практика
Види тестування
За запуском коду на виконання
Статичне тестування — це процес, який зазвичай асоціюють із аналізом документації чи програмного коду, тобто не на запущеному ПЗ.
Динамічне тестування - це процес тестування, що відбувається над працюючим ПЗ. Цей вид тестування не може бути здійснений без запуску застосунку.
Позитивні та Негативні тести
Позитивне тестування – дозволяє перевірити, чи працює система в нормальних умовах так, як задумувалося.
Позитивні тести – перевіряють, що те, що має працювати - працює.
Негативне тестування – гарантує, що програма продовжить роботу у разі помилки або непередбаченої поведінки.
Негативні тести – перевіряють реакцію програми на невалідні дані/поведінку.
За змінами
Регресійне тестування (regression testing) – це тестування відсутності деградації системи. Простіше кажучи – тести, які проходили раніше, повинні пройти і зараз.
Повторне тестування (re-testing) – виконання тест-кейсів, які раніше виявили дефекти, з метою підтвердження усунення дефектів.
Функціональне тестування
Функціональне тестування визначає, чи виконує програмне забезпечення свої прямі функції (що система робить)
При натисканні педалі газу автомобіль прискорюється
При натисканні на кнопку запалюється ліхтарик
Нефункціональне тестування
Нефункціональне тестування перевіряє те як система функціонує – швидко, безпечно,
зручно і так далі.
Автомобіль має прискорятись до 100 км/год за 6 сек
Ліхтарик має працювати від одного заряду 6 годин
Нефункціональне тестування. Безпека
• Аутентифікація (authentication) — процедура перевірки справжності, наприклад перевірка справжності користувача шляхом порівняння введеного ним пароля з паролем, збереженим у базі даних.
Авторизація (authorization) — надання певній особі або групі осіб прав на виконання певних дій.
Нефункціональне тестування. Продуктивність
Performance testing – тестування, яке проводиться з метою визначення, наскільки еффективно працює
програмне забезпечення або його частина під певним навантаженням певний час.
Тестування навантаження - автоматизоване тестування, що імітує роботу заданої кількості бізнес-користувачів на одному ресурсі
Стрес-тестування - дозволяє перевірити, наскільки застосунок та система в цілому працездатні в умовах підвищення інтенсивності виконання операцій до дуже високих значень. Зазвичай перевіряє ступінь стійкості ПЗ
Тестування стабільності - перевірка працездатності застосунку при тривалому тестуванні із середнім рівнем навантаження. Таке тестування може тривати від декількох годин до декількох днів
Нефункціональне тестування. Продуктивність
Performance testing – тестування, яке проводиться з метою визначення, наскільки еффективно працює програмне забезпечення або його частина під певним навантаженням певний час.
Нефункціональне тестування. GUI
Тестування графічного інтерфейсу користувача (GUI testing) – це процес тестування графічного користувацького інтерфейсу продукту
Навігація
Форматування
Колір та шрифти
Смуги прокручування
Елементи управління та вирівнювання
Орфографія та граматика
Клавіші за замовчуванням та поєднання клавіш
Поведінка елементів керування
Контраст
Зображення
Повідомлення про помилки
Нефункціональне тестування. Інстальованість
Конфігураційне тестування (Configuration testing) — спеціальний вид тестування, спрямований на перевірку роботи програмного забезпечення при різних конфігураціях системи (заявлених платформах, драйверах, що підтримуються, при різних конфігураціях комп'ютерів тощо).
Тестування локалізації (Localization testing) — тестування, спрямоване на перевірку коректності та якості адаптації продукту до використання тією чи іншою мовою з урахуванням національних та культурних особливостей.
Нефункціональне тестування. Тестування Інтернаціоналізації
Тестування інтернаціоналізації (internationalization testing, i18n testing) – тестування, спрямоване на перевірку готовності продукту до роботи з використанням різних мов і з урахуванням різних національних та культурних особливостей.
UTF кодування
Формат дат
Орієнтація тексту
Вбудовані елементи/строки
Нефункціональне тестування. Тестування локалізації
Тестування локалізації (Localization testing, l10n testing) — тестування, спрямоване на перевірку коректності та якості адаптації продукту до використання тією чи іншою мовою з урахуванням національних та культурних особливостей.
Переклад
Юридичні особливості
Валюта
Кольорова палітра та символи
Розкладка клавіатури
Рівні тестування
Компонентний
Інтеграційний
Системний
Приймальний
За рівнем системи. Рівні тестування
Модульне (компонентне) тестування (Unit testing) — перевіряються окремі невеликі частини застосунку.
Інтеграційне тестування (Integration testing) — перевіряється взаємодія між декількома частинами застосунку.
Системне тестування (System Testing) — застосунок перевіряється як єдине ціле.
Приймальне тестування (Acceptance testing) — тестування, спрямоване на перевірку застосунку з точки зору кінцевого користувача/замовника та винесення рішення про те, чи приймає замовник роботу у виконавця (проєктної команди).
За ступенем важливості функцій, що тестуються
Димове тестування (Smoke testing) — перевірка критичного функціональналу програмного продукту.
Sanity testing — це базова перевірка працездатності певного функціоналу
Тестування критичного шляху (critical path testing) — перевірка функціональності, що використовується типовими користувачами у повсякденній діяльності.
Розширене тестування (extended testing) — перевірка всієї заявленої функціональності.
За доступом до коду та архітектури застосунку
Тестування не передбачає знання внутрішнього влаштування компоненту чи системи
Тестування, засноване на аналізі внутрішньої структури компоненту чи системи
Комбінація White Box та Black Box підходів, доступ до внутрішньої структури та алгоритмів роботи ПЗ для написання максимально ефективних тест-кейсів
Q&A
Дякую всім за заняття!🙌🏻
❗️🎓Урок 5. Види тестування. Рівні тестування
Нагадую, що дедлайн здачі домашніх робіт – до наступного уроку.
Якщо виникають складнощі, пишіть, допоможу із задоволенням 😌
Запис лекції тренер опублікує трохи пізніше 🖥
Не забудьте повторити матеріал та підготуватися до наступного уроку📚
Успіху і до зустрічі!🤩
Опис завдання:
Валідатор паролів повинен перевіряти вхідний пароль на відповідність заданим правилам безпеки.
Правила безпеки для паролів:
Пароль повинен містити щонайменше 8 символів.
Пароль повинен містити щонайменше одну велику літеру.
Пароль повинен містити щонайменше одну малу літеру.
Пароль повинен містити щонайменше одну цифру.
Пароль може містити спеціальні символи (!, @, #, $, %, ^, &, *).
Завдання:
Визначте класи еквівалентності для валідатора паролів на основі правил безпеки.