- •1. Введение в дисциплину. Системный подход к разработке по
- •2. Свойства, виды систем
- •3. Моделирование систем
- •4. Сложность систем и ее причины
- •5. Жизненный цикл по
- •1. Стратегии, модели и процессы конструирования по
- •4. Начальные этапы конструирования
- •1. Sadt
- •3. Модель Сущность-Связь (er-модель)
- •1. Предметы
- •2. Отношения
- •3. Диаграммы
- •4. Механизмы расширения в uml
- •1. Актеры и варианты использования
- •2. Отношения в диаграммах вариантов использования
- •3. Пример диаграммы классов
- •1. Классы — вершины в диаграммах классов
- •1.1. Атрибуты
- •1.2. Операции
- •2. Отношения в диаграммах классов
- •3. Пример диаграммы классов
- •1. Моделирование поведения программной системы
- •2. Диаграммы состояний
- •1. Диаграммы сотрудничества
- •2. Диаграммы последовательности
- •1. Стиль программирования
- •2. Комментарии
- •3. Имена переменных и файлов, структурирование
- •4. Выбор и обоснование языка программирования.
- •4. Когда выполнять контроль качества по?
- •5. Главный Закон Контроля Качества по.
- •5. Ключевые моменты.
- •5. Итерация
- •6. Подход к оптимизации кода: резюме
- •3.2.2. Анализ граничных значений
- •3.2.3. Применение функциональных диаграмм
- •3.2.4. Предположение об ошибке
- •3.3. Стратегия
- •3.5. Проектирование и исполнение теста
- •1. Особенности тестирования объектно-ориентированных программных систем
- •2. Методы тестирования объектно-ориентированных систем
3.2.2. Анализ граничных значений
Анализ граничных значений отличается от эквивалентного разбиения в двух отношениях:
Выбор любого элемента в классе эквивалентности в качестве представительного при анализе граничных значений осуществляется таким образом, чтобы проверить тестом каждую границу этого класса.
При разработке тестов рассматривают не только входные условия, но и пространство результатов.
3.2.3. Применение функциональных диаграмм
Построение тестов этим методом осуществляется в несколько этапов:
Спецификация разбивается на «рабочие» участки.
В спецификации определяются причины и следствия.
Анализируется семантическое содержание спецификации, которая преобразуется в булевский граф, связывающий причины и следствия.
Диаграмма снабжается примечаниями
Путем методического прослеживания состояний условий диаграммы она преобразуется в таблицу решений с ограниченными входами.
Столбцы таблицы решений преобразуются в тесты.
3.2.4. Предположение об ошибке
При наличии определенной программы тестировщик интуитивно предполагает вероятные типы ошибок и затем разрабатывает тесты для их обнаружения.
3.3. Стратегия
Приемлемая стратегия состоит в следующем:
Если спецификация содержит комбинации входных условий, то начать рекомендуется с применения метода функциональных диаграмм.
В любом случае необходимо использовать анализ граничных значений.
Определить правильные и неправильные классы эквивалентности для входных и выходных данных и дополнить, тесты.
Для получения дополнительных тестов рекомендуется использовать метод предположения об ошибке.
Проверить логику программы на полученном наборе тестов.
3.4. Нисходящее и восходящее тестирование
3.4.1. Нисходящее тестирование
Нисходящее тестирование начинается с верхнего, головного класса (или модуля) программы.
3.4.2. Восходящее тестирование
Данная стратегия предполагает начало тестирования с терминальных классов.
3.4.3. Сравнение
Преимущества |
Недостатки |
Нисходящее тестирование |
|
1. Имеет преимущества, если ошибки главным образом в верхней части программы. 2. Представление теста облегчается после подключения функции ввода-вывода. 3. Раннее формирование структуры программы позволяет провести ее демонстрацию пользователю и служит моральным стимулом. |
1. Необходимо разрабатывать заглушки. 2. Заглушки часто оказываются сложнее, чем кажется вначале. 3. До применения функций ввода/вывода может быть сложно представлять тестовые данные в заглушки. 4. Может оказаться трудным или невозможным создать тестовые условия. 5. Сложнее оценка результатов тестирования. 6. Допускается возможность формирования представления о совмещении тестирования и проектирования. 7. Стимулируется незавершение тестирования некоторых классов/модулей. |
Восходящее тестирование |
|
1. Имеет преимущества, если ошибки главным образом в классе/модуле нижнего уровня. 2. Легче создавать тестовые условия. 3. Проще оценка результатов. |
1. Необходимо разрабатывать драйверы. 2. Программа как единое целое не существует до тех пор, пока не добавлен последний класс/модуль. |