Полевщиков, И. С. Типовые задания при изучении студентами тестирования программного обеспечения по принципу «белого ящика» / И. С. Полевщиков. — Текст : непосредственный // Молодой ученый. — 2016. — № 3 (107). — С. 52-54. — URL: https://moluch.ru/archive/107/25813/ (дата обращения: 12.07.2023).
Одной из дисциплин, изучаемых студентами бакалавриата, обучающимися по направлению «Программная инженерия», является «Тестирование программного обеспечения». Актуальность этой дисциплины обусловлена тем, что тестирование представляет собой важнейшую составляющую поддержки качества программного обеспечения [1, 2].
В ходе выполнения ряда лабораторных работ студент должен научиться производить тестирование программного обеспечения различными способами, основанными на принципе «белого ящика». Следует отметить, что при использовании «белого ящика» как одного из принципов тестирования, известна внутренняя структура программы, а исследуются внутренние элементы программы и связи между ними [1].
Тестирование стратегиями черного, белого, серого ящика. Black box, White box, Grey box.
Приведем типовые задачи этих лабораторных работ, составленные на основе [1, 3].
В ходе выполнения лабораторной работы на тему «Тестирование базового пути» студент должен сначала написать два консольных приложения (по вариантам) на любом языке программирования (Pascal, Delphi, C++, C#, Java и т. п.) в соответствии с постановкой задач. Далее необходимо провести тестирование каждого консольного приложения способом тестирования базового пути согласно следующим шагам [1, 4]:
1) На основе текста программы формируется потоковый граф.
2) Определяется цикломатическая сложность потокового графа.
3) Определяется базовое множество независимых линейных путей.
4) Подготавливаются тестовые варианты, инициирующие выполнение каждого пути.
5) Реальные результаты каждого тестового варианта сравниваются с ожидаемыми результатами.
1) Даны две точки и
. Определить, какая из них находится ближе к началу координат. Учесть случай, что точки могут находиться одинаково близко к началу координат.
2) Даны два угла треугольника (в градусах). Определить, существует ли такой треугольник. Если да, то будет ли он прямоугольным.
3) Даны действительные числа и
. Меньшее из этих двух чисел заменить их полусуммой, а большее — их удвоенным произведением. В случае, если числа равны, то производить замену не требуется.
4) Определить, делителем каких из чисел ,
,
является число
.
5) Даны три числа ,
,
. Проверить, будут ли они сторонами треугольника. Если да, то вычислить площадь этого треугольника.
Управление качеством ПО. Лекция 3 часть 3. Метод белого ящика
6) Вычислить значение функции:
7) Дано действительное число и целое число
. Вычислить (учесть случай деления на 0, а также случай, когда введено
):
8) Составить программу вычисления значений функции на отрезке
с шагом
. Результат представить в виде таблицы, первый столбец которой — значения аргумента, второй — соответствующие значения функции. При вводе значения
проверить, чтобы данное значение было положительным (иначе вычисления не производить и выдать соответствующее сообщение). Учесть случай деления на 0.
9) Дана строка. Подсчитать в ней количество вхождений букв ‘r’, ‘k’ и ‘t’.
В ходе выполнения лабораторной работы на тему «Тестирование условий» студент должен сначала написать консольное приложение (в соответствии с вариантом) на любом языке программирования (Pascal, Delphi, C++, C#, Java и т. п.) согласно постановке задачи. Далее необходимо провести тестирование консольного приложения способом тестирования ветвей и операций отношений согласно следующим шагам [1, 5, 6]:
1) Строится ограничение для каждого условия.
2) Выявляются ограничения результата по каждому простому условию.
3) Строится ограничивающее множество для каждого условия (с применением константных формул).
4) Для каждого элемента ограничивающих множеств разрабатывается тестовый вариант.
5) Реальные результаты каждого тестового варианта сравниваются с ожидаемыми результатами.
1) Пользователь вводит два числа, и
. Необходимо вычислить и вывести на экран значение
по следующему принципу:
а) Если одновременно и
, тогда
вычисляется как
.
б) Иначе, если , то
вычисляется как произведение
и
.
в) Иначе вычисляется как
.
2) Пользователь вводит два числа, и
. Необходимо вычислить и вывести на экран значение
по следующему принципу:
а) Если одновременно и
, тогда
вычисляется как среднее геометрическое модулей
и
.
б) Иначе, если , то
вычисляется как сумма
и
.
в) Иначе вычисляется как
.
В ходе выполнения лабораторной работы на тему «Тестирование циклов» требуется написать для каждой из двух задач консольное приложение (в соответствии с вариантом) на любом языке программирования (Pascal, Delphi, C++, C#, Java и т. п.) согласно постановке задачи. Далее необходимо провести тестирование каждого консольного приложения способом тестирования циклов [1]:
1) Проанализировать конструкцию циклов и определиться с методикой тестирования.
2) Разработать тестовые варианты.
3) Реальные результаты каждого тестового варианта необходимо сравнить с ожидаемыми результатами.
Массив в каждой задаче должен быть организован как псевдодинамический, т. е. реализуемый следующим образом:
1) объявляется массив, состоящий из 5 элементов;
2) пользователь вводит реальное количество элементов массива;
3) дальнейшая работа с массивом ограничивается заданной пользователем размерностью (элементы массива генерируются случайным образом).
Примеры задач:
1) Вычислить и вывести на экран сумму и число положительных элементов прямоугольной матрицы, у которых индекс строки больше или равен индексу столбца.
2) Упорядочить по возрастанию элементы каждой строки прямоугольной матрицы. Измененную матрицу вывести на экран.
3) Дана прямоугольная матрица. Определить и вывести на экран количество элементов данной матрицы, которые больше суммы остальных элементов в своем столбце.
4) Найти наибольший и наименьший элементы прямоугольной матрицы и поменять их местами. Измененную матрицу вывести на экран.
5) Дана прямоугольная матрица. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с первым и последним элементом строки соответственно. Измененную матрицу вывести на экран.
Решение студентом задач, аналогичных рассмотренным выше, помогает освоить алгоритмы тестирования программного обеспечения, основанные на принципе «белого ящика».
- Орлов С. А., Цилькер Б. Я. Технологии разработки программного обеспечения: Учебник для вузов. 4-е изд. Стандарт третьего поколения. СПб.: Питер, 2012. 608 с.
- Темичев А. А., Файзрахманов Р. А. Аналитический обзор средств автоматизации тестирования производительности применительно к системам мониторинга // Вестник Пермского национального исследовательского политехнического университета. Электротехника, информационные технологии, системы управления. 2015. № 3 (15). С. 117–133.
- Семакин И. Г., Шестаков А. П. Лекции по программированию: Учебное пособие. Изд. 2-е, доп. Пермь: Изд-во Перм. ун-та, 1998. 279 с.
- Полевщиков И. С. Разработка методического пособия на тему «Тестирование базового пути» (для студентов бакалавриата направления «Программная инженерия») // Педагогика и современность. 2013. № 4. С. 83–85.
- Полевщиков И. С., Байков В. С., Швецов М. Д. Разработка методического пособия на тему «Тестирование условий» (для студентов и магистрантов направления «Информатика и вычислительная техника») // Педагогика и современность. 2012. № 2. С. 84–90.
- Селуков Д. А., Полевщиков И. С. Автоматизация процесса тестирования программного обеспечения при использовании тестирования условий // Молодой ученый. 2015. № 23(103). С. 63–67.
Основные термины (генерируются автоматически): консольное приложение, прямоугольная матрица, программное обеспечение, тестовый вариант, измененная матрица, лабораторная работа, ходя выполнения, число, язык программирования, базовый путь.
Похожие статьи
Особенности изучения способа тестирования базового пути.
В ходе одной из лабораторных работ студент должен научиться производить тестирование программного обеспечения способом тестирования базового пути [1, 3]. Рассмотрим некоторые особенности разработанного методического пособия по данной теме.
Типовые задачи по тестированию программного обеспечения.
В ходе одной из лабораторных работ студент должен научиться производить тестирование программного обеспечения методом
4) преобразовать столбцы таблицы решений в тестовые варианты; 5) сравнить реальные результаты тестовых вариантов с ожидаемыми.
Оптимизация алгоритма выравнивания биологических.
Более доступным вариантом является использование параллелизма на уровне GPU.
3) число строк новой матрицы равно ; 4) число столбцов в матрицах совпадает.
В работе рассмотрен метод переупорядочивания элементов матрицы динамического программирования для.
Матричный способ представления алгоритма | Статья в журнале.
В работе рассмотрен вопрос представления алгоритма в матрично-предикатном виде в
условия, определяющие порядок выполнения алгоритма, часто задаются несколькими
Например, квадратная матрица (рис. 5) содержит 324 элемента, а значащих (ненулевых) всего.
Особенности тестирования программного обеспечения.
В ходе одной из лабораторных работ в рамках этой дисциплины студент должен научиться производить тестирование программного обеспечения методом
На четвертом шаге данного способа тестирования столбцы таблицы решений преобразуются в тестовые варианты.
Использование свободного программного обеспечения.
Помимо основных математических возможностей, каждая система аналитических вычислений имеет встроенный язык программирования.
Похожие статьи. Разработка программного обеспечения для генерации вариантов самостоятельных работ студентов информационного.
Решение многокритериальных задач линейного.
— 504 с. — (Теория, вычисления и приложения). Основные термины (генерируются автоматически): критерий, задача, учет уступок, полученное решение, поиск решения, матрица коэффициентов, важность критерия, допустимая уступка, линейное программирование.
Предварительная оценка инновационных проектов на основе.
Матрица реагирования на перемены. Предварительный анализ и отбор инновационных проектов предполагает рассмотрение наиболее широкого числа альтернатив на основе наиболее общей системы требований к ним.
Метод согласованной идентификации в задаче ректификации.
В работе рассматривается задача ректификации изображений, заключающаяся в формировании строк соответственных точек на изображениях с использованием фундаментальной матрицы, формируемой по небольшому числу заданных соответственных точек.
- Как издать спецвыпуск?
- Правила оформления статей
- Оплата и скидки
Похожие статьи
Особенности изучения способа тестирования базового пути.
В ходе одной из лабораторных работ студент должен научиться производить тестирование программного обеспечения способом тестирования базового пути [1, 3]. Рассмотрим некоторые особенности разработанного методического пособия по данной теме.
Типовые задачи по тестированию программного обеспечения.
В ходе одной из лабораторных работ студент должен научиться производить тестирование программного обеспечения методом
4) преобразовать столбцы таблицы решений в тестовые варианты; 5) сравнить реальные результаты тестовых вариантов с ожидаемыми.
Оптимизация алгоритма выравнивания биологических.
Более доступным вариантом является использование параллелизма на уровне GPU.
3) число строк новой матрицы равно ; 4) число столбцов в матрицах совпадает.
В работе рассмотрен метод переупорядочивания элементов матрицы динамического программирования для.
Матричный способ представления алгоритма | Статья в журнале.
В работе рассмотрен вопрос представления алгоритма в матрично-предикатном виде в
условия, определяющие порядок выполнения алгоритма, часто задаются несколькими
Например, квадратная матрица (рис. 5) содержит 324 элемента, а значащих (ненулевых) всего.
Особенности тестирования программного обеспечения.
В ходе одной из лабораторных работ в рамках этой дисциплины студент должен научиться производить тестирование программного обеспечения методом
На четвертом шаге данного способа тестирования столбцы таблицы решений преобразуются в тестовые варианты.
Использование свободного программного обеспечения.
Помимо основных математических возможностей, каждая система аналитических вычислений имеет встроенный язык программирования.
Похожие статьи. Разработка программного обеспечения для генерации вариантов самостоятельных работ студентов информационного.
Решение многокритериальных задач линейного.
— 504 с. — (Теория, вычисления и приложения). Основные термины (генерируются автоматически): критерий, задача, учет уступок, полученное решение, поиск решения, матрица коэффициентов, важность критерия, допустимая уступка, линейное программирование.
Предварительная оценка инновационных проектов на основе.
Матрица реагирования на перемены. Предварительный анализ и отбор инновационных проектов предполагает рассмотрение наиболее широкого числа альтернатив на основе наиболее общей системы требований к ним.
Метод согласованной идентификации в задаче ректификации.
В работе рассматривается задача ректификации изображений, заключающаяся в формировании строк соответственных точек на изображениях с использованием фундаментальной матрицы, формируемой по небольшому числу заданных соответственных точек.
Источник: moluch.ru
ЧТО ТАКОЕ ТЕСТИРОВАНИЕ БЕЛОГО ЯЩИКА И ЕГО ВИДЫ С ПРИМЕРАМИ?
Подход тестирования программного обеспечения состоит из тестирования черного ящика и тестирования белого ящика, и здесь, в этой статье, мы изучим тестирование белого ящика и следующие темы.
Что такое тестирование белого ящика?
Тестирование белого ящика — это метод тестирования программного обеспечения, основанный на внутренней структуре кода приложения. При тестировании методом белого ящика для разработки тестовых случаев используется внутренняя перспектива системы, а также навыки программирования. Это тестирование обычно выполняется на уровне модулей.
Здесь тестировщики могут увидеть код тестируемого приложения.
Его также называют тестированием стеклянного ящика, тестированием прозрачного ящика, тестированием открытого ящика, тестированием прозрачного ящика, тестированием на основе кода, тестированием логического покрытия, тестированием, управляемым логикой, тестированием, управляемым путем, и структурным тестированием, тестированием на основе структуры.
Эти названия обозначают способность видеть сквозь внешнюю оболочку программы (то есть коробку) ее внутреннюю работу.
В этом тестировании тестировщики должны знать внутреннюю структуру, дизайн, код тестируемого приложения, чтобы проверить поток ввода-вывода и улучшить дизайн, безопасность и удобство использования.
Тестирование коробки состоит из двух частей. а именно тестирование черного ящика и тестирование белого ящика.
Ознакомьтесь с нашим подробным руководством по тестированию черного ящика и тестированию белого ящика.
Тестировщики должны иметь хорошие навыки программирования, чтобы получить тестовые примеры для тестирования белого ящика. Это контракт со своим аналогом тестирования черного ящика, который выводит тестовые примеры из своих спецификаций.
Определение ISTQB тестирования белого ящика
Согласно глоссарию ISTQB, тестирование белого ящика определяется следующим образом:
Тестирование, основанное на анализе внутренней структуры компонента или системы.
Если тестировщик обладает знаниями на уровне кода тестируемая система или компонент системы, тогда тестировщик может получить глубокое понимание системы.
Процесс тестирования белого ящика
Шаг 1. Соберите требования, функциональные спецификации, проектную документацию, исходный код.
Шаг 2. План тестирования подготовка
Шаг 3: Подготовка тестового примера
Шаг 4: Выполнение тестового набора
Шаг 5: Отчеты о дефектах и устранение проблем
Типы тестирования белого ящика
Существуют следующие типы тестирования белого ящика
Несмотря на то, что тестирование белого ящика может применяться к модульному тестированию, интеграционному тестированию и системному тестированию. Рекомендуется придерживаться только уровня модульного тестирования и уровня интеграционного тестирования.
- Модульное тестирование — см. подробное руководство по модульному тестированию
- Интеграционное тестирование — см. подробное руководство по интеграционному тестированию
Тестирование выполнения:
это тип тестирования белого ящика, который проверяет код и сравнивает фактический результат с ожидаемым результатом.
Тестирование операций:
Это тип тестирования белого ящика, предназначенный для проверки нефункциональных атрибутов, таких как производительность, нагрузка, удобство использования, безопасность и т. д. модуля модуля.
Мутационное тестирование:
Это тип тестирования белого ящика, который заключается в изменении (мутации) определенных утверждений в исходном коде и проверке правильности тестов. найти ошибки.
Методы тестирования белого ящика
Важными методами тестирования WhiteBox являются следующие
Покрытие заявлений:
Этот метод используется, чтобы убедиться, что каждая строка исходного кода была выполнена и протестирована хотя бы один раз. Покрытие всех строк кода указывает на ошибочный код. Он предназначен для подсчета общего количества выполненных операторов из общего количества операторов, исполняемых в исходном коде. Покрытие операторов = (количество выполненных операторов/общее количество выполняемых операторов) x 100 % Согласно приведенной ниже блок-схеме, при покрытии операторов каждый узел должен быть пройден хотя бы один раз.
Решение Покрытие
Это гарантирует, что каждое решение (истина/ложь) в исходном коде было выполнено и проверено.
Покрытие веток
Этот метод используется, чтобы убедиться, что все ветки проверены хотя бы один раз. Он проверяет каждый возможный (if-else и другие условные циклы) путь приложения. Он гарантирует, что каждая ветвь из всех точек принятия решения будет пройдена хотя бы один раз. Согласно блок-схеме, все ребра должны быть пройдены в хотя бы один раз. Охват ветки = (количество проверенных результатов решений/общее количество результатов решений) x 100%
Покрытие пути
- Покрытие условий
- Несколько состояний Покрытие
- Покрытие конечного автомата
- Тестирование потока управления
- Тестирование потока данных
Как рассчитать покрытие операторов, покрытие ветвей, покрытие пути
Сначала давайте узнаем, что такое узлы и ребра Узлы. Узлы представляют записи, каждое выражение кода, решения и выходы Ребра : Ребра представляют разветвления и неразветвленные связи между узлами. Давайте возьмем пример программы и рассчитаем покрытие инструкций, покрытие ветвей и покрытие путей. Чтение X
Чтение Y
ЕСЛИ X+Y > 100, ТО
Вывести «больше»
ENDIF
Если P > 50, ТО
Напечатайте «X>50»
ENDIF Решение. Вот блок-схема для вышеуказанная программа Давайте укажем узлы и ребра приведенной выше блок-схемы
Инструменты тестирования белого ящика
- Parasoft Jtest
- Veracode
- EclEmma
- JUnit
- NUnit
- PyUnit
- HTMLUnit.
- CppUnit
- RCUNIT
- Cucumber
Преимущества тестирования методом белого ящика
- Тестирование можно выполнить на ранней стадии SDLC.
- Нет необходимости ждать, пока графический интерфейс выполнит тестирование белого ящика.
- Тестировщики могут обнаруживать ошибки даже в скрытом коде.
- Это помогает удалить лишние строки кода в программе.
- Его легко автоматизировать
- Тестирование более тщательное, поскольку оно охватывает все возможные пути кода
Недостатки тестирования методом белого ящика
- Это сложно и дорого.
- Тестировщики должны иметь глубокие знания языка программирования для выполнения этого тестирования. .
- Занимает много времени, когда речь идет о крупномасштабных приложениях.
- Сопровождение тестовых сценариев становится бременем, когда код часто переделывается.
В заключение
Тестирование белого ящика — это метод тестирования программного обеспечения, основанный на внутренней структуре кода приложения. Мы можем уменьшить усилия, риск, стоимость и время на более поздних этапах жизненного цикла тестирования программного обеспечения, внедрив этот тип тестирования. Несмотря на то, что тестирование белого ящика может применяться к модульному тестированию, интеграционному тестированию и системному тестированию. Всегда рекомендуется придерживаться тестирования белого ящика только с уровнями модуля и интеграции.
Часто задаваемые вопросы
Что такое тестирование белого ящика в тестировании программного обеспечения?
В тестировании программного обеспечения белый ящик Тестирование играет решающую роль и используется для проверки внутреннего кода приложения.
Зачем нужно тестирование белого ящика?
Это используется для покрытия пути тестирования, оптимизации кода, автоматизации тестирования и т. д.,
Что такое тестирование черного и белого ящиков?
И то, и другое тестирование черного ящика и тестирование белого ящика являются частью тестирования ящика.
Каковы различные типы тестирования белого ящика?
Типы белого ящика Блочное тестирование — это модульное тестирование, интеграционное тестирование, тестирование операций, мутационное тестирование, тестирование выполнения.
Кто будет проводить тестирование белого ящика?
Обычно Тестирование белого ящика выполняется разработчиками и тестировщиками, имеющими навыки программирования (белый ящик). тестеры) TAG: qa
Источник: atesting.ru
10. Регрессионное тестирование. Тестовые скрипты. Тестирование «белого ящика» и «чёрного ящика». Покрытие кода.
Регрессио́нное тести́рование (англ. regression testing, от лат. regressio — движение назад) — собирательное название для всех видов тестирования программного обеспечения, направленных на обнаружение ошибок в уже протестированных участках исходного кода. Такие ошибки — когда после внесения изменений в программу перестает работать то, что должно было продолжать работать, — называют регрессионными ошибками (англ. regression bugs).
Обычно используемые методы регрессионного тестирования включают повторные прогоны предыдущих тестов, а также проверки, не попали ли регрессионные ошибки в очередную версию в результате слияния кода.
Из опыта разработки ПО известно, что повторное появление одних и тех же ошибок — случай достаточно частый. Иногда это происходит из-за слабой техники управления версиями или по причине человеческой ошибки при работе с системой управления версиями. Но настолько же часто решение проблемы бывает «недолго живущим»: после следующего изменения в программе решение перестаёт работать. И наконец, при переписывании какой-либо части кода часто всплывают те же ошибки, что были в предыдущей реализации.
Поэтому считается хорошей практикой при исправлении ошибки создать тест на неё и регулярно прогонять его при последующих изменениях программы. Хотя регрессионное тестирование может быть выполнено и вручную, но чаще всего это делается с помощью специализированных программ, позволяющих выполнять все регрессионные тесты автоматически. В некоторых проектах даже используются инструменты для автоматического прогона регрессионных тестов через заданный интервал времени. Обычно это выполняется после каждой удачной компиляции (в небольших проектах) либо каждую ночь или каждую неделю.
Регрессионное тестирование является неотъемлемой частью экстремального программирования. В этой методологии проектная документация заменяется на расширяемое, повторяемое и автоматизированное тестирование всего программного пакета на каждой стадии цикла разработки программного обеспечения.
Регрессионное тестирование может быть использовано не только для проверки корректности программы, часто оно также используется для оценки качества полученного результата. Так, при разработке компилятора, при прогоне регрессионных тестов рассматривается размер получаемого кода, скорость его выполнения и время компиляции каждого из тестовых примеров.
Тестирование «белого ящика» и «чёрного ящика»
В терминологии профессионалов тестирования (программного и некоторого аппаратного обеспечения), фразы «тестирование белого ящика» и «тестирование чёрного ящика» относятся к тому, имеет ли разработчик тестов доступ к исходному коду тестируемого ПО, или же тестирование выполняется через пользовательский интерфейс либо прикладной программный интерфейс, предоставленный тестируемым модулем.
При тестировании белого ящика (англ. white-box testing, также говорят — прозрачного ящика), разработчик теста имеет доступ к исходному коду программ и может писать код, который связан с библиотеками тестируемого ПО. Это типично для юнит-тестирования (англ. unit testing), при котором тестируются только отдельные части системы. Оно обеспечивает то, что компоненты конструкции — работоспособны и устойчивы, до определённой степени. При тестировании белого ящика используются метрики покрытия кода.
При тестировании чёрного ящика , тестировщик имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования. Например, тестирующий модуль может виртуально нажимать клавиши или кнопки мыши в тестируемой программе с помощью механизма взаимодействия процессов, с уверенностью в том, все ли идёт правильно, что эти события вызывают тот же отклик, что и реальные нажатия клавиш и кнопок мыши. Как правило, тестирование чёрного ящика ведётся с использованием спецификаций или иных документов, описывающих требования к системе. Как правило, в данном виде тестирования критерий покрытия складывается из покрытия структуры входных данных, покрытия требований и покрытия модели (в тестировании на основе моделей).
Если «альфа-» и «бета-тестирование» относятся к стадиям до выпуска продукта (а также, неявно, к объёму тестирующего сообщества и ограничениям на методы тестирования), тестирование «белого ящика» и «чёрного ящика» имеет отношение к способам, которыми тестировщик достигает цели.
Бета-тестирование в целом ограничено техникой чёрного ящика (хотя постоянная часть тестировщиков обычно продолжает тестирование белого ящика параллельно бета-тестированию). Таким образом, термин «бета-тестирование» может указывать на состояние программы (ближе к выпуску чем «альфа»), или может указывать на некоторую группу тестировщиков и процесс, выполняемый этой группой. Итак, тестировщик может продолжать работу по тестированию белого ящика, хотя ПО уже «в бете» (стадия), но в этом случае он не является частью «бета-тестирования» (группы/процесса).
Тестовые скрипты
Тестировщики используют тестовые скрипты на разных уровнях: как в модульном, так и в интеграционном и системном тестировании. Тестовые скрипты, как правило, пишутся для проверки компонентов, в которых наиболее высока вероятность появления отказов или вовремя не найденная ошибка может быть дорогостоящей.
Покрытие кода
Покрытие кода — мера, используемая при тестировании программного обеспечения. Она показывает процент, насколько исходный код программы был протестирован. Техника покрытия кода была одной из первых методик, изобретённых для систематического тестирования ПО. Первое упоминание покрытия кода в публикациях появилось в 1963 году.
Существует несколько различных способов измерения покрытия, основные из них:
· Покрытие операторов — каждая ли строка исходного кода была выполнена и протестирована?
· Покрытие условий — каждая ли точка решения (вычисления истинно ли или ложно выражение) была выполнена и протестирована?
· Покрытие путей — все ли возможные пути через заданную часть кода были выполнены и протестированы?
· Покрытие функций — каждая ли функция программы была выполнена
· Покрытие вход/выход — все ли вызовы функций и возвраты из них были выполнены
Для программ с особыми требованиями к безопасности часто требуется продемонстрировать, что тестами достигается 100 % покрытие для одного из критериев. Некоторые из приведённых критериев покрытия связаны между собой; например, покрытие путей включает в себя и покрытие условий и покрытие операторов. Покрытие операторов не включает покрытие условий
Покрытие кода, по своей сути, является тестированием методом белого ящика. Тестируемое ПО собирается со специальными настройками или библиотеками и/или запускается в особом окружении, в результате чего для каждой используемой (выполняемой) функции программы определяется местонахождение этой функции в исходном коде. Этот процесс позволяет разработчикам и специалистам по обеспечению качества определить части системы, которые, при нормальной работе, используются очень редко или никогда не используются (такие как код обработки ошибок и т.п.). Это позволяет сориентировать тестировщиков на тестирование наиболее важных режимов.
Источник: skarlupka.ru