Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Тема 13. Тестування програмного забезпечення.





Тема 13. Тестування програмного забезпечення.

 

 

Кількість годин: 4 годин.

13.1. Основні поняття та визначення. Статичні методи тестування. Динамічні методи тестування. Види тестування програмного забезпечення. Опис видів тестування – 2 год.

13.2. Рівні тестування. Класифікація помилок і методи їхнього пошуку. Процес тестування за життєвим циклом. Інженерія керування тестуванням – 2 год.

 

 

Література:

1. Лавріщева К.М. Програмна інженерія.–К.– 2008.–319 с., с.165-181.

 

 

Основні поняття та визначення. Статичні методи тестування. Динамічні методи тестування. Види тестування програмного забезпечення. Опис видів тестування

 

Тестування – це метод виявлення помилок у ПС шляхом виконання вихідного коду на тестових даних, виявлення різних помилок, дефектів, відмовлень і збоїв, викликаних нерегулярними, аномальними ситуаціями або аварійним припиненням роботи системи.

Перевірка правильності методом тестування базується на функціональних тестах або наборах тестів, які створюються шляхом опису функцій і проектної інформації на процесах ЖЦ з урахуванням вимог, сформульованих на процесі аналізу предметної області.

Тести підбираються так, щоб вони охоплювали як найбільше типів ситуацій алгоритму програми.

Історично першим видом тестування було налагодження.

Налагодження – це перевірка опису програмного об'єкта на МП з метою виявлення в ньому помилок і подальшого їхнього усунення. Помилки виявляються компіляторами при їхньому синтаксичному контролі. Після цього проводиться верифікація з перевірки правильності функцій коду і валідація з перевірки відповідності продукту заданим вимогам.



Мета тестування – перевірка виконання реалізованих функцій відповідно до їхньої специфікації.

 

Статичні методи тестування

Статичні методи використовуються при проведенні інспекцій і розгляді специфікацій компонентів без їхнього виконання.

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

 

Динамічні методи тестування

Динамічні методи застосовуються в процесі безпосереднього виконання програми. Коректність програмного засобу перевіряється на множині тестів або наборів підготовлених вхідних даних. При прогоні кожного тесту збираються та аналізуються дані про відмови та збої в роботі програми.

Вони базуються на графовій структурі, що пов'язує причини помилок з очікуваними реакціями на них. У процесі тестування накопичується інформація про помилки, що використовується при оцінці показників надійності і якості ПС.

Тестування«білої скриньки»

Відома: внутрішня структура програми.

Досліджуються: внутрішні елементи програми і зв'язки між ними. (оператори, рішення, умови…)

Об'єктом тестування є внутрішня поведінка програми. Перевіряється коректність побудови всіх елементів програми та правильність їхньої взаємодії один з одним.

Особливості тестування «білої скриньки»

Зазвичай тестування «білої скриньки» засноване на аналізі керуючої структури програми. Програма вважається повністю перевіреною, якщо проведено вичерпне тестування маршрутів (шляхів) її графа управління.

У цьому випадку формуються тестові варіанти, в яких:

Гарантується перевірка всіх незалежних маршрутів програми.

Знаходяться гілки True, False для всіх логічних рішень.

Виконуються всі цикли (у межах їхніх кордонів та діапазонів).

Аналізується правильність внутрішніх структур даних.

Недоліки тестування «білої скриньки»:

· може бути дуже велика кількість незалежних маршрутів.

· повне тестування маршрутів не гарантує відповідності програми вихідним вимогам до неї.

· У програмі можуть бути пропущені деякі маршрути.

· Не можна виявити помилки, поява яких залежить від даних.

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

Тестування «чорної скриньки»

Відомі: функції програми.

Досліджується: робота кожної функції на всій області визначення.

Основне місце програми тестів «чорної скриньки» — інтерфейс ПЗ.

 

