Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОС_Технология_разработки_ПО.doc
Скачиваний:
14
Добавлен:
26.09.2019
Размер:
252.42 Кб
Скачать

Методы функционального тестирования: эквивалентное разбиение, анализ граничных значений, анализ причинно-следственных связей, предположение об ошибке.

Метод эквивалентного разбиения

Разработка тестов методом эквивалентного разбиения осуществляется в два этапа:

а) выделение класса эквивалентности;

б) построение тестов.

Классы эквивалентности выделяются путем выбора каждого входного условия (обычно это предложение или фраза в спецификации) и разбиением его на две или более групп. Для выполнения этой операции используют таблицу следующего вида:

Входные условия

Правильные классы эквивалентности

Неправильные классы эквивалентности

Здесь - правильные классы эквивалентности соответствуют правильным входным данным программы, а неправильные классы эквивалентности представляют все другие возможные состояния входных условий. Построение тестов. Этот процесс включает в себя:

- назначение каждому классу эквивалентности уникального номера;

- проектирование новых тестов, каждый из которых покрывает как можно большее число непокрытых правильных классов эквивалентности, пока все правильные классы эквивалентности не будут покрыты тестами;

- запись тестов, каждый из которых покрывает один и только один из непокрытых неправильных классов эквивалентности. Каждый неправильный класс эквивалентности должен быть покрыт индивидуальным тестом. Причина этого состоит в том, что определенные проверки с ошибочными входами скрывают или заменяют другие ошибки с ошибочными входами.

Метод анализа граничных значений

Опыт показывает, что тесты, исследующие граничные условия, приносят большую пользу, чем тесты, которые их не исследуют.

Определение: граничные условия это ситуации, возникающие непосредственно на, выше или ниже границ входных и выходных классов эквивалентности.

Метод тестирования таблицы решений

Тестирование ТР заключается в том, что проектируется такое количество тестов, которое позволяет покрыть все возможные комбинации условий.

В заключении рассмотрим вопрос об областях применения методов стратегии ‘черного ящика’.

Обращает на себя внимание тот факт, что все методы рассматриваются на разных примерах. Это не является случайностью, так как не любой метод тестирования спецификаций может быть эффективно применен для разрабатываемой программы. Методы эквивалентного разбиения и функциональных диаграмм, как правило, применяются при разработке языковых процессоров, трансляторов и т.п. Метод граничных условий применяется при тестировании программ, осуществляющих статистическую обработку входной информации. Метод тестирования внешних спецификаций может быть применен везде, где в качестве спецификаций процессов обработки используются таблицы или деревья решений /8/.

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

35. Основные положения метода эквивалентного разбиения.

Исчерпывающее входное тестирование программы невозможно, реально приходится ограничиваться использованием небольшого подмножества всех возможных входных данных. Исходя из этого:

а) каждый тест должен включать столько различных входных условий, сколько это возможно, с тем чтобы минимизировать общее число тестов;

б) необходимо пытаться разбить входную область программы на конечное число классов эквивалентности так, чтобы можно было предположить, что каждый тест, являющийся представителем некоторого класса, эквивалентен любому другому тесту этого класса. Другими словами, если один тест класса эквивалентности обнаруживает ошибку, то следует ожидать, что и все другие тесты этого класса эквивалентности будут обнаруживать эту ошибку. И наоборот, если тест не обнаруживает ошибки, то следует ожидать, что ни один тест этого класса эквивалентности не будет обнаруживать ошибки. Внимание! Вы находитесь под паливом препода! Немедленно аккуратно уберите шпору. Сдайте листочек и идите домой. Отдыхайте. Дышите глубже. Вам пойдет это на пользу. Не хотите? Тогда читайте дальше.

Эти два положения составляют основу методологии тестирования по стратегии “черного ящика”, известного как эквивалентное разбиение. Второе положение используется для разработки набора “интересных условий”, которые должны быть протестированы, а первое - для разработки минимального набора тестов, покрывающих эти условия.

Разработка тестов методом эквивалентного разбиения осуществляется в два этапа:

а) выделение класса эквивалентности;

б)построение тестов.

36. Метод анализа граничных значений

Опыт показывает, что тесты, исследующие граничные условия, приносят большую пользу, чем тесты, которые их не исследуют.

Определение: граничные условия это ситуации, возникающие непосредственно на, выше или ниже границ входных и выходных классов эквивалентности.

Анализ граничных значений отличается от эквивалентного разбиения в двух отношениях:

- выбор любого элемента в классе эквивалентности в качестве представительного при анализе граничных значений осуществляется таким образом, чтобы проверить тестом каждую границу этого класса.

- при разработке тестов рассматривают не только входные условия (пространство входов), но и пространство результатов, то есть выходные классы эквивалентности.

Метод анализа граничных значений требует творческого подхода и специализации. Метод тестирования таблиц решений. Одним из методов тестирования программ по стратегии ‘черного ящика’ является метод функциональных диаграмм. Он хорошо вписывается в методы структурного анализа, реализующиеся в современных CASE-средствах разработки программного обеспечения. Этот метод требует предварительного изучения методики построения функциональных диаграмм, в силу чего является достаточно сложным для начинающих программистов. Однако интерес представляет тот факт, что метод сводится к получению в качестве промежуточного результата таблицы решений и составления тестов по этой таблице. Некоторые методики структурного анализа также включают тестирование спецификаций, полученных методами, обладающими недостаточными процедурными возможностями.