
- •Стратегии тестирования: структурный подход – методы «белого» ящика, функциональный подход – методы «черного» ящика.
- •Структурное тестирование (тестирование маршрутов) – критерии формирования тестовых наборов: покрытие операторов.
- •Структурное тестирование (тестирование маршрутов) – критерии формирования тестовых наборов: покрытие решений (переходов).
- •Структурное тестирование (тестирование маршрутов) – критерии формирования тестовых наборов: покрытие условий.
- •Структурное тестирование (тестирование маршрутов) – критерии формирования тестовых наборов: покрытие решений/условий.
- •Структурное тестирование (тестирование маршрутов) – критерии формирования тестовых наборов: комбинаторное покрытие условий.
- •Функциональное тестирование (тестирование с управлением по данным) – критерии формирования тестовых наборов: эквивалентное разбиение.
- •Функциональное тестирование (тестирование с управлением по данным) – критерии формирования тестовых наборов: анализ граничных значений.
- •Функциональное тестирование (тестирование с управлением по данным) – критерии формирования тестовых наборов: анализ причинно-следственных связей.
- •Функциональное тестирование (тестирование с управлением по данным) – критерии формирования тестовых наборов: предположение об ошибке.
- •Тестирование модулей: восходящие, нисходящие, комбинированное, модули-заглушки, тестирование специалистами-тесторами, документирование тестирования, регрессивное тестирование.
- •Комплексное тестирование, критерии завершения тестирования, оценочное-системное тестирование.
- •Отладка по – классификация ошибок: ошибки компиляции, компоновки, выполнения; причины ошибок выполнения.
- •Методы отладки по: ручное тестирование, индукции, дедукция, обратное прослеживание.
- •Методы и средства получения дополнительной информации об ошибке: отладочный вывод, интегрированные средства отладки, независимые отладчики.
- •Общая методика отладка по: изучение проявления ошибки, локализация ошибки, определение причины ошибки, исправление ошибки, повторное тестирование.
- •Сборочное программирование, повторное используемые компоненты, основы компонентной объектной модели (com).
- •Организация интерфейса com: идентификация интерфейса, описание интерфейса, реализация интерфейса.
- •Базовый интерфейс com-iUnknown, серверы com-объектов, преимущества com.
- •Работа с com-объектами: создание com-объектов, повторное использование com-объектов.
- •Работа с com-объектами: размещение com-объекта в других процессах – маршалинг и демаршалинг, описание com-объекта в библиотеке операционной системы – idl-описание и библиотека типа.
- •Case-технология, особенности жизненного цикла, состав, основные функции case-систем, средства автоматизации программирования.
- •Перспективы развития технологии программирования, технологическая зрелость организаций-разработчиков по, лицензирование организаций-разработчиков по.
Комплексное тестирование, критерии завершения тестирования, оценочное-системное тестирование.
Комплексное тестирование. Особенностью комплексного тестирования является то, что структурное тестирование для него практически не применимо. В основном на данной стадии используют тесты, построенные по методам эквивалентных классов, граничных условий и предположении об ошибках.
Критерии завершения тестирования и отладки. Одним из самых сложных является вопрос о том, когда следует завершать тестирование, поскольку невозможно гарантировать, что в разрабатываемом программном обеспечении не осталось ошибок.
Все критерии можно разделить на три группы:
• основанные на методологиях проектирования тестов – определенное количество тестов, полученных по методам анализа причинно-следственных связей, анализа граничных значений и предположения об ошибке, перестают выявлять ошибки;
• основанные на оценке возможного количества ошибок - возможное количество ошибок оценивают экспертно, или по специальным методикам, а затем завершают тестирование при нахождении примерно 93-95% ошибок;
• основанные на исследовании результатов тестирования - строят график зависимости количества обнаруженных ошибок от времени тестирования, если он напоминает график, представленный на рис. 9.6, то тестирование можно завершать.
Часто тестирование завершают потому, что закончилось время, отведенное на выполнение данного этапа. В этом случае тестирование сворачивают, обходясь минимальным вариантом.
Минимальное тестирование предполагает:
• тестирование граничных значений;
• тщательную проверку руководства;
• тестирование минимальных конфигураций технических средств;
• тестирование возможности редактирования команд и повторения их в любой последовательности;
• тестирование устойчивости к ошибкам пользователя.
Часть ошибок при этом остаются неисправленными «отложенными» до выпуска следующей версии.
Оценочное тестирование
После завершения комплексного тестирования приступают к оценочному тестированию, целью которого является тестирование программы на соответствие основным требованиям. Эта стадия тестирования особенно важна для программных продуктов, предназначенных для продажи на рынке.
Оценочное тестирование, которое также называют «тестированием системы в целом», включает следующие виды:
• тестирование удобства использования - последовательная проверка соответствия программного продукта и документации на него основным положениям технического задания;
• тестирование на предельных объемах - проверка работоспособности программы на максимально больших объемах данных, например, объемах текстов, таблиц, большом количестве файлов и т. п.;
• тестирование на предельных нагрузках - проверка выполнения программы на возможность обработки большого объема данных, поступивших в течение короткого времени;
• тестирование удобства эксплуатации - анализ психологических факторов, возникающих при работе с программным обеспечением; это тестирование позволяет определить, удобен ли интерфейс, не раздражает ли цветовое или звуковое сопровождение и т. п.;
• тестирование защиты - проверка защиты, например, от несанкционированного доступа к информации;
• тестирование производительности - определение пропускной способности при заданной конфигурации и нагрузке;
• тестирование требований к памяти - определение реальных потребностей в оперативной и внешней памяти;
• тестирование конфигурации оборудования - проверка работоспособности программного обеспечения на разном оборудовании;
• тестирование совместимости - проверка преемственности версий: в тех случаях, если очередная версия системы меняет форматы данных, она должна предусматривать специальные конвекторы, обеспечивающие возможность работы с файлами, созданными предыдущей версией системы;
• тестирование удобства установки - проверка удобства установки;
• тестирование надежности - проверка надежности с использованием математических моделей;
• тестирование восстановления - проверка восстановления программного обеспечения, например системы, включающей базу данных, после сбоев оборудования и программы;
• тестирование удобства обслуживания - проверка средств обслуживания, включенных в программное обеспечение;
• тестирование документации - тщательная проверка документации, например, если документация содержит примеры, то их все необходимо попробовать;
• тестирование процедуры - проверка ручных процессов, предполагаемых в системе.
Естественно, целью всех этих проверок является поиск несоответствий техническому заданию. Считают, что только после выполнения всех видов тестирования программный продукт может быть представлен пользователю или к реализации. Однако на практике обычно выполняют не все виды оценочного тестирования, так как это очень дорого и трудоемко. Как правило, для каждого типа программного обеспечения выполняют те виды тестирования, которые являются для него наиболее важными. Так базы данных обязательно тестируют на предельных объемах, а системы реального времени - на предельных нагрузках.