Методы тестирования Впрактике тестирования используются методы: статический, детерминированный, стохастический и в реальном масштабе времени. Статическое тестирование - проводится путем просмотра текста программы, проверки правил структурного построения программ обработки данных. Детерминированное тестирование - это многократное выполнение программы с использованием определенных, специальным образом подобранных тестовых наборов данных. Стохастическое тестирование предполагает использование в качестве исходных данных множество случайных величин соответствующими распределениями. Для сравнения полученных результатов используются также распределения случайных величин. Тестирование в реальном масштабе времени осуществляется для ППП, предназначенных для работы в системах реального времени. Впроцессе такого тестирования проверяются результаты обработки исходных данных с учетом времени их поступления, длительности и приоритетности обработки, динамики использования памяти и взаимодействия с другими программами.
Детерминированное тестирование основывается на двух подходах: структурное тестирование и функциональное тестирование стратегии белого ящика: покрытие операторов ; покрытие узлов ветвления (покрытие решений) ; покрытие условий; комбинаторное покрытие условий/решений. стратегии черного ящика: эквивалентное разбиение; анализ граничных значений ; применение функциональных диаграмм;
Метод покрытия операторов требует выполнение каждого оператора программы, по крайней мере, один раз. Покрытие решений - каждое направление перехода должно быть реализовано по крайней мере один раз. Покрытие условий. В этом случае записывают число тестов, достаточное для того, чтобы все возможные результаты каждого условия в решении выполнялись, по крайней мере, один раз. Комбинаторное покрытие условий. Он требует создания такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении и все точки входа выполнялись, по крайней мере, один раз.
Разработка тестов методом эквивалентного разбиения осуществляется в два этапа: 1) выделение классов эквивалентности; 2) построение тестов. Классы эквивалентности выделяются путем выбора каждого входного условия ( обычно это предложение или фраза в спецификации) и разбиением его на две или более групп. различают два типа классов эквивалентности: правильные классы эквивалентности, представляющие правильные входные данные программы, и неправильные классы эквивалентности, представляющие все другие возможные состояния условий ( т. е. ошибочные входные значения ). Граничные условия – это ситуации, возникающие непосредственно на, выше или ниже границ входных и выходных классов эквивалентности.
Функциональная диаграмма представляет собой формальный язык, на который транслируется спецификация, написанная на естественном языке. Построение тестов этим методом осуществляется в несколько этапов. 1. Спецификация разбивается на « рабочие» участки. 2. В спецификации определяются причины и следствия. Причина есть отдельное входное условие или класс эквивалентности входных условий. Следствие есть выходное условие или преобразование системы ( остаточное действие, которое входное условие оказывает на состояние программы или системы ). Каждым причине и следствию приписывается отдельный номер. 3. Анализируется семантическое содержание спецификации, которая преобразуется в булевский граф, связывающий причины и следствия. Это и есть функциональная диаграмма. 4. Диаграмма снабжается примечаниями, задающими ограничения и описывающими комбинации причин и ( или ) следствий, которые являются невозможными из -за синтаксических или внешних ограничений. 5. Путем методического прослеживания состояний условий диаграммы она преобразуется в таблицу решений с ограниченными входами. Каждый столбец таблицы решений соответствует тесту. 6. Столбцы таблицы решений преобразуются в тесты.