Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lecture_Marta.doc
Скачиваний:
53
Добавлен:
12.02.2016
Размер:
2.11 Mб
Скачать

6. Види тестів

До тестування відносяться два поняття: помилка і невдача.

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

Невдача - неправильне функціонування системи під час її роботи.

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

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

Тести ПЗ можуть класифікуватися з точки зору головної мети або техніки тестування.

Класифікація з точки зору техніки тестування.

Існують наступні тести:

  • статичні тести, засновані тільки на аналізі коду. Вони здійснюються програмістами.

  • динамічні тести, які складаються з виконання різних частин коду і порівняння їх результатів з правильними.

Статистичні тести

Статистичні тести циклічні і проводяться відповідно до строго визначеного плану:

  • генерування випадкових вхідних даних, які відповідають обраним правилам

  • отримання результатів правильно працюючої системи, що має ті ж дані

  • запуск системи і порівняння її результатів з вже отриманими.

Статистичні тести легко виконувати автономно. Якщо вірні початкові обмеження і визначена початкова продуктивність системи, тестування може виконуватися автономно.

Недолік - ненадійність. Причина часто полягає в неправильних обмеженнях даних - вони можуть не відповідати реальним.

Заходи надійності, засновані на статистиці помилок:

  • Вірогідність невдачі транзакції

  • Частота невдачі - кількість помилок за проміжок часу. Застосовується до систем без транзакцій

  • Середній час між виконаннями

  • Доступність - вірогідність того, що система у будь-який момент часу буде доступна користувачеві. Обчислюється відношенням часу, впродовж якого система була доступна, до часу тестування.

Знаходження помилок

Динамічні тести знаходження помилок можна класифікувати таким чином:

  • Функціональні тести - отримання знань про вимоги тестованих функцій. Система розглядається як чорний ящик, який виконує функції невідомим чином.

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

Тестування ступеня ухвалення

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

7. Процес тестування

Різні частини тестуються на різних етапах розробки. Типовий тестований елемент показаний в таблиці 11.8.1.

Тестований елемент

Опис тестування

Продуктивність

Тестується продуктивність програми і її функцій.

Інтерфейс

Тестуються інтерфейси на відповідність вимогам.

Властивості організації

Тестується: логістика, організація, зручність використання, складність вхідних інструкцій, вивід на екран, якість повідомлень, якість повідомлень про помилки, рівень якості допоміжних файлів.

Використання ресурсів

Тестуються використання одиниць пам'яті: пам'ять, диски.

Безпека

Тестується гнучкість інструкцій, конфіденційність, приватність, цілісність, доступність. Тестуються паролі, доступ до файлів, захищеність від атак ззовні.

Переносимість

Тестується можливість роботи у інших середовищах, режимах встановлення, з іншими бібліотеками, режимами графіки (в різних версіях Windows та Unix).

Надійність

Вимірюється середній час між помилками.

Підтримування

Вимірюється середній час відновлення програми від помилок, тобто проміжок часу, починаючи з виникнення помилки і закінчуючи відновленим станом програми.

Безпечність ПЗ

Оптимізація наслідків збою, наприклад, втрати електроенергії.

Можливість модифікації

Властивоті роботи ПЗ вимірюються шляхом змін припущень та умов.

Навантаження на ПЗ

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

Масштабованість програми

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

Повнота вимог

Тестуються формулювання вимог

Прийнятність програми

Тестування ступеню задоволення кінцевого користувача

Якість документації

Тестування якості документації.

Таблиця 11.8.1. Типові тестовані елементи.

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

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

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

Вважається, що програма тестується в типових і виняткових ситуаціях.

Перевага статистичного тестування полягає в можливості його автономної роботи, що дає змогу провести багатократне тестування. Хоча ця методика не дуже ефективна.

Тестування методом прозорого ящика

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

Зазвичай програмісти самі пишуть якийсь код тестування в програмі. Відладчики дозволяють програмістові спостерігати за програмою крок за кроком.

Дані і програми тестування повинні бути приготовані заздалегідь. Вони повинні бути спроектовані таким чином, щоб кожна програмна функція перевірялася хоч би один раз.

Недоліком є неможливість визначити недостачу функції.

Тестування методом чорного ящика

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]