- •I. Вступ.
- •Загальні поняття.
- •Основні визначення.
- •II. Основна частина.
- •Філософія тестування
- •Інтеграція модулів.
- •Висхідне тестування.
- •Низхідне тестування.
- •Модифікований низхідний метод
- •Метод великого стрибка.
- •Метод сандвіча
- •Модифікований метод сандвіча.
- •Порівняльна характеристика методів тестування.
- •III. Випробування програмних продуктів (аналіз).
- •Мета і особливості випробуванні.
- •Технологічна схема випробування.
- •Планерування і оцінка завершеності випробувань.
- •Стенди відладки і випробування програм.
- •IV. Сертифікація програмних продуктів.
- •Стандартизація систем якості.
- •Класифікація показників якості
- •Вибір номенклатури показників якості
- •Групи показників якості
- •Список використаної літератури:
- •Майерс. Мистецтво тестування програмного забезпечення.
- •Майерс. Надійність програмного забезпечення.
- •Кулаків. Управління якістю програмного забезпечення.
Модифікований низхідний метод
Низхідний підхід має ще один істотний недолік, що стосується повноти тестування. Передбачимо, що є велика програма і десь ближче до нижнього її рівня знаходиться модуль, призначений для обчислення коріння квадратного рівняння. Для заданих вхідних змінних А, В і З він вирішує рівняння .
При проектуванні і програмуванні модуля з такою функцією завжди слід розуміти, що квадратне рівняння може мати як дійсне, так і комплексне коріння. Для повної реализации цієї функції необхідно, аби результати могли бути действительными або комплексними числами (або, якщо дополнительные витрати на знаходження комплексного коріння не виправдані, модуль повинен принаймні повертати код помилки у разі, коли вхідні коефіцієнти задають рівняння з комплексним корінням). Передбачимо, що конкретний контекст, в якому використовується модуль, виключає комплексне коріння (тобто вызывающие модулі ніколи не задають вхідних параметрів, які привели б до комплексного коріння). При строго низхідному методі інколи буває неможливо тестувати модуль для випадку комплексных коріння (або тестувати помилкові умови). Можна попытаться виправдовувати це тим, що, оскільки таке рівняння ніколи не буде дано модулю, нікого не повинно турбувати, чи працює він і в цих випадках. Так, це байдуже зараз, але виявиться важливим в майбутньому, коли хтось спробує використовувати модуль в новій програмі або модифікувати стару програму так, що стануть можливими і комплексне коріння.
Ця проблема виявляється у всіляких формах. Застосовуючи низхідне тестування в точній відповідності з попереднім розділом, часто неможливо тестувати певні логічні умови, наприклад помилкові ситуації або захисні перевірки. Низхідний метод, крім того, робить складною або взагалі неможливою перевірку виняткових ситуацій в деякому модулі, якщо програма працює з ним лише в обмеженому контексте (це означає, що модуль ніколи не отримає досить повний набір вхідних значень). Навіть якщо тестування такої ситуации в принципі здійсненно, часто буває важко визначити, які саме потрібні тести, якщо вони вводяться в точці програми, віддаленої від місця перевірки відповідної умови.
Метод, званий модифікованим низхідним підходом, вирішує ці проблеми: потрібний, аби кожен модуль прошел автономне тестування перед підключенням до програми. Хоча це дійсно вирішує всі перераховані проблеми, тут требуются і драйвери, і заглушки для кожного модуля.
Метод великого стрибка.
Ймовірно, найпоширеніший підхід до інтеграції модулей — метод «великого стрибка». Відповідно до цього методу кожен модуль тестується автономно. Після закінчення тестування модулів вони інтегруються в систему все відразу.
Метод великого стрибка в порівнянні з іншими підходами имеет багато недоліків і мало достоїнств. Заглушки і драйвери необходимы для кожного модуля. Модулі не інтегруються до найостаннішого моменту, а це означає, що протягом довгого часу серйозні помилки в сполученнях можуть залишитися невиявленими. Метод великого стрибка значно ускладнює відладку.
Та все ж великий стрибок не завжди небажаний. Якщо программа мала і добре спроектирована, він може виявитися прийнятним. Проте для крупних програм метод великого стрибка зазвичай згубний.
