
- •По тестированию программного обеспечения
- •Способы обеспечения качества программного продукта
- •Организация тестирования
- •Спецификация программы
- •Разработка тестов
- •Управляющий граф программы
- •Основные проблемы тестирования
- •Критерии выбора тестов
- •Требования к идеальному критерию
- •Классы критериев
- •Структурные критерии
- •Функциональные критерии
- •Стохастические критерии
- •Мутационный критерий
- •Оценка покрытия программы и проекта
- •Методика интегральной оценки тестирования
- •Разновидности тестирования
- •Пользовательское тестирование
- •Качественные и количественные требования согласованности по скорости восприятия графической информации пользователем
- •Модульное тестирование
- •Особенности интеграционного тестирования для объектно-ориентированного программирования
- •Системное тестирование
- •Комбинирование уровней тестирования
- •Особенности индустриального тестирования
- •Автоматизация тестирования
- •Издержки тестирования
- •Качество программного продукта
- •Фазы процесса тестирования
- •Планирование тестирования
- •Типы тестирования
- •Подходы к разработке тестов
- •Документация и сопровождение тестов
- •Оценка качества тестов
- •Нагрузочное тестирование
- •Основные этапы нагрузочного тестирования
- •Основные виды нагрузочных тестов
- •Основные инструменты формирования нагрузки и сбора статистики при выполнении нагрузочного тестирования
- •Регрессионное тестирование
- •Цели и задачи регрессионного тестирования
- •Виды регрессионного тестирования
- •Управляемое регрессионное тестирование
- •Обоснование корректности метода отбора тестов
- •Классификация тестов при отборе
- •Возможности повторного использования тестов
- •Классификация выборочных методов
Спецификация программы
Программа работает правильно, если она работает и выдает результат в соответствии со спецификацией.
Спецификация — точное, однозначное, недвусмысленное задание для программиста, написанное постановщиком задачи.
Свойства спецификации: полнота, точность и понятность.
Спецификация программы, вычисляющей степень числа:
На вход программа принимает два параметра:
— число,
— степень;
Результат вычисления выводится на консоль;
Значения числа и степени должны быть целыми;
Значения числа, возводимого в степень, должны лежать в диапазоне
;
Значения степени должны лежать в диапазоне —
;
Если числа, подаваемые на вход, лежат за пределами указанных диапазонов, то должно выдаваться сообщение об ошибке.
Разработка тестов
Определение целей: какие части системы будут тестироваться, какие аспекты их работы будут выбраны для проверки и т.п.
Планирование: создание графика разработки тестов для каждой тестируемой подсистемы; оценка необходимых ресурсов и др.
Ручное или автоматизированное тестирование. Если автоматизированное, то ручная разработка тестов или генерация тестов.
Выполнение тестов — реализация тестовых циклов.
Анализ результатов.
Пример. Программа, вычисляющая степень числа. Определим области эквивалентности (классы, диапазоны возможных значений) входных параметров.
Для (числа, возводимого в степень):
(ошибочное)
(ошибочное)
— не число (ошибочное)
(корректное)
Для (степени числа):
(ошибочное)
(ошибочное)
— не число (ошибочное)
(корректное)
Управляющий граф программы
Управляющий граф программы — все возможные варианты путей выполнения кода программы.
Трасса — это «сохраненный путь» на управляющем графе программы (с записями о состояниях переменных в заданных точках).
Рисунок 5.1
Основные проблемы тестирования
Основная проблема тестирования — определение достаточности множества тестов для того, чтобы сделать вывод о правильности реализации программы, а также нахождение множества тестов, обладающего этим свойством.
Задача о выборе конечного набора тестов в общем случае неразрешима, в связи с чем для решения практических задач целесообразно нахождение частных случаев решения этой задачи.
Основное требование к тестам — программа на любом из них не должна зацикливаться. Заранее гарантировать останов на любом тесте нельзя — не существует общего метода решения этого вопроса.
Критерии выбора тестов
Критерий выбора тестов — решающее правило выбора состава и содержания проверок.
Для различных классов ПО в общем случае не существует полного и надежного критерия выбора совокупности тестов.
Целесообразно выполнять приближение к общему («идеальному») критерию через совокупность частных критериев.
Требования к идеальному критерию
Критерий должен быть достаточным, т.е. показывать, когда конечное множество тестов достаточно для тестирования программы;
Критерий должен быть полным, т.е. в случае ошибки должен существовать тест, который раскрывает ошибку;
Критерий должен быть надежным, т.е. любые два множества тестов, удовлетворяющих ему, одновременно должны раскрывать или не раскрывать ошибки программы;
Критерий должен быть легко проверяемым, например, вычисляемым на тестах.