Курс 4

Группы 315с, 315б, 315в

Материалы для подготовки к дифференцированному зачёту

ВМДК.09.01. Отладка и тестирование программного кода на уровне модуля.

Темы лекционных занятий:

Тестирование – способ обеспечения качества программного продукта.

Основные понятия тестирования. Концепция тестирования. Отладка. Статическое тестирование. Динамическое тестирование. Тестирование «черного ящика». Тестирование «белого ящика». Особенности тестирования «белого ящика». Способ тестирования базового пути. Потоковый граф. Цикломатическая сложность. Шаги способа тестирования базового пути. Способы тестирования условий. Тестирование ветвей и операций отношений. Способ тестирования потоков данных. Тестирование циклов. Простые циклы. Вложенные циклы. Объединенные циклы. Неструктурированные циклы.  Особенности тестирования «черного ящика». Способ разбиения по эквивалентности. Способ анализа граничных значений. Способ диаграмм причин-следствий.

Организация тестирования.

Критерии выбора  тестов. Требования к идеальному критерию тестирования. Классы критериев: структурные, функциональные, стохастические, мутационные критерии.

Оценка оттестированности проекта: метрики и методики интегральной оценки. Оценка покрытия программы и проекта. Оценка степени оттестированности плоской модели. Оценка оттестированности иерархической модели. Методика интегральной оценки оттестированности.

Модульное и интеграционное тестирование. Тестирование элементов. Тестирование интеграции. Нисходящее тестирование интеграции. Восходящее тестирование интеграции. Сравнение нисходящего и восходящего тестирования интеграции. Тестирование правильности. Системное тестирование: восстановления, безопасности, производительности, стрессовое тестирование. Отладка.

НЕ нашли? Не то? Что вы ищете?

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

Разновидности тестирования: системное и регрессионное тестирование. Автоматизация тестирования.

Особенности индустриального тестирования. Фазы процесса тестирования. Тестовый цикл. Планирование тестирования. Типы тестирования. Ручная разработка тестов.

Документирование и оценка индустриального тестирования.  Ручное тестирование. Автоматизированное тестирование.

Регрессионное тестирование: цели и задачи, условия применения, классификация тестов и методов отбора.  Цели и задачи регрессионного тестирования. Виды регрессионного тестирования. Управляемое регрессионное тестирование. Обоснование корректности метода отбора тестов. Классификация тестов при отборе. Возможности повторного использования тестов. Классификация выборочных методов.

Регрессионное тестирование: разновидности метода отбора тестов. Случайные методы. Безопасные методы. Методы, основанные на покрытии кода.

Регрессионное тестирование: методики, не связанные с отбором тестов и методики порождения тестов. Интеграционное регрессионное тестирование. Уменьшение объема тестируемой программы. Методы упорядочения. Целесообразность отбора тестов. Функции предсказания целесообразности. Порождение новых тестов.

Регрессионное тестирование: алгоритм и программная система поддержки. Методика регрессионного тестирования.

Практические занятия:

Контрольные вопросы для защиты лабораторных работ:


Структурное тестирование программного обеспечения

1. Определите понятие тестирования. 2. Что такое тест? Поясните содержание процесса тестирования. 3. Что такое исчерпывающее тестирование? 4. Какие задачи решает тестирование? 5. Каких задач не решает тестирование? 6. Какие принципы тестирования вы знаете? В чем их отличие друг от друга? 7. В чем состоит суть тестирования «черного ящика»? 8. В чем состоит суть тестирования «белого ящика»? 9. Каковы особенности тестирования «белого ящика»? 10. Какие недостатки имеет тестирование «белого ящика»? 11. Какие достоинства имеет тестирование «белого ящика»? 12. Дайте характеристику способа тестирования базового пути 13. Какие особенности имеет потоковый граф? 14. Поясните понятие независимого пути 15. Поясните понятие цикломатической сложности. 16. Что такое базовое множество? 17. Какие свойства имеет базовое множество? 18. Какие способы вычисления цикломатической сложности вы знаете? 19. Поясните шаги способа тестирования базового пути. 20. Поясните достоинства, недостатки и область применения способа тестирования базового пути. 21. Дайте общую характеристику способов тестирования условий 22. Какие типы ошибок в условиях вы знаете? 23. Какие методики тестирования условий вы знаете? 24. Поясните суть способа тестирования ветвей и операций отношений. Какие он имеет ограничения? 25. Что такое ограничение на результат? 26. Что такое ограничение условия? 27. Что такое ограничивающее множество? Чем удобно его применение? 28. Поясните шаги способа тестирования ветвей и операций отношений. 29. Поясните достоинства, недостатки и область применения способа тестирования ветвей и операций отношений. 30. Поясните суть способа тестирования потоков данных. 31. Что такое множество определений данных? 32. Что такое множество использований данных? 33. Что такое цепочка определения-использования? 34. Поясните шаги способа тестирования потоков данных. 35. Поясните достоинства, недостатки и область применения способа тестирования потоков данных. 36. Запрограммируйте и протестируйте операции класса MoneyMachine системы управления торговым автоматом. Используйте способы тестирования базового пути, тестирования ветвей и операций отношения. 37. Запрограммируйте и протестируйте операции класса Display системы управления торговым автоматом. Используйте способ тестирования базового пути и способ тестирования потоков данных. 38. Поясните особенности тестирования циклов. 39. Какие методики тестирования простых циклов вы знаете? 40. Охарактеризуйте шаги тестирования вложенных циклов. Чем обусловлена их последовательность?

Функциональное тестирование программного обеспечения

