Меню
Разработки
Разработки  /  Информатика  /  Презентации  /  Прочее  /  Модульное тестирование

Модульное тестирование

Данный методический материал предназначен подготовки и проведения уроков при изучении дисциплины МДК.05.03 "Тестирование информационных систем" и МДК.01.02 "Поддержка и тестирование программных модулей" специальности 09.02.07 "Информационные системы и программирование" СПО
06.02.2021

Содержимое разработки

Модульное тестирование

Модульное тестирование

Модульное тестирование — это тестирование программы на уровне отдельно взятых модулей, функций или классов. Цель модульного тестирования состоит в выявлении локализованных в модуле ошибок в реализации алгоритмов, а также в определении степени готовности системы к переходу на следующий уровень разработки и тестирования. Модульное тестирование проводится по принципу «белого ящика», то есть основывается на знании внутренней структуры программы, и часто включает те или иные методы анализа покрытия кода. Модульное тестирование обычно подразумевает создание вокруг каждого модуля определенной среды, включающей заглушки для всех интерфейсов тестируемого модуля.

Модульное тестирование — это тестирование программы

на уровне отдельно взятых модулей, функций или классов.

Цель модульного тестирования состоит в выявлении

локализованных в модуле ошибок в реализации

алгоритмов, а также в определении степени готовности

системы к переходу на следующий уровень разработки и

тестирования. Модульное тестирование проводится по

принципу «белого ящика», то есть основывается на знании

внутренней структуры программы, и часто включает те или

иные методы анализа покрытия кода.

Модульное тестирование обычно подразумевает создание

вокруг каждого модуля определенной среды, включающей

заглушки для всех интерфейсов тестируемого модуля.

Некоторые из них могут использоваться для подачи входных значений, другие для анализа результатов, присутствие третьих может быть продиктовано требованиями, накладываемыми компилятором и сборщиком. На уровне модульного тестирования проще всего обнаружить дефекты, связанные с алгоритмическими ошибками и ошибками кодирования алгоритмов, типа работы с условиями и счетчиками циклов, а также с использованием локальных переменных и ресурсов. Ошибки, связанные с неверной трактовкой данных, некорректной реализацией интерфейсов, совместимостью, производительностью и т.п. обычно пропускаются на уровне модульного тестирования и выявляются на более поздних стадиях тестирования.

Некоторые из них могут использоваться для подачи

входных значений, другие для анализа результатов,

присутствие третьих может быть продиктовано

требованиями, накладываемыми компилятором и

сборщиком.

На уровне модульного тестирования проще всего

обнаружить дефекты, связанные с алгоритмическими

ошибками и ошибками кодирования алгоритмов, типа

работы с условиями и счетчиками циклов, а также с

использованием локальных переменных и ресурсов.

Ошибки, связанные с неверной трактовкой данных,

некорректной реализацией интерфейсов, совместимостью,

производительностью и т.п. обычно пропускаются на

уровне модульного тестирования и выявляются на более

поздних стадиях тестирования.

Модульное тестирование является по способу исполнения структурным тестированием или тестированием «белого ящика» и характеризуется степенью, в которой тесты выполняют или покрывают логику программы(исходный текст). Тесты, связанные со структурным тестированием, строятся по следующим принципам: • На основе анализа потока управления . В этом случае элементы, которые должны быть покрыты при прохождении тестов, определяются на основе структурных критериев тестирования С0, С1, С2. К ним относятся вершины, дуги, пути управляющего графа  программы (УГП), условия, комбинации условий и т. п. • На основе анализа потока данных , когда элементы, которые должны быть покрыты, определяются на основе потока данных, т. е. информационного графа программы.

Модульное тестирование является по способу исполнения

структурным тестированием или тестированием «белого

ящика» и характеризуется степенью, в которой тесты

выполняют или покрывают логику программы(исходный

текст).

Тесты, связанные со структурным тестированием, строятся

по следующим принципам:

На основе анализа потока управления . В этом случае элементы, которые должны быть покрыты при прохождении тестов, определяются на основе структурных критериев тестирования С0, С1, С2. К ним относятся вершины, дуги, пути управляющего графа

программы (УГП), условия, комбинации условий и т. п.

