11. Способ тестирования условий.
Цель этого семейства способов тестирования — строить тестовые варианты для проверки логических условий программы. При этом желательно обеспечить охват операторов из всех ветвей программы.
Рассмотрим используемую здесь терминологию.
Простое условие — булева переменная или выражение отношения.
Выражение отношения имеет вид
Е1 <оператор отношения> Е2,
где El, E2 — арифметические выражения, а в качестве оператора отношения используется один из следующих операторов: <, >, =, <>, <=, >=.
Составное условие состоит из нескольких простых условий, булевых операторов и круглых скобок. Будем применять булевы операторы OR, AND (&), NOT. Условия, не содержащие выражений отношения, называют булевыми выражениями.
Таким образом, элементами условия являются: булев оператор, булева переменная, пара скобок (заключающая простое или составное условие), оператор отношения, арифметическое выражение. Эти элементы определяют типы ошибок в условиях.
Если условие некорректно, то некорректен, по меньшей мере, один из элементов условия. Следовательно, в условии возможны следующие типы ошибок:
- ошибка булева оператора (наличие некорректных / отсутствующих / избыточных булевых операторов);
- ошибка булевой переменной;
- ошибка булевой скобки;
- ошибка оператора отношения;
- ошибка арифметического выражения.
Способ тестирования условий ориентирован на тестирование каждого условия в программе. Методики тестирования условий имеют два достоинства. Во-первых, достаточно просто выполнить измерение тестового покрытия условия. Во-вторых, тестовое покрытие условий в программе — это фундамент для генерации дополнительных тестов программы.
Целью тестирования условий является определение не только ошибок в условиях, но и других ошибок в программах. Если набор тестов для программы А эффективен для обнаружения ошибок в условиях, содержащихся в А, то вероятно, что этот набор также эффективен для обнаружения других ошибок в А. Кроме того, если методика тестирования эффективна для обнаружения ошибок в условии, то вероятно, что эта методика будет эффективна для обнаружения ошибок в программе.
Существует несколько методик тестирования условий.
Простейшая методика — тестирование ветвей. Здесь для составного условия С проверяется:
- каждое простое условие (входящее в него);
- True-ветвь;
- False-ветвь.
Другая методика — тестирование области определения. В ней для выражения отношения требуется генерация 3-4 тестов. Выражение вида
Е1 <оператор отношения> Е2
проверяется тремя тестами, которые формируют значение Е1 большим, чем Е2, равным Е2 и меньшим, чем Е2.
Если оператор отношения неправилен, а Е1 и Е2 корректны, то эти три теста гарантируют обнаружение ошибки оператора отношения.
Для определения ошибок в Е1 и Е2 тест должен сформировать значение Е1 большим или меньшим, чем Е2, причем обеспечить как можно меньшую разницу между этими значениями.
- 1. Определение понятий «программа», «программное средство», «программный продукт». Виды и краткое содержание программных документов (по еспд).
- 2. Связь программных документов с этапами жизненного цикла по.
- 3. Жизненный цикл программных средств. Базовые этапы моделей жц: назначение и характеристика.
- 4. Стратегии конструирования программных средств с точки зрения моделей жц. Характеристика стратегий, достоинства и недостатки.
- 6. Назначение, архитектура, классификация case-средств.
- 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. Открытый интерфейс доступа к базам данных (odbc).
- 33. Архитектуры сервера баз данных совместной обработки клиентских запросов.
- 34. Доступ к базам данных в двухзвенных моделях «клиент-сервер».
- 35. Основные требования к распределенной обработке данных.
- 36. Функции «типового» приложения обработки данных.
- 37. Базовые архитектуры распределенной обработки данных.
- Архитектура сервера баз данных
- Архитектура «один к одному»
- Многопотоковая односерверная архитектура
- 38. Источник данных. Архитектура приложения, работающего с внешними источниками данных.
- 39. Последовательность действий для обеспечения работы с объектом источника данных.
- 40. Форматы представления слабоструктурированных данных. Основные понятия стандарта iso 2709.
- 41. Форматы представления слабоструктурированных данных. Основные понятия коммуникативного формата мекоф.
- 42. Языки определения слабоструктурированных данных. Основные понятия xml.
- 43. Инфраструктура описания ресурсов (rdf).
- 44. Структура процессов в абстрактной аипс.
- 45. Фактографические и документальные бд.
- 46. Классификации. Типология классификаций на основе отношений, возможных между классами и атрибутами.
- 47. Библиотечно-библиографические классификации.
- 48. Патентные классификации.
- 49. Классификации наук.
- 50. Онтология как средство формализованного представления информации.
- 51. Методы выделения информативных терминов.
- 52. Методы классификации и кластеризации текстовой информации.