1. Каковы особенности тестирования «черного ящика»? 2. Какие категории ошибок выявляет тестирование «черного ящика»? 3. Какие достоинства имеет тестирование «черного ящика»? 4. Что такое класс эквивалентности? 5. Что может задавать условие ввода? 6. Какие правила формирования классов эквивалентности вы знаете? 7. Что такое дерево разбиений? Каковы его особенности? 8. Что такое причина? 9. Что такое следствие? 10. Дайте общую характеристику графа причинно-следственных связей. 11. Какие функции используются в графе причин и следствий? 12. Какие ограничения используются в графе причин и следствий? 13. Какую структуру имеет таблица решений в способе диаграмм причин-следствий? 14. Как таблица решений преобразуется в тестовые варианты? 15. Поясните суть способа разбиения по эквивалентности. 16. Как выбирается тестовый вариант при тестировании по способу разбиения по эквивалентности? 17. Поясните суть способа анализа граничных значений. 18. Чем способ анализа граничных значений отличается от разбиения по эквивалентности? 19. Поясните правила анализа граничных значений. 20. В чем суть способа диаграмм причин следствий? 21. Поясните шаги способа диаграмм причин-следствий. Создайте граф причинно-следственных связей торгового автомата, для которого известны 20 причин и 10 следствий. Протестируйте этот автомат способом диаграмм причин-следствий.


Организация процесса тестирования программного обеспечения.

1. Перечислите наиболее общие ошибки вычислений. 2. Перечислите источники ошибок сравнения и неправильных потоков управления. 3. На какие ситуации ориентировано тестирование путей обработки ошибок? 4. Что такое драйвер тестирования? 5. Что такое заглушка? 6. Поясните порядок работы драйвера тестирования. 7. В чем цель тестирования интеграции? 8. Какие категории ошибок интерфейса вы знаете? 9. Какие категории заглушек вы знаете? 10. Какие элементы включает минимальная конфигурация программной системы? 11. Что такое альфа-тестирование? 12. Что такое бета-тестирование? 13. Что такое отладка? 14. Какие способы проявления ошибок вы знаете? 15. Какие симптомы ошибки вы знаете? 16. В чем суть аналитических методов отладки? 17. Что такое регрессионное тестирование? 18. Какие категории драйверов вы знаете? 19. Какова комбинированная стратегия интеграции? 20. Каковы признаки критического модуля? 21. Поясните суть методики тестирования программной системы. 22. Когда и зачем выполняется тестирование элементов? Какой этап разработки оно проверяет? 23. Когда и зачем выполняется тестирование интеграции? Какой этап разработки оно проверяет? 24. Когда и зачем выполняется тестирование правильности? Какой этап разработки оно проверяет? 25. Когда и зачем выполняется системное тестирование? Какой этап разработки оно проверяет? 26. Поясните суть тестирования элементов. 27. В чем суть нисходящего тестирования интеграции? 28. Поясните шаги процесса нисходящей интеграции. 29. В чем суть восходящего тестирования интеграции? 30. Поясните шаги процесса восходящей интеграции. 31. В чем суть тестирования правильности? 32. В чем суть системного тестирования? 33. Как защищаться от проблемы «указание причины»? 34. В чем суть тестирования восстановления? 35. В чем суть тестирования безопасности? 36. В чем суть стрессового тестирования? 37. В чем суть тестирования производительности? 38. В чем суть экспериментальных методов отладки? 39. Поясните достоинства и недостатки аналитических методов отладки. 40. Поясните достоинства и недостатки экспериментальных методов отладки. 41. Поясните достоинства и недостатки восходящей интеграции. 42. Поясните достоинства и недостатки нисходящей интеграции.

Объектно-ориентированное тестирование

1. Что такое CRC-карта? Как ее применить для тестирования визуальных моделей? 2. Поясните содержание методики тестирования интеграции объектно-ориентированных систем, основанной на использовании. 3. В чем заключаются особенности объектно-ориентированного тестирования правильности? 4. К чему приводит учет инкапсуляции, полиморфизма и наследования при проектировании тестовых вариантов? 5. В чем состоит стохастическое тестирование класса? 6. Перечислите известные вам методы тестирования взаимодействия классов. Поясните их содержание. 7. Какую роль в процессе экстремальной разработки играет рефакторинг? 8. Поясните особенности тестирования объектно-ориентированных модулей. 9. В чем суть методики тестирования интеграции объектно-ориентированных систем, основанной на потоках? 10. Поясните содержание тестирования, основанного на ошибках. 11. Поясните содержание тестирования, основанного на сценариях. 12. Чем отличается тестирование поверхностной структуры от тестирования глубинной структуры системы? 13. Охарактеризуйте тестирование разбиений на уровне классов. Как в этом случае получить категории разбиения? 14. Поясните суть предваряющего тестирования. 15. Приведите пример стохастического тестирования взаимодействий классов. 16. Приведите пример тестирования взаимодействия классов путем разбиений. 17. Приведите пример тестирования взаимодействия классов на основе состояний. В чем заключается особенность методики «преимущественно в ширину»? 18. Протестируйте отдельные классы из приложения «Простой интерфейс пользователя для встроенной системы». 19. Протестируйте взаимодействия классов из приложения «Простой интерфейс пользователя для встроенной системы». 20. Протестируйте отдельные классы из приложения «Система управления торговым автоматом». 21 Протестируйте взаимодействия классов из приложения «Система управления торговым автоматом». 22. Поясните на примере разбиение на категории по состояниям. 23. Приведите пример разбиения на категории по атрибутам.

Зачет выставляется по результатам выполнения и защиты лабораторных работ.