На основе анализа потока данных , когда элементы, которые должны быть покрыты, определяются на основе потока данных, т. е. информационного графа программы.

Тестирование на основе потока управления  Использование структурных критериев тестирования С0, C1, C2 были рассмотрены ранее. К ним следует добавить критерий покрытия условий, заключающийся в покрытии всех логических условий в программе. Критерии покрытия решений и условий не заменяют друг друга, поэтому на практике используется комбинированный критерий покрытия условий/решений, совмещающий требования по покрытию и решений, и условий. На практике часто используют критерий покрытия функций программы, согласно которому каждая функция программы должна быть вызвана хотя бы один раз, и критерий покрытия вызовов, согласно которому каждый вызов каждой функции в программе должен быть выполнен хотя бы один раз

Тестирование на основе потока управления

Использование структурных критериев тестирования С0,

C1, C2 были рассмотрены ранее. К ним следует

добавить критерий покрытия условий, заключающийся в

покрытии всех логических условий в программе.

Критерии покрытия решений и условий не заменяют друг

друга, поэтому на практике используется

комбинированный критерий покрытия условий/решений,

совмещающий требования по покрытию и решений, и

условий.

На практике часто используют критерий покрытия функций

программы, согласно которому каждая функция программы

должна быть вызвана хотя бы один раз, и критерий

покрытия вызовов, согласно которому каждый вызов

каждой функции в программе должен быть выполнен

хотя бы один раз

 Тестирование на основе потока данных Этот вид тестирования направлен на выявление ссылок на неинициализированные переменные, избыточные присваивания (аномалии потока данных). Данная стратегия требует тестирования всех взаимосвязей, включающих в себя ссылку (использование) и определение переменной, на которую указывает ссылка (т. е. требуется покрытие дуг информационного графа программы Недостаток стратегии в том, что она не включает критерий С1 и не гарантирует покрытия решений. К популярным критериям принадлежит критерий, заключающийся в покрытии всех пар дуг v и w таких, что из дуги v достижима дуга w, поскольку именно на дуге может произойти потеря значения переменной, которая в дальнейшем уже не должна использоваться.

Тестирование на основе потока данных

Этот вид тестирования направлен на выявление ссылок

на неинициализированные переменные, избыточные

присваивания (аномалии потока данных).

Данная стратегия требует тестирования всех

взаимосвязей, включающих в себя ссылку

(использование) и определение переменной, на которую

указывает ссылка (т. е. требуется покрытие дуг

информационного графа программы

Недостаток стратегии в том, что она не включает

критерий С1 и не гарантирует покрытия решений.

К популярным критериям принадлежит критерий,

заключающийся в покрытии всех пар дуг v и w таких, что из

дуги v достижима дуга w, поскольку именно на дуге может

произойти потеря значения переменной, которая в

дальнейшем уже не должна использоваться.

Еще один критерий предполагает тестирование пары (вершина, дуга), поскольку определение переменной происходит в вершине управляющего графа программы, а ее использование — на дугах, исходящих из решений, или в вычислительных вершинах. Методы проектирования тестовых путей для достижения заданной степени оттестированности в структурном тестировании Процесс построения набора тестов при структурном тестировании принято делить на три фазы: • конструирование управляющего графа программы; • выбор тестовых путей; • генерация тестов, соответствующих тестовым путям.

Еще один критерий предполагает тестирование пары

(вершина, дуга), поскольку определение переменной

происходит в вершине управляющего графа программы, а

ее использование — на дугах, исходящих из решений, или

в вычислительных вершинах.

Методы проектирования тестовых путей для достижения заданной степени оттестированности в структурном тестировании

Процесс построения набора тестов при структурном

тестировании принято делить на три фазы:

• конструирование управляющего графа программы;

• выбор тестовых путей;

• генерация тестов, соответствующих тестовым путям.

Первая фаза соответствует статическому анализу программы, задача которого состоит в получении графа программы и зависящего от него и от критерия тестирования множества элементов, которые необходимо покрыть тестами. На третьей фазе по известным путям тестирования осуществляется поиск подходящих тестов, реализующих прохождение этих путей. Вторая фаза обеспечивает выбор тестовых путей. Выделяют три подхода к построению тестовых путей: • статические методы; • динамические методы; • методы реализуемых путей.

Первая фаза соответствует статическому анализу

программы, задача которого состоит в получении графа

программы и зависящего от него и от критерия

тестирования множества элементов, которые

необходимо покрыть тестами.

На третьей фазе по известным путям тестирования

осуществляется поиск подходящих тестов, реализующих

прохождение этих путей.

Вторая фаза обеспечивает выбор тестовых путей.

Выделяют три подхода к построению тестовых путей:

• статические методы;

• динамические методы;

• методы реализуемых путей.

Статические методы  Самое простое и легко реализуемое решение — построение каждого пути посредством постепенного его удлинения за счет добавления дуг, пока не будет достигнута выходная вершина управляющего графа программы. Недостаток статических методов заключается в том, что не учитывается возможная нереализуемость построенных путей тестирования. Динамические методы Такие методы предполагают построение полной системы тестов, удовлетворяющих заданному критерию, путем одновременного решения задачи построения покрывающего множества путей и тестовых данных. При этом можно автоматически учитывать реализуемость или нереализуемость путей или их частей.

Статические методы

Самое простое и легко реализуемое решение —

построение каждого пути посредством постепенного его

удлинения за счет добавления дуг, пока не будет

достигнута выходная вершина управляющего графа

программы.

Недостаток статических методов заключается в том, что

не учитывается возможная нереализуемость построенных

путей тестирования.

Динамические методы

Такие методы предполагают построение полной системы

тестов, удовлетворяющих заданному критерию, путем

одновременного решения задачи построения

покрывающего множества путей

и тестовых данных. При этом можно автоматически

учитывать реализуемость или нереализуемость путей

или их частей.

Основной идеей динамических методов является подсоединение к начальным реализуемым отрезкам путей дальнейших их частей так, чтобы: не терять при этом реализуемости вновь полученных  путей; 2) покрыть требуемые элементы структуры программы. Методы реализуемых путей Данная методика заключается в выделении из множества путей подмножества всех реализуемых путей. После чего покрывающее множество путей строится из полученного подмножества.

Основной идеей динамических методов является

подсоединение к начальным реализуемым отрезкам путей

дальнейших их частей так, чтобы:

  • не терять при этом реализуемости вновь полученных

путей;

2) покрыть требуемые элементы структуры программы.

