
- •Содержание
- •2.3.1. Основные положения
- •2.3.4. Пример выполнения типового задания
- •2.6.1. Обзор методов упрощения условных выражений
- •1.Цель практических занятий
- •2. Основные положения
- •2.1. Тестирование на основе областей эквивалентности и структурное тестирование
- •2.1.1. Области эквивалентности
- •2.1.2. Структурное тестирование. Тестирование ветвей
- •2.1.3. Пример решения типового задания
- •2.2. Модульное тестирование программного обеспечения
- •2.2.1. Общий порядок тестирования по
- •2.2.2. Порядок тестирования классов
- •2.2.3. Пример выполнения типового задания
- •2.3. Интеграционное тестирование программного обеспечения
- •2.3.1. Основные положения
- •2.3.2. Идентификация взаимодействий
- •2.3.3. Выбор тестовых случаев
- •2.3.4. Пример выполнения типового задания
- •2.4. Рефакторинг программного кода. Составление методов
- •2.4.1. Основные идеи рефакторинга программного кода
- •2.4.2. Составление методов
- •2.4.2.1. Выделение метода (Extract Method)
- •Мотивация
- •Техника
- •Использование локальных переменных
- •2.4.2.2. Встраивание метода (Inline Method)
- •Мотивация
- •2.4.2.3. Встраивание временной переменной (Inline Temp)
- •Мотивация
- •Техника
- •2.4.2.4. Замена временной переменной вызовом метода (Replace Temp with Query)
- •Мотивация
- •Техника
- •2.4.2.5. Введение поясняющей переменной (Introduce Explaining Variable)
- •Мотивация
- •Техника
- •2.4.2.6. Расщепление временной переменной (Split Temporary Variable)
- •Мотивация
- •Техника
- •2.4.2.7. Удаление присваиваний параметрам (Remove Assignments to Parameters)
- •Мотивация
- •Техника
- •2.4.2.8. Замена метода объектом методов (Replace Method with Method Object)
- •Мотивация
- •Техника
- •2.4.2.9. Замещение алгоритма (Substitute Algorithm)
- •Мотивация
- •Техника
- •2.5. Рефакторинг программного кода. Перемещение функций между объектами
- •2.5.1. Обзор методов перемещения функций между объектами
- •2.5.2. Перемещение метода (Move Method)
- •2.5.3. Перемещение поля (Move Field)
- •2.5.4. Выделение класса (Extract Class)
- •2.5.5. Встраивание класса (Inline Class)
- •2.5.6. Сокрытие делегирования (Hide Delegate)
- •2.5.7. Удаление посредника (Remove Middle Man)
- •2.5.8. Введение внешнего метода (Introduce Foreign Method)
- •2.5.9. Введение локального расширения (Introduce Local Extension)
- •2.6. Рефакторинг программного кода. Упрощение условных выражений
- •2.6.1. Обзор методов упрощения условных выражений
- •2.6.2. Декомпозиция условного оператора (Decompose Conditional)
- •Мотивация
- •Техника
- •2.6.3. Консолидация условного выражения (Consolidate Conditional Expression)
- •Мотивация
- •Техника
- •2.6.4. Консолидация дублирующихся условных фрагментов (Consolidate Duplicate Conditional Fragments)
- •Мотивация
- •Техника
- •2.6.5. Удаление управляющего флага (Remove Control Flag)
- •Мотивация
- •Техника
- •2.6.6. Замена вложенных условных операторов граничным оператором (Replace Nested Conditional with Guard Clauses)
- •Мотивация
- •Техника
- •2.6.7. Замена условного оператора полиморфизмом (Replace Conditional with Polymorphism)
- •Мотивация
- •Техника
- •2.6.8. Введение объекта Null (Introduce Null Object)
- •Мотивация
- •Техника
- •3. Варианты заданий и порядок выполнения работы
- •Библиографический список
Министерство образования и науки Украины
Севастопольский национальный технический
университет
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к практическим занятиям
по дисциплине
«Методы, модели и технологии
проектирования информационных систем»
для студентов дневной и заочной форм обучения
специальности 7.05010101 — Информационные управляющие
системы и технологии
Севастополь
2013
УДК 004.415.53
Методические указания к практическим занятиям по дисциплине «Методы, модели и технологии проектирования информационных систем» для студентов дневной и заочной форм обучения специальности 7.080401 «Информационные управляющие системы и технологии» /Сост. В.А.Строганов, – Севастополь: Изд-во СевНТУ, 2011. – 25 с.
Методические указания призваны помочь студентам при выполнении практических заданий по дисциплине «Методы, модели и технологии
проектирования информационных систем».
Методические указания составлены в соответствии с требованиями программы дисциплины «Методы, модели и технологии проектирования информационных систем»» для студентов специальности 7.05010101 и утверждены на заседании кафедры Информационных систем, протокол № __ от ___________ 20___г.
Допущено учебно-методическим центром СевНТУ в качестве методических указаний.
Содержание
1.ЦЕЛЬ ПРАКТИЧЕСКИХ ЗАНЯТИЙ
2.ОСНОВНЫЕ ПОЛОЖЕНИЯ
2.1. Тестирование на основе областей эквивалентности и структурное тестирование
2.1.1. Области эквивалентности
2.1.2. Структурное тестирование. Тестирование ветвей
2.1.3. Пример решения типового задания
2.2. Модульное тестирование программного обеспечения»
2.2.1. Общий порядок тестирования ПО
2.2.2. Порядок тестирования классов
2.2.3. Пример выполнения типового задания
2.3. Интеграционное тестирование программного обеспечения»
2.3.1. Основные положения
2.3.2. Идентификация взаимодействий
2.3.3. Выбор тестовых случаев
2.3.4. Пример выполнения типового задания
2.4. Рефакторинг программного кода. Составление методов
2.4.1. Основные идеи рефакторинга программного кода
2.4.2. Составление методов
2.5. Рефакторинг программного кода. Перемещение функций между объектами
2.5.1. Обзор методов перемещения функций между объектами
2.6. Рефакторинг программного кода. Упрощение условных выражений
2.6.1. Обзор методов упрощения условных выражений
3.ВАРИАНТЫ ЗАДАНИЙ И ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1.Цель практических занятий
Целью практических занятий является изучение студентами основных методов тестирования программного обеспечения, определения областей эквивалентности входных данных и формирования тестовых последовательностей, методов структурного тестирования отдельных программных элементов и модулей с учетом независимых ветвей алгоритма, модульного и интеграционного тестирования программного обеспечения, а также приобретение приобретение навыков тестирования ПО и рефакторинга программного кода. Для студентов дневной формы обучения предусмотрено проведение практических занятий по следующим темам: 1) «Тестирование на основе областей эквивалентности и структурное тестирование»; 2) «Модульное тестирование программного обеспечения»; 3) «Интеграционное тестирование программного обеспечения»; 4) «Рефакторинг программного кода. Составление методов»; 5) «Рефакторинг программного кода. Перемещение функций между объектами»; 6) «Рефакторинг программного кода. Упрощение условных выражений». Объем каждого занятия – 2 часа. По каждой из тем студентами готовится и представляется к защите контрольная работа. Студенты заочной формы обучения самостоятельно выполняют письменную контрольную работу, включающую задания одновременно по всем темам, и представляют её к защите.
2. Основные положения
2.1. Тестирование на основе областей эквивалентности и структурное тестирование
2.1.1. Области эквивалентности
Входные данные программ часто можно разбить на несколько классов. Входные данные, принадлежащие одному классу, имеют общие свойства, например это положительные числа, отрицательные числа, строки без пробелов и т.п. Обычно для всех данных из какого-либо класса поведение программы одинаково (эквивалентно). Из-за этого такие классы данных иногда называют областями эквивалентности. Один из систематических методов обнаружения дефектов состоит в определении всех областей эквивалентности, обрабатываемых программой. Контрольные тесты разрабатываются так, чтобы входные и выходные данные лежали в пределах этих областей.
Области эквивалентности входных данных — это множества данных, все элементы которых обрабатываются одинаково. Области эквивалентности выходных данных — это данные на выходе программы, имеющие общие свойства, которые позволяют считать их отдельным классом. Корректные и некорректные входные данные также образуют две области эквивалентности.
Области эквивалентности определяются на основании программной спецификации или документации пользователя и опыта испытателя, выбирающего классы значений, входных данных, пригодные для обнаружения дефектов.
Пусть дана программа, которая выполняет поиск заданного элемента в последовательности элементов. Программа возвращает номер позиции этого элемента в последовательности. Исходя из приведенных выше правил, можно определить области эквивалентности входных данных, как показано в таблице 2.1.
Таблица 2.1 – Области эквивалентности для программы поиска
Длина последовательности |
Ключевой элемент |
Один элемент |
Есть в последовательности |
Один элемент |
Нет в последовательности |
Несколько элементов |
Первый элемент последовательности |
Несколько элементов |
Последний элемент последовательности |
Несколько элементов |
Средний элемент последовательности |
Несколько элементов |
Нет в последовательности |
После того, как определены области эквивалентности, выбираются тестовые последовательности, принадлежащие каждой из областей. При этом руководствуются следующими правилами:
1. Тестирующая последовательность может состоять из одного элемента. Обычно считается, что последовательности состоят из нескольких элементов, и программисты иногда закладывают такое представление в свои программы. Следовательно, если ввести последовательность из одного элемента, программа может работать неправильно.
2. Следует использовать в разных тестах различные последовательности, содержащие разное количество элементов. Это уменьшает вероятность того, что программа, имеющая дефекты, случайно выдаст правильные результаты в силу некоторых случайных свойств входных данных.
3. Следует использовать тестирующие последовательности, в которых ключевой элемент является первым, средним и последним элементом последовательности. Такой метод помогает выявить проблемы на границах областей эквивалентности.
Для программы поиска тестовые последовательности, соответствующие определенным ранее областям эквивалентности, приведены в таблице 2.2.
Таблица 2.2 – Примеры тестовых последовательностей
Входная последовательность |
Ключ |
17 |
17 |
17 |
0 |
17, 29, 21, 23 |
17 |
41, 18, 9, 31, 30, 16, 17 |
17 |
19, 18, 21, 17, 41, 38 |
17 |
21, 23, 29, 33, 38 |
17 |