- •Верификация программ
- •Метод верификации на основе программных функций
- •Верификация структурированных программ
- •Правильность элементарных программ
- •Лемма о сведении итерационных программ к рекурсивным
- •Методика верификации циклических программ типа while-do, do-until, do-while-do
- •Верификация программы for-do
- •Метод индуктивных утверждений
- •Функциональные методы тестирования метод функциональных диаграмм
- •Тестирование программ
- •1 Шаг. Тщательный анализ спецификаций. Определение причин и следствий.
- •2Шаг. Изобразить функциональную диаграмму («и-или» граф)
- •Метод эквивалентного разбиения
- •Метод анализа граничных условий (значений)
- •Структурные методы поектирования тестов
- •Метод покрытия операторов
- •Метод покрытия переходов
- •Метод покрытия условий
- •Метод комбинаторного покрытия условий
- •Общая стратегия проектирования тестов
- •Тестирование модульных программ
- •Монолитное тестирование методом «большого удара»
- •Пошаговое тестирование
- •Тестирование потоков данных
- •Особенности тестирования циклов
- •1. Простые циклы
- •2. Вложенные циклы
- •3. Объединенные циклы
- •4. Неструктурированные циклы
- •Тестирование правильности
- •Тестирование объектно-ориентированных программ
- •Расширение области применения тестирования про ооп
- •Изменение методики при объектно-ориентированном тестировании
- •Особенности тестирования объектно-ориентированных «модулей»
- •Тестирование объектно-ориентированной интеграции
- •Объектно-ориентированное тестирование правильности
- •Проектирование объектно-ориентированных тестов
- •Построение тестов, основанное на ошибках
- •Построение тестов, основанных на сценариях
- •Способы тестирования содержания классов
Тестирование программ
Тестирование (испытание) – это установление соответствия программы заданным требованиям и программным документам.
Испытание программы является одним из этапов работ общего процесса разработки программы. Цель тестирования состоит в выявлении наличия ошибок в программе. Тестирование способно обнаружить ошибки, но не способно доказать их отсутствие. Затраты на тестирование достигают 50% от общих затрат на разработку программы.
Тестирование определяет качество программного продукта.
Кроме того, тестирование определяет стоимость и длительность разработки ПО.
Резюме: Необходимо создавать методы и средства, позволяющие достигать максимального качества программ при реальных ограничениях на длительность тестирования и связанные с этим затраты. Тестирование – проблема экономическая!
Тестирование – необычный процесс. Этот процесс разрушительный, т. к. цель тестовика- заставить программу ошибаться.
Этапы тестирования
-проектирование тестов
Тест – это набор значений входных данных и соответствующий им набор значений всех выходных данных.
-выполнение тестов программой на компьютере
-анализ результатов тестирования
Главное – это проектирование тестов!!!
Имеется широкий спектр подходов к проектированию тестов.
Тестирование по отношению к спецификациям (без программы)
Тестирование по отношению к тексту программы (не заботясь о спецификациях)
Сторонники левой крайности: проверяют все возможные комбинации значений на входе программы. Сторонники правой крайности: проверяют каждый путь, каждую ветвь программы.
Методы тестирования модулей
Основные подходы (стратегии) к проектированию тестов:
-ФУНКЦИОНАЛЬНЫЙ (принцип «черного ящика»)
-СТРУКТУРНЫЙ (принцип «белого ящика»)
Функциональные методы тестирования базируются на рассмотрении программы как черного ящика. При этом внутренняя структура программы не учитывается. Теты составляются по внешним спецификациям программы.
В структурных методах для построения тестов используется информация о структуре (блок-схемы) программы.
Функциональные методы тестирования метод функциональных диаграмм
Основывается на использовании спецификации программы, написанных на естественном языке.
Метод дает неплохие тесты, не страдающие избыточностью. Кроме того, обнаруживается неполнота и неоднозначность в исходных данных и спецификациях.
Идея метода:
Метод предполагает анализ содержания внешних спецификаций и перевод их на язык логических отношений между входными данными(ситуациями) и выходными данными(эффектами), представленными в форме логической диаграммы(«и-или» графа) называемой функциональной диаграммой.
ПРИМЕР ИСПОЛЬЗОВАНИЯ
Программа: вводит 8 чисел, первые 4 – длины сторон четырехугольника, а остальные – углы. программа передает сообщение о том, какой этот четырехугольник: квадрат, ромб, прямоугольник, параллелограмм.
a1, a2, …, an
Программа
…
ситуация- это условие или комбинация условий, которые могут возникнуть на входе
эффект –это есть видимый результат(действие)
СИТУАЦИЯ |
ЭФФЕКТ |
|
Напечатать сообщение «Это не 4х угольник» |
все углы = 90 |
Напечатать сообщение «Это квадрат» |
… |
… |
Шаги метода