Методы реализуемых путей

Данная методика заключается в выделении из

множества путей подмножества всех реализуемых путей.

После чего покрывающее множество путей строится из

полученного подмножества.

Достоинство статических методов состоит в небольшом количестве необходимых ресурсов, как при использовании, так и при разработке. Но они не выявляют нереализуемых путей. Кроме того, в этих Методах переход от покрывающего множества путей к полной системе тестов пользователь должен осуществить вручную, а эта работа достаточно трудоемкая. Динамические методы требуют значительно больших ресурсовкак при разработке, так и при эксплуатации. Достоинство этих методов заключается в том, что их продукция имеет более качественный уровень — реализуемость путей. Методы реализуемых путей дают самый лучший результат.

Достоинство статических методов состоит в небольшом

количестве необходимых ресурсов, как при

использовании, так и при разработке. Но они не

выявляют нереализуемых путей. Кроме того, в этих

Методах переход от покрывающего множества путей к

полной системе тестов пользователь должен осуществить

вручную, а эта работа достаточно трудоемкая.

Динамические методы требуют значительно больших

ресурсовкак при разработке, так и при эксплуатации.

Достоинство этих методов заключается в том, что их

продукция имеет более качественный уровень —

реализуемость путей. Методы реализуемых путей дают

самый лучший результат.

Для выполнения модульного тестирования в С #  https://docs.microsoft.com/ru-ru/visualstudio/test/unit-test-basics?view=vs-2019

Для выполнения модульного тестирования в С #

https://docs.microsoft.com/ru-ru/visualstudio/test/unit-test-basics?view=vs-2019

-75%
Курсы повышения квалификации

Методика преподавания информатики в начальной школе в соответствии с ФГОС НОО

Продолжительность 72 часа
Документ: Удостоверение о повышении квалификации
4000 руб.
1000 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Модульное тестирование (72.5 KB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт