Похожие презентации:
Тестування програмних систем
1. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Лекція 10. Тестування програмних системТестування – невід’ємна складова процесу
програмної інженерії, один із методів
подальшого покращення якості ПЗ шляхом
виявлення залишкових дефектів, не виявлених
раніше іншими видами перевірок.
Термін «тестування» в широкому сенсі – будь-яка
дія по аналізу ПЗ.
У вузькому сенсі – процес виконання програми з
метою виявлення помилок. Відлагодження
(відладка, debugging) – діагностика точної
природи відомих помилок.
2. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Історичний прогрес розуміння цілей тестування:До 1956 – орієнтація на відлагодження.
1957 – 1978 – орієнтація на встановлення відповідності
ПС вихідним вимогам.
1979 – 1982 – орієнтація на виявлення дефектів, які
залишились після реалізації.
1983 – 1987 – орієнтація на аналіз, перевірку та
тестування з метою оцінки якості ПС на усіх стадіях
розробки.
1988 – 1995 – інтеграція дій по перевірці і тестуванню в
життєвий цикл ПС з метою попередження появи дефектів
на усіх стадіях розробки.
Після появи в 1995 році міжнародних стандартів якості ПС
усі дії пов’язані із створенням ПС представлені у вигляді
окремих процесів ЖЦ.
3. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Тестування полягає в динамічній перевірці поведінкипрограми на скінченій множині тестових даних,
спеціальним чином вибраних із нескінченного
вхідного простору, на відповідність встановленій
очікуваній поведінці (проблема оракула).
Два основних підходи до виконання тестування:
деструктивний і конструктивний
Ключові питання тестування:
Критерії вибору тестів / правила зупинки.
Ефективність тестування / цілі тестування.
Тестування для виявлення дефектів.
Проблема оракула.
Теоретичні і практичні обмеження тестування.
Проблема шляхів, що ніколи не виконуватимуться.
4. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
4 основних рівня тестування:Модульне тестування – перевірка функціональності
об’єктів в ізоляції один від одного.
Інтеграційне тестування – перевірка правильності
взаємодії між програмними об’єктами,
протестованими автономно.
Тестування ПЗ – перевірка функціонування
інтегрованої версії ПЗ в модельованому середовищі.
Системне тестування – оцінка якості взаємодії ПЗ з
іншими програмними системами (у тому числі не
програмними, компонентами системи).
5. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Види випробовувань ПС.Попередні випробовування – вищий рівень
формального тестування ПС, який виконується в
середовищі розробки.
Приймальні випробовування проводяться виключно
в контексті вимог замовника з його безпосередньою
участю і в середовищі експлуатації.
Тестування інсталяції.
Альфа і бета тестування (внутрішні і зовнішні
користувачі).
Регресійне тестування.
6. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Види тестування характеристик ПС:Функціональне тестування.
Тестування безпеки.
Тестування зручності застосування (ергономічності).
Тестування технічних характеристик.
Тестування на надійність.
Тестування продуктивності:
Тестування навантаження (load testing).
Тестування на стійкість (stress testing).
Тестування об’єму (volume testing).
Тестування конфігурації.
Порівнювальне тестування (в ітераційних моделях розробки).
Тестування відновлення.
Розробка керована тестами (екстремальне програмування).
7. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Класифікація методів тестуванняМетоди, засновані на досвіді та інтуїції (Ad hoc).
Методи, засновані на специфікації – таблиці рішень
для проектування тестів, функціональні діаграми,
метод еквівалентного розбиття, аналіз граничних
значень, тестування переходів між станами
програми. Генерація тестів по формальним
специфікаціям, випадкове тестування.
Методи, засновані на аналізі коду (структурні) –
тестування потоку керування, тестування потоку
даних.
Методи направленого пошуку помилок – припущення
про помилки, відсів помилок, мутаційне тестування.
8. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Методи основані на аналізі очікуваного використання(сценарії можливого використання).
Методи, які враховують специфіку програмної системи:
Тестування ООП (розробка тест-кейсів,
тестування внутрішньої структури класу,
взаємодії класів).
Веб-застосувань.
Графічного інтерфейсу користувача.
Протоколів.
Систем реального часу.
Критичних систем (аналіз критичності, аналіз
дерев подій, дерев відмов).
9. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Тестування веб-програм проводиться на 3-х рівнях:Інтерфейс користувача.
Сервер.
Протоколи взаємодії.
Складаються контрольні питання для перевірки
зручності застосування веб-програм по наступним
розділам:
Архітектура і навігація сайту.
Планування та дизайн сайту.
Зміст сайту.
Форми і взаємодія.
Графіка.
Кольори.
Оформлення тексту.
Стійкість до помилок.
Платформа і особливості реалізації.
10. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Класифікація дефектів по серйозності:Критичний рівень – дефект призводить до відмови
усієї системи.
Серйозний – дефект призводить до відмови
компонент ПЗ, втрати даних.
Значний – дефект призводить до отримання
некоректних, неповних результатів або торкається
незручності використання системи.
Незначний – дефект не призводить до відмов, не
погіршує зручність використання і його можна легко
обійти.
Не дефект – помилки в тестах, відмова апаратного
або програмного середовища.
11. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Типи дефектів:Логічні.
Обчислювальні.
Інтерфейсу.
Обробки даних.
Вводу даних.
Обробки помилок.
12. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Основні метрики підрахунку дефектів:Кількість дефектів.
Щільність дефектів.
Інтенсивність відмов.
Середній час між відмовами.
Динаміка виконання тестів (відношення кількості
виконаних до запланованих).
Динаміка виявлення дефектів (відношення кількості
тестів, що виявили дефекти до загальної).
Загальний стан виконання тестування (відношення
кількості успішно пройдених тестів до загальної
кількості).
13. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Критерії завершення тестуванняНайбільш розповсюджений – вичерпано час відведений на
тестування.
Згідно стандартів можна сформулювати комплексний
критерій завершення тестування:
Усі заплановані функціональні тести пройшли.
Структурне тестування було виконано набором тестів,
який забезпечив 100% покриття рядків, 80% покриття
логічних умов і 100% покриття викликів процедур.
Нема відкритих дефектів серйозності 1, 2, 3 і щільність
дефектів нижче ніж 0.5 дефектів на KSLOC.
Інтенсивність виявлення відмов не вище 40 нових відмов
на 1000 годин тестування.
Тривалість неперервного функціонування ПС без відмови
досягає 100 годин.
14. ПРОЦЕСИ ТА СИСТЕМИ ПІДТРИМКИ ЯКОСТІ ПРОГРАМНИХ СИСТЕМ
Структура процесу тестування (виконавці):Створення групи тестування (керівник проекту).
Аналіз ризиків (керівник проекту, керівник групи
тестування, аналітики проекту, група якості).
Визначення цілей тестування (керівник групи тестування,
тестери, група якості).
Розробка плану тестування (тестери).
Розробка тестів (розробники, тестери).
Автономне і інтеграційне тестування (розробники,
тестери).
Тестування ПЗ (тестери).
Системне тестування (тестери).
Аналіз результатів тестування (керівник групи тестування,
тестери, група якості).
Регресійне тестування (тестери).