Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы зачета / Ответы на вопросы зачета по ТПО.docx
Скачиваний:
84
Добавлен:
29.03.2022
Размер:
1.25 Mб
Скачать
  1. Мутационный критерий

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

  • Мутации — мелкие ошибки в программе;

  • Мутанты — программы, отличающиеся друг от друга мутациями;

  • Метод мутационного тестирования — в разрабатываемую программу вносят мутации, т.е. искусственно создают программы-мутанты , ..., а затем программа и ее мутанты тестируются на одном и том же наборе тестов .

Если на наборе подтверждается правильность программы и выявляются все внесенные в программы-мутанты ошибки, то набор тестов соответствует мутационному критерию, а тестируемая программа объявляется правильной.

Если некоторые мутанты не выявили всех мутаций, то надо расширять набор тестов и продолжать тестирование.

  1. Оценка покрытия программы и проекта

Тестирование программы по некоторому критерию — покрытие множества компонентов программы множеством неизбыточных тестов , где тест неизбыточен, если существует покрытый им компонент из , не покрытый ни одним из предыдущих тестов ; каждому соответствует неизбыточный путь — последовательность вершин от входа до выхода.

— сложность тестирования по критерию , измеряемая максимальным числом неизбыточных тестов, покрывающих все элементы множества .

— остаточная сложность тестирования по критерию , измеряемая максимальным числом неизбыточных тестов, покрывающих элементы множества , оставшиеся непокрытыми, после прогона набора тестов (строго и монотонно убывает от до ).

Оценка степени оттестированности по критерию .

Критерий окончания тестирования: , где — уровень оттестированности, заданный в требованиях ( ).

Рисунок 14.3

  1. Методика интегральной оценки тестирования

  1. Выбор критерия и значения уровня оттестированности (приемочной оценки тестированности) ПО.

  2. Построение древа классов проекта и построение управляющего графа программы для каждого модуля.

  3. Модульное тестирование и оценка степени тестированности по критерию на модульном уровне.

  4. Построение управляющего графа программы, интегрирующего модули в единую иерархическую (классовую) модель проекта.

  5. Выбор тестовых путей для проведения интеграционного или системного тестирования.

  6. Генерация тестов, покрывающих тестовые пути шага 5.

  7. Интегральная оценка тестированности ПО с учетом оценок тестированности модулей — компонентов.

  8. Повторение шагов 5-7 до достижения заданного уровня тестированности программного обеспечения.

  1. Разновидности тестирования

Разновидности тестирования: модульное, интеграционное, системное, регрессионное, автоматизация тестирования, издержки тестирования.

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

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

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

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

Если модифицированный код оказал влияние на функциональность программы (на этапе сопровождения), то говорят о регрессионном эффекте.

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

Издержки тестирования. Чем больше трудозатрат вкладывается в процесс тестирования, тем меньше ошибок в продукте остается незамеченными. Но также падает эффективность обнаружения.