Файл: Федеральное государственное автономное образовательное учреждение высшего образования казанский (приволжский) федеральный университет высшая школа информационных технологий и информационных систем.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.01.2024

Просмотров: 392

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Оглавление

Введение

Уровни тестирования

Артефакты тестирования

Роль тестирования в процессе разработки

Фазы жизненного цикла тестирования программного обеспечения

Проектирование тестирования

Выполнение тестов

Измерения в процессе тестирования. Польза измерений

Польза измерений при тестировании программного обеспечения

Общий процесс прогнозирования

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

Показатели этапа тест-дизайна

Показатели, характеризующие стратегию тестирования

Метрики для этапа планирования тестирования

Метрики для показателей этапа тест-дизайна

Отслеживание Бэклога

Метрики для оценки качества тестирования

Достижение поставленных целей

Метрики для оценки стоимости тестирования

Метрики для оценки объема тестирования

Тесты для автоматизации

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

Измерение комбинаций техник тестирования

Оценка адекватности тестовых данных

Польза и правила применения метрик в процессе тестирования

Сочетание с экспертным мнением

Заключение

Список литературы

Приложение 1

Приложение 2

Приложение 3

Приложение 4




      1. 1   ...   19   20   21   22   23   24   25   26   ...   31

Измерение комбинаций техник тестирования


Сочетание методов тестирования обсуждается здесь, в сочетании с показателем оценки Тест-кейсов.

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

В [6]134 утверждается, что необходимо окупить инвестиции в тестировании путем нахождения максимально возможного числа дефектов конечным числом Тест-кейсов.

Разбиение на классы эквивалентности и анализ граничных значений обычно используется для выбора входных данных для теста. Данные должны быть выбраны таким образом, чтобы была возможность выявить максимальное количество дефектов. В этой ситуации тестировщик использует ручные комбинации или эвристику.

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

Есть несколько типов техники тестирования методом черного ящика. Одно исследование, проведенное Торкаром и Манкенфорс-Криштернин [58]135 делит методы на использование классов эквивалентности, анализ граничных значений, построение графиков причинно-следственной связи, предугадывание ошибок, случайное тестирование, исчерпывающее тестирование. Три технологии, а именно классы эквивалентности, случайное тестирование и анализ граничных значений сравнивались, чтобы определить эффективность в отношении обнаружения серьезных неисправностей. Разбиение на классы эквивалентностей оказалось самым эффективным в этой ситуации.

В другом исследовании, проведенном Лаутербахом и Рандаллом [59]136, сравнили шесть методов тестирования, а именно тестирование веток программы, случайное тестирование, функциональное тестирование, просмотр кода, анализ ошибок и структурный анализ на модульном уровне и уровне исходного кода. Результаты исследования показали, что сочетание различных техник обнаружил целых 20 неисправностей в программном обеспечении, которые ранее не были найдены [18]

137.

Стратегия по [6]138 рекомендует комбинировать техники следующим образом:

1. Начните с создания причинно-следственных связей, если спецификация содержит комбинации входных условий.

2. Дополните диаграмму причинно-следственных связей с помощью анализа граничных значений. 3. Определите допустимые и недопустимые классы эквивалентности для ввода и вывода.

4. Используйте догадки об ошибках, чтобы включить дополнительные тесты.

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

Результат исследования показателей представлен в таблице 34:

Таблица 30. Показатели "Измерение комбинаций техник тестирования" и "Оценка Тест-кейсов"

Свойство показателя

Показатель

Цель

Определить, какие комбинации техник тестирования эффективны для нахождения большего числа дефектов

Польза

Сокращение числа выполняемых тестов

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

Возможность выбора эффективных тестов

Исследования, посвященные комбинациям техник, показали:

Разбиение на классы эквивалентности лучше, чем случайное тестирование

В результате сравнения шести методов тестирования [59]139 было выявлено значительное расхождение в результатах и показано, что сочетание методов тестирования выявило больше ошибок

В [57]140 представлен подход к сокращению числа тестов «черного ящика» на основе автоматического анализа ввода-вывода

[4, 7]141 соглашаются использовать сочетание методов тестирования, чтобы использовать преимущества каждого из них




      1. 1   ...   20   21   22   23   24   25   26   27   ...   31

Оценка адекватности тестовых данных


Тестовые данные требуют тщательной подготовки. Предпосылки для эффективных тестовых данных - это хороший словарь данных и подробная проектная документация [7]. Словарь данных важен, поскольку он описывает структуры данных, типы данных, длину элементов данных и правила.

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

При разработке тестовых данных возникают некоторые проблемы, которые необходимо решить:

1. Глубина данных: необходимо определить размер тестовых данных. Например, в случае таблицы в базе данных требуется определить, сколько записей достаточно. Для функционального тестирования может быть достаточно небольшого подмножества тестовых данных, но для тестирования производительности необходимо получить данные о требуемых объемах;

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

3. Объем тестовых данных. Объем данных испытаний означает, что они должны быть точными, релевантными и полными;

4. Целостность данных во время выполнения теста. Когда команда тестирования выполняет тесты, важно, чтобы ни один из двух инженеров не изменял и не запрашивал одни и те же данные одновременно, чтобы избежать генерации неожиданных результатов. Данные испытаний должны быть модифицированы, разделены и объединены в соответствии с требованиями;