Эквивалентное разбиение
Скачать 5.11 Mb.
|
1. Назовите цель разбиения исходных данных программ на классы эквивалентности. Приведите пример выделения классов эквивалентности для какой-либо задачи. ЭКВИВАЛЕНТНОЕ РАЗБИЕНИЕ. Основу метода составляют 2-а положения: Исходные данные программы необходимо разбить на конечное число классов эквивалентности. Так, чтобы можно было предположить, что каждый тест, являющийся представителем некоторого класса. Иными словами, если тест какого-либо класса обнаруживает ошибку, то предполагается, что все другие тесты этого класса эквивалентности тоже обнаружат эту ошибку, и наоборот. Каждый тест должен включать, по возможности, максимальное количество различных входных условий, что позволяет минимизировать общее число необходимых тестов. Первое положение используется для разработки наборов «интересных» условий, которые должны быть протестированы, а второе- для разработки минимального набора тестов. Разработка тестов методом эквивалентного разбиения осуществляется в 2-а этапа: Выделение классов эквивалентности. Построение тестов. ВЫДЕЛЕНИЕ КЛАССОВ ЭКВИВАЛЕНТНОСТИ. Классы эквивалентности выделяются путем выбора каждого входного условия (обычно это фраза из спецификаций или некоторое предположение) и разбиением его на 2-е или более групп. Для этого используется таблица вида: Входные условия Правильные классы эквивалентности Неправильные классы эквивалентности Правильные классы включают правильные данные, неправильные- неправильные данные. Выделение классов эквивалентности является эвристическим процессом. Однако при этом существует ряд правил: если входные условия описывают область значений (например, целое данное может принимать значения 0-99), то выделяют один правильный класс x>=1 && x<=99 и два неправильных: х<1 и x>99. если входные условия описывают число значений (например, в автомобиле могут ехать от 1-го до 6-ти человек), то определяется 1-н правильный класс эквивалентности и 2-а неправильных (ни одного и более 6-ти человек). если входное условие описывает множество входных значений и есть основания полагать, что каждое значение программист трактует особо (например, известные способы передвижения: на автобусе, на грузовике, такси, мотоцикле или пешком), то определяется правильный класс эквивалентности для каждого значения и 1-н неправильный класс (например, на прицепе). если входное условие описывает ситуацию «должно быть» (например, одним символом идентефикатора должна бить буква), то определяется 1-н правильный класс эквивалентности (1-н символ – буква) и 1-н неправильный (1-н символ – не буква). если есть любые основания считать, что различные элементы классов эквивалентности трактуется программо не одинаково, то данный класс разбивается на меньшие классы эквивалентности. ПОСТРОЕНИЕ ТЕСТОВ. Этот шаг заключается в использовании классов эквивалентности для построения тестов. Этот процесс включает в себя: назначение каждому классу эквивалентности уникального номера. проектирование новых тестов, каждый из которых покрывает как можно большее число непокрытых классов эквивалентности до тех пор, пока все правильные классы не будут покрыты тестами. запись тестов, каждый из которых покрывает 1-н и только 1-н из непокрытых неправильных классов эквивалентности до тех пор, пока все неправильные классы не будут покрыты тестами. Разработка индивидуальных тестов для неправильных классов эквивалентности обусловлена тем, что определение проверки с ошибочными входами скрывают или заменяют другие проверки с ошибочными кодами. Недостаток метода эквивалентных разбиений в том, что он не исследует комбинации входных условий. 2. Дайте определение структуры данных. Приведите пример структуры данных. Дайте пояснения относительно ее частей. Структура данных – способ объединения, взаимосвязь или взаимное расположение нескольких элементов данных, рассматриваемых как одно целое. Любой структурированный тип данных характеризуется количеством и типом входящих в него компонентов, а также способом создания структур. Например, структура данных двумерного массива может быть представлена как прямоугольная таблица его элементов, имеющая определенные количества строк и столбцов. При этом первый индекс массива рассматривается как номер строки, а второй – как номер столбца. Частью структуры является элемент данных. Это может быть число, логическое значение, строка символов, переменная, элемент массива, поле данных и т.д. 3. Дайте определение схемы. Приведите пример. Какие группы символов используются в Вашем примере (согласно ГОСТ 19.701-80). Схема – графическое представление определения, анализа или метода решения задачи, в котором используются символы для отображения операций, данных, потока, оборудования и т.д. Символы данных (данные, запоминаемые данные, специфические символы данных и т.д.) Символы процесса (процесс, специфические символы процесса, подготовка, решение, параллельные действия и т.д.) Символы линий (линия, передача управления, канал связи,) Специальные символы (соединитель, терминатор, комментарий) 4. Дайте определение таблицы решений. Приведите пример. Одной из основных задач этапа проектирования является разработка спецификаций функций ПО. Фактически спецификации являются описаниями алгоритмов соответствующих функций, но разработанными для пользователей ПО. Проектирование спецификаций процессов с помощью таблиц решений (ТР) заключается в задании матрицы, отображающей множество входных условий и множество решений. Таблица решений – это такая внешняя спецификация ПО, в которой отражаются комбинации условий, выполняемых для входных данных, и соответствующие этим комбинациям действия по преобразованию информации. Пояснение: а) если очередной символ является управляющим, то подать звуковой сигнал и вернуть код ошибки; б) если буфер формируемой строки заполнен, то подать звуковой сигнал и вернуть код ошибки; в) если очередной символ не находится в заданном диапазоне, (положим, от ‘а’ до ‘я’), то подать звуковой сигнал и вернуть код ошибки; г) иначе поместить символ в буфер, увеличить значение счетчика выбранных символов и вернуть новое значение счетчика. Таблица решений для данного примера приведена ниже (таблица 1.1). Здесь ‘Д’ означает ‘да’, ‘Н’ - ‘нет’, 1,2 - помеченные действия выполняются в указанном порядке. Заметим, что если выполняется условие С1, то нет необходимости в проверке условий С2 и С3. Поэтому комбинации условий 1,2,3,4 могут быть заменены обобщающей комбинацией (Д, -, -), где ‘-’ означает любую из возможных альтернатив (в данном случае Д или Н). Аналогично комбинации условий 5 и 6 могут быть заменены обобщающей комбинацией (Н, Д, -). Редуцированная таким образом ТР будет иметь вид таблицы 1.2. Методика построения ТР заключается в следующем: а) определить все условия и действия в спецификации; б) вписать действия и условия в таблицу; в) в нумерованных столбцах отметить все возможные комбинации условий и выполняемых при выполнении условий действий; г) при необходимости редуцировать таблицу (если есть 2 столбца, у которых перечень действий совпадает, и которые отличаются только результатами условий ‘Д’ и ‘Н’ в одной строке, то такие столбцы могут быть слиты в один). 1> |