Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
8
Добавлен:
30.05.2020
Размер:
73.73 Кб
Скачать

Тема: Системне тестування.

Мета: розглянути особливості системного тестування, основні критерії системного тестування.

ПЛАН

1 Системне тестування.

2 Категорії тестів системного тестування.

3 Регресійне тестування.

1. Системне тестування

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

Основне завдання системного тестування - виявлення дефектів, пов'язаних з роботою системи в цілому:

  • відсутня або неправильна функціональність

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

  • непередбачені комбінації даних користувацького рівня

  • несумісність з оточенням

  • непередбачені сценарії використання

  • незручність у застосуванні тощо.

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

2. Категорії тестів системного тестування:

  1. Повнота вирішення функціональних завдань.

  2. Стресове тестування - на граничних обсягах навантаження вхідного потоку.

  3. Коректність використання ресурсів (витік пам'яті, повернення ресурсів).

  4. Оцінка продуктивності.

  5. Ефективність захисту від перекручування даних і некоректних дій.

  6. Перевірка інсталяції і конфігурації на різних платформах.

  7. Коректність документації

Інший приклад поділу на категорії:

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

  • Тестування продуктивності (performance testing)

  • Стресове тестування (stress testing)

  • Навантажувальне тестування (load testing)

  • HP LoadRunner

  • Тестування зручності використання (usability testing)

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

  • Тестування безпеки (security testing)

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

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

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

3. Регресійне тестування.

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

Головна проблема регресійного тестування - вибір між повним і частковим перетестуванням і поповненням тестових наборів. При частковому перетестуванні контролюються тільки ті частини проекту, які пов'язані з зміненими компонентами.

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

Приклад регресійного тестування

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

У свою чергу тестувальник, перевіряючи внесені програмістом зміни, повинен:

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

  • Спробувати відтворити помилку яким-небудь іншим способом.

  • Протестувати наслідки виправлень. Можливо, що внесені виправлення привнесли помилку (наведену помилку) в код, який до цього справно працював.

Комбінування рівнів тестування

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

Таблиця 7.1 Характеристики модульного, інтеграційного та системного тестування

Модульне

Інтеграційне

Системне

Типи дефектів

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

Інтерфейсні дефекти, такі як невірне трактування параметрів і їх формат, невірне використання системних ресурсів і засобів комунікації, тощо.

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

Необхідність у системі тестування

Так

Так

Ні (*)

Ціна розробки системи тестування

Низька

Низька до помірної

Помірна до високої або неприйнятною

Ціна процесу тестування, тобто розробки, прогону і аналізу тестів

Низька

Низька

Висока

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

Контрольні питання

  1. В чому полягає відмінність інтеграційного і модульного видів тестування від системного?

  2. Що саме аналізує системне тестування?

  3. Який метод тестування застосовується при тестування системи в цілому?

  4. На які категорії можна поділити тести системного тестування?

  5. Які частини програмного комплексу тестуються в кожному з названих випадків?

  6. Що таке регресійне тестування?

  7. Опишіть порядок дій при виконанні регресійного тестування.

  8. З якою метою можуть комбінуватися рівні тестування? Чого можна досягти за рахунок комбінування?

4

Соседние файлы в папке Тестування