Ці тести демонструють: як виконуються функції програми, як приймаються вихідні дані, як виробляються результати, як зберігається цілісність зовнішньої інформації.

Тестування «чорної скриньки» (функціональне тестування) дозволяє отримати комбінації вхідних даних, які забезпечують повну перевірку всіх функціональних вимог до програми.

Для тестування методом «чорної скриньки» потрібно мати:

Набір даних, які призведуть до аномалій у поведінці програми) та які демонструють дефекти програми (назвемо його OT).

Будь-який спосіб тестування «чорної скриньки» повинен:

Тестування «чорної скриньки» забезпечує пошук наступних категорій помилок:

· Некоректних чи відсутніх функцій;

· Помилок інтерфейсу;

· Помилок у зовнішніх структурах даних або в доступі до зовнішньої бази даних;

· Помилок характеристик (необхідна ємність пам'яті і т. д.);

· Помилок ініціалізації та завершення.

Подібні категорії помилок способами «білої скриньки» не виявляються.

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

«Біла скринька» базується на структурі програми, у випадку ж «чорної скриньки» про структуру програми нічого невідомо. Для виконання тестування за допомогою цих «скриньок» відомими вважаються виконувані функції, входи (вхідні дані) і виходи (вихідні дані), а також логіка обробки програми і опису документації.

 

Види тестування ПЗ

Всі види тестування програмного забезпечення, в залежності від переслідуваних цілей, можна умовно розділити на наступні групи:

1. Функціональні

2. Нефункціональні

3. Пов'язані зі змінами

Функціональні види тестування

Функціональні тести базуються на функціях і особливостях, а також взаємодії з іншими системами, і можуть бути представлені на всіх рівнях тестування: компонентному або модульному (Component / Unit testing), інтеграційному (Integration testing), системному (System testing) і приймальному (Acceptance testing). Функціональні види тестування розглядають зовнішню поведінку системи. Далі перераховані одні з найпоширеніших видів функціональних тестів:

• Функціональне тестування (Functional testing)

• Тестування безпеки (Security and Access Control Testing)

• Тестування взаємодії (Interoperability Testing)

Теми для доповіді

1. Компонентне (модульне) тестування (Component / Unit testing)

2. Інтеграційне тестування (Integration testing),

3. Системне тестування (System testing)

4. Приймальне тестування (Acceptance testing).

5. Тестування безпеки (Security and Access Control Testing)

6. Тестування взаємодії (Interoperability Testing)

7. Тестування навантаження (Performance and Load Testing)

8. Стресове тестування (Stress Testing)

9. Тестування стабільності або надійності (Stability / Reliability Testing)

10. Об'ємне тестування (Volume Testing)

11. Тестування установки (Installation testing)

12. Тестування зручності користування (Usability Testing)

13. Тестування на відмову і відновлення (Failover and Recovery Testing)

14. Конфігураційне тестування (Configuration Testing)

15. Димове тестування (Smoke Testing)

16. Регресійне тестування (Regression Testing)

17. Тестування збірки (Build Verification Test)

18. Санітарне тестування (перевірка узгодженості/справності) (Sanity Testing)

19. Тестування ad hoc або інтуїтивне тестування (ad hoc testing)

20. Альфа-тестування (alpha testing)

21. Бета-тестування (beta testing)

22. Тестування інтерфейсу користувача (UI testing)

23. Тестування локалізації (localization testing)

24. Тестування сумісності (compatibility testing)

Рівні тестування

Модульне тестування - набір тестів, які перевіряють функціональність певного розділу коду, зазвичай на функціональному рівні; спрямоване на усунення помилок проектування.

Інтеграційне тестування - працює над виявленням дефектів уінтерфейсах та взаємодії інтегрованих компонентів (модулів).

Рівні інтеграційного тестування:

· компонентний інтеграційний рівень (Component Integration testing). Перевіряється взаємодія між компонентами системи після проведення компонентного тестування;

· системний інтеграційний рівень (System Integration Testing). Перевіряється взаємодія між різними системами після проведення системного тестування.

Підходи до інтеграційного тестування:

· знизу вгору (Bottom Up Integration). Усі низькорівневі модулі, процедури або функції збираються воєдино і потім тестуються.

· зверху вниз (Top Down Integration). У першу чергу тестуються компоненти верхнього рівня ієрархії об'єктів з використанням заглушок замість компонентів більш низького рівня;

· великий вибух («Big Bang» Integration). Усі або практично усі розроблені модулі збираються разом у вигляді закінченої системи або її основної частини й потім проводиться інтеграційне тестування.

Системне тестування - перевіряє, чи система інтегрується в будь-яку зовнішню систему (або системи) відповідно до системних вимог.

Альфа-тестування — імітація реальної роботи з системою, проводиться на ранній стадії розробки продукту.

Бета-тестування — майже готова версія продукту з метою виявлення максимального числа помилок в його роботі для їх подальшого усунення перед остаточним виходом (релізом) продукту.

Тестові скрипти - пишуться для перевірки компонентів, у яких найбільш висока ймовірність появи відмов або вартість помилки дуже велика.

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

Приймальне тестування - виконується на основі набору типових тестових випадків та сценаріїв, розроблених на основі вимог до даного додатку; триває до тих пір, доки замовник не виносить рішення про відправлення програми на доопрацювання або видачі додатка.

 

Баг Репорт (Bug Report)

Короткий опис (Summary) Короткий опис проблеми, явно вказує на причину і тип помилкової ситуації.
Проект(Project) Назва проекту що тестується
Компонент додатку(Component) Назва частини і функції продукту що тестується
Номер версії(Version) Версія на якій була знайдена помилка
Серйозність(Severity) Найбільш поширена п'ятирівнева система градації серйозності дефекту: S1 Блокуючий (Blocker) S4 Незначний (Minor) S2 Критичний (Critical) S5 Тривіальний (Trivial) S3 Значний (Major)
Приорітет(Priority) Приорітет дефекту: P1 Високий (High) P2 Средній (Medium) P3 Низький (Low)
Статус(Status) Статус бага. Залежить від процедури, що використовуєте і життєвого циклу багу (bug workflow and life cycle)
Автор(Author) Автор баг репорта
Призначений на (Assigned To) Ім'я співробітника, призначеного на вирішення проблеми
Кроки відтворення (Steps to Reproduce) Кроки, за якими можна легко відтворити ситуацію, яка призвела до помилки.
Фактичний Результат (Result) Результат, отриманий після проходження кроків до відтворення
Очікуваний результат (Expected Result) Очікуваний правильний результат

Контрольні питання до теми:

1. Формальні специфікації. Класифікація мов формальної специфікації.

2. Доведення. Базові методи доведення правильності програм.

3. Верифікація і валідація програм.

4. Поняття тестування.

5. Статичні методи тестування.

6. Динамічні методи тестування.

7. Метод "білої скриньки".

8. Метод "чорної скриньки".

9. Метод "сірої скриньки".

10. Види тестування.

11. Рівні тестування.

12. Класифікація помилок і методи їхнього пошуку

13. Процес тестування за життєвим циклом

14. Інженерія керування тестуванням

Самостійна робота №3

Тема 13. Тестування програмного забезпечення.

 

 

Кількість годин: 4 годин.

13.1. Основні поняття та визначення. Статичні методи тестування. Динамічні методи тестування. Види тестування програмного забезпечення. Опис видів тестування – 2 год.

13.2. Рівні тестування. Класифікація помилок і методи їхнього пошуку. Процес тестування за життєвим циклом. Інженерія керування тестуванням – 2 год.

 

 

Література:

1. Лавріщева К.М. Програмна інженерія.–К.– 2008.–319 с., с.165-181.

 

 









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.