Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Метод функциональных диаграмм



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

Функциональная диаграмма представляет собой формальный язык, при помощи которого описывается спецификация программы, написанная на естественном языке.

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

I этап. Спецификация программы разбивается на рабочие участки. Этот этап эквивалентен выделению классов эквивалентности.

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

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

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

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

VI этап. Столбцы таблицы решений преобразуются в тесты.

Для построения функциональной диаграммы используется формальный язык, состоящий из следующих символов:

а) -обозначает входное, выходное условие или некоторые промежуточное состояние с номером n. Каждое из этих условий может быть либо в состоянии 1 - выполнено, либо в состоянии 0 - не выполнено. Состояние узла n будем далее обозначать .

б)                 - тождество, ;

в)                 - отрицание, ;


г)                 - дизъюнкция,  ;   

 


д)                 -конъюнкция, ;

 

 

Обозначения, накладывающие ограничения на входные условия:

а)                -исключение, ;


б)                 -одно и только одно, означает, что из этих

трех причин только одна может быть в состоянии 1.

 

 

в)                       -включает, означает, что по крайней мере

                          одна из причин должна быть в состоянии 1;

 


г)                       -требует, означает, что если причина 1 принимает состояние 1, то и причина 2 должна быть в состоянии 1.

Ограничения на выходные условия:

а)                       -скрывает, означает, что если следствие 1

       имеет состояние 1, то следствие 2 должно принять значение 0.   

Процедура генерации таблицы решений с ограниченными входами заключается в следующем:

1) выбирается некоторое следствие, которое должно быть в состоянии 1;

2) находятся все комбинации причин с учетом ограничений, которые установят это следствие в единицу. Эта процедура производится путем прокладывания из этого следствия обратной трассы через диаграмму;

3) заполняются столбцы в таблице решений для каждой комбинации причин;

4) для каждой комбинации причин определяются состояния всех других следствий и помещаются в таблицу решений.

При выполнении этих шагов необходимо руководствоваться следующими положениями.

 Положение 1. Если обратная трасса прокладывается через узел дизъюнкции, выход которого должен принимать значение "1", то одновременно не следует устанавливать в "1" более одного входа в этот узел. Такое ограничение на установку входных значений называется чувствительностью пути. Цель данного правила – избежать пропуска определенных ошибок из-за того, что одна причина может быть замаскирована другой.

Положение 2. Если обратная трасса прокладывается через узел конъюнкции, выход которого должен принимать значение "0", то все комбинации входов, приводящие выход в ноль, должны быть в конечном счете перечислены. Однако, когда исследуется ситуация, где один вход есть "0", а несколько других входов есть "1", не обязательно перечислять все условия, при которых остальные входы могут быть "1".

Положение 3. Если обратная трасса прокладывается через узел конъюнкции, выход которого должен быть "0", то необходимо указать лишь одно условие, согласно которому все входы одновременно являются нулями.

Рассмотрим пример построения тестов методом функциональных диаграмм для программы, имеющей следующую спецификацию.

Пусть на вход программы подается строка, состоящая из двух символов. Первый символ должен быть буквой «А» или «В». Второй символ должен быть цифрой. В этом случае производится преобразование системы: обновление файлов. Если первый символ неправильный, выдается сообщение "Х12". Если второй символ неправильный, выдается сообщение "Х13".

Выпишем причины и следствия и пронумеруем их.

Причины:
1. Первый символ "А"
2. Первый символ "В"
3. Второй символ - цифра
Следствия:
10. Обновление файлов
11. "Х12"
12. "Х13"

Функциональная диаграмма будет иметь вид:

 

 

 


Следующим шагом является генерация с таблицы с ограниченными входами.

Тесты

1 2 3 4
1 1 0 0 0
2 0 1 0 1
3 1 1 1 0
4 1 1 0 1
10 1 1 0 0
11 0 0 1 0
12 0 0 0 1
  A1 B5 D3 AB

 

Тестирование методом функциональных диаграмм имеет следующие преимущества:

1) метод функциональных диаграмм позволяет получить достаточно полный набор тестов, не перегружая при этом этот набор избыточными тестами;

2) метод функциональных диаграмм позволяет выявить неполноту спецификации программы.

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






Предположения об ошибках

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


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 906; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.023 с.)
Главная | Случайная страница | Обратная связь