Составители:
Рубрика:
58
3.2.3. Применение функциональных диаграмм
Одним из недостатков анализа граничных значений и эквивалентно-
го разбиения является то, что они не исследуют комбинаций входных ус-
ловий. Например, пусть программа из приведенного выше примера не
выполняется, если произведение числа вопросов и числа студентов пре-
вышает некоторый предел (например, объем памяти). Такая ошибка не
обязательно будет обнаружена тестированием граничных значений.
Тестирование комбинаций входных условий – непростая задача, по-
скольку даже при построенном эквивалентном разбиении входных усло-
вий число комбинаций обычно астрономически велико. Если нет систе-
матического способа выбора подмножества входных условий, то, как
правило, выбирается произвольное подмножество, приводящее к неэф-
фективному тесту.
Метод функциональных диаграмм или
диаграмм причинно-
следственных связей [1] помогает систематически выбирать высокорезуль-
тативные тесты. Он дает полезный побочный эффект, так как позволяет
обнаруживать неполноту и неоднозначность исходных спецификаций.
Функциональная диаграмма представляет собой формальный язык,
на который транслируется спецификация, написанная на естественном
языке. Диаграмме можно сопоставить цифровую логическую цепь (ком-
бинаторную логическую сеть), но для
ее описания используется более
простая нотация (форма записи), чем обычная форма записи, принятая в
электронике. Для уяснения метода функциональных диаграмм вовсе не
обязательно знание электроники, но желательно понимание булевской
логики (т. е. логических операторов и, или и не). Построение тестов этим
методом осуществляется в несколько этапов.
1. Спецификация разбивается на «рабочие
» участки. Это связано с тем,
что функциональные диаграммы становятся слишком громоздкими
при применении данного метода к большим спецификациям. Напри-
мер, когда тестируется система разделения времени, рабочим участ-
ком может быть спецификация отдельной команды. При тестирова-
нии компилятора в качестве рабочего участка можно рассматривать
каждый отдельный оператор языка программирования.
2. В
спецификации определяются причины и следствия. Причина есть
отдельное входное условие или класс эквивалентности входных ус-
ловий. Следствие есть выходное условие или преобразование систе-
мы (остаточное действие, которое входное условие оказывает на со-
стояние программы или системы). Например, если сообщение про-
граммы приводит к обновлению основного файла, то изменение в
нем и
является преобразованием системы; подтверждающее сообще-
ние было бы выходным условием. Причины и следствия определяют-
3.2.3. Применение функциональных диаграмм Одним из недостатков анализа граничных значений и эквивалентно- го разбиения является то, что они не исследуют комбинаций входных ус- ловий. Например, пусть программа из приведенного выше примера не выполняется, если произведение числа вопросов и числа студентов пре- вышает некоторый предел (например, объем памяти). Такая ошибка не обязательно будет обнаружена тестированием граничных значений. Тестирование комбинаций входных условий – непростая задача, по- скольку даже при построенном эквивалентном разбиении входных усло- вий число комбинаций обычно астрономически велико. Если нет систе- матического способа выбора подмножества входных условий, то, как правило, выбирается произвольное подмножество, приводящее к неэф- фективному тесту. Метод функциональных диаграмм или диаграмм причинно- следственных связей [1] помогает систематически выбирать высокорезуль- тативные тесты. Он дает полезный побочный эффект, так как позволяет обнаруживать неполноту и неоднозначность исходных спецификаций. Функциональная диаграмма представляет собой формальный язык, на который транслируется спецификация, написанная на естественном языке. Диаграмме можно сопоставить цифровую логическую цепь (ком- бинаторную логическую сеть), но для ее описания используется более простая нотация (форма записи), чем обычная форма записи, принятая в электронике. Для уяснения метода функциональных диаграмм вовсе не обязательно знание электроники, но желательно понимание булевской логики (т. е. логических операторов и, или и не). Построение тестов этим методом осуществляется в несколько этапов. 1. Спецификация разбивается на «рабочие» участки. Это связано с тем, что функциональные диаграммы становятся слишком громоздкими при применении данного метода к большим спецификациям. Напри- мер, когда тестируется система разделения времени, рабочим участ- ком может быть спецификация отдельной команды. При тестирова- нии компилятора в качестве рабочего участка можно рассматривать каждый отдельный оператор языка программирования. 2. В спецификации определяются причины и следствия. Причина есть отдельное входное условие или класс эквивалентности входных ус- ловий. Следствие есть выходное условие или преобразование систе- мы (остаточное действие, которое входное условие оказывает на со- стояние программы или системы). Например, если сообщение про- граммы приводит к обновлению основного файла, то изменение в нем и является преобразованием системы; подтверждающее сообще- ние было бы выходным условием. Причины и следствия определяют- 58
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »