
- •Введение
- •1. Основные понятия процесса тестирования
- •1.1 Особенности тестирования программных компонент.
- •1.2. Виды и методы тестирования.
- •1.3. Структурное тестирование. Критерии структурного подхода
- •1.3.1. Тестирование на основе потока управления
- •1.3.2. Тестирование на основе потока данных
- •1.3.3. Методы проектирования тестовых путей.
- •1.3.4. Оценка степени тестированности программного проекта.
- •1.3.5. Примеры построения тестов «белого ящика» .
- •1.4. Функциональное тестирование – принцип «чёрного ящика»
- •1.4.1. Метод эквивалентного разбиения
- •1.4.2. Анализ граничных значений.
- •1.4.3. Метод функциональных диаграмм причинно-следственных связей.
- •1.4.4. Тестирование потока транзакций.
- •1.4.5. Метод предположения об ошибке.
- •1.4.6. Общая стратегия функционального тестирования
- •1.4.7.Примеры функционального тестирования.
- •Метод эквивалентного разбиения
- •Метод граничных условий.
- •Метод функциональных диаграмм причинно-следственных связей.
- •2. Разработка эффективных наборов тестов «чёрного ящика»
- •2.1. Характеристики хорошего теста
- •2.2. Тестирование переходов между состояниями
- •2.3.Условия гонок и другие временные зависимости
- •2.4. Нагрузочные испытания
- •2.5. Тестирование функциональной эквивалентности
- •2.6. Применение технологии эквивалентности
- •3. Задание для самостоятельной работы
Тестирование программного обеспечения
Учебное пособие по курсу
«Технология программирования» по специальности «Информационные системы и технологии»
Введение
Данная работа имеет цель – познакомить студентов с приемами и методами современного тестирования. В первой части учебного пособия рассказывается о современном подходе к тестированию программного продукта, о методике интегральной оценки тестированности программного проекта, представляющей возможность управления качеством создаваемого продукта. Приводятся примеры построения тестов по методикам, описанным в данном разделе. Во второй части учебного пособия приводятся практически советы и рекомендации специалисту по тестированию, который будет тестировать программные коды, написанные кем-то другим. Предлагаемые подходы к разработке эффективных наборов тестов помогут выявить все проблемы, которые могут возникнуть при работе с программным продуктом, и сделать все возможное для улучшения его качества.
Чтобы процесс тестирования был эффективным, он должен быть задокументированным и повторяемым. В данной работе предлагается простой и удобный подход к проведению и документированию всех этапов тестирования. Кроме того, приводится актуальный подход к построению численной оценки тестированности программного обеспечения, которая может служить одной из метрик общей оценки качества программного продукта.
1. Основные понятия процесса тестирования
1.1 Особенности тестирования программных компонент.
Опыт создания и применения сложных информационных систем выявил множество ситуаций, при которых сбои и отказы их функционирования были обусловлены дефектами комплексов программ и отражались большим ущербом. Вследствие ошибок в программах автоматического управления погибло несколько российских, американских и французских спутников, происходили отказы и катастрофы в сложных административных, банковских и технологических информационных системах.
Все возрастающая сложность разрабатываемых программных комплексов диктует повышенные требования к качеству и надежности информационных систем. Контроль надежности и безопасности создаваемых и модифицируемых программ должен сопровождать весь жизненный цикл программных средств (ПС). Следует тестировать ПС на всех этапах разработки и применять различные методы и виды тестирования.
Масштаб компонент имеет принципиальное значение при создании или выборе методов и технологии их разработки. Невысокая размерность программного модуля (ПМ) обеспечивает их обозримость и возможность детального анализа функций, структуры и процесса решения задач. Нужно стремиться к снижению сложности отладки путём многократного использования программных компонент.Этого можно достичь только при чёткой формализации их функций и условий применения. Поэтому завершать отладку и испытания ПМ следует их аттестацией с приложением характеристик полноты тестирования и диапазонов варьирования тестовых данных.
Особенности тестирования компонент ПМ
Относительно высокая доля творческого труда специалистов, осуществляющих тестирование, требует интерактивного взаимодействия со средствами автоматизации отладки.
Непредсказуемость видов и мест выявляемых ошибок в программах требует лишь частичной автоматизации тестирования при активной роли человека.
Активное участие в отладке специалистов, различающихся по квалификации, опыту, темпераменту и творческим возможностям не позволяет жестко регламентировать методики и технологии применения видов и средств автоматизации тестирования.
Разнообразие возможных мест расположения и видов ошибок, при относительно редком их обнаружении приводит к необходимости регистрации и анализе большого объёма избыточной информации о процессе исполнения программ при тестировании.
Высокая сложность отлаживаемых программных компонент (ПК) , творческий и интерактивный характер процесса тестирования затрудняют точность оценки полноты проведённого тестирования и достигнутого качества отладки компонент.
Процесс тестирования и аттестации повторно используемых ПК сопровождается накоплением и хранением значительного объёма информации, содержащей тесты, результаты тестирования и оценки качества программ.
Любые методы отладок ориентированы на обнаружение ошибок определённых типов.