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

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

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

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

Добавлен: 12.01.2024

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

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

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

СОДЕРЖАНИЕ

Оглавление

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Приложение 1

Приложение 2

Приложение 3

Приложение 4

Ниже представлены некоторые принципы, предложенные [7], которые сделают набор тестов для регрессии лучше и более оптимальным:

  • включать в регрессию тесты, которые идентифицировали ошибки в предыдущих версиях программного обеспечения;

  • использование количества и типа ошибок, выявленных при помощи тестов, чтобы постоянно улучшать процесс регрессионного тестирования;

  • можно использовать матрицу регрессии, чтобы обозначать более затронутые ошибками области, для дальнейшей передачи этой информации разработчикам;

  • тесты для регрессии должны обновляться в каждой итерации для увеличения охвата в ширину и глубину;

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

  • можно и нужно автоматизировать регрессионные тесты, которые выполняются в стабильной тестовой среде;

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

В [25]120 предложены следующие принципы для отслеживания статуса регрессионного тестирования:

  • число вновь использованных тестов;

  • число добавленных Тест-кейсов в Репозиторий инструмента или базу данных тестов;

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

  • запланированное количество тестов для запуска;

  • число запланированных и пройденных тестов.


В результате исследования показателя получаем следующую таблицу:

Таблица 25. Показатель "Число регрессионных тестов"

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

Показатель

Цель

Выявить число тестов для создания набора тестов для регрессионного тестирования

Польза показателя

Помогает создать набор регрессионных тестов. Который будет выявлять ошибки после внесения изменений в программу

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

Важные принципы и метрики для регрессионного тестирования

Использовать измерение сложности программы

Использовать опыт и знания об архитектуре приложения из прошлых проектов

Использовать метрику Процент исправленных ошибок

Измерять количество ошибок в каждой составляющей приложения

Число вновь использованных тестов

Число добавленных Тест-кейсов в Репозиторий инструмента или базу данных тестов

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

Запланированное количество тестов для запуска

Число запланированных и пройденных тестов

Включать тесты, проверяющие функциональность с высокой степенью риска

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

Постоянно улучшать набор тестов для регрессии




      1. 1   ...   17   18   19   20   21   22   23   24   ...   31

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


Показатель «Тесты для автоматизации» будет рассмотрен в комбинации с показателем «Затраты на обучение и оснащение» процесса планирования тестирования.

Затраты на обучение

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

Потребности в обучении задокументированы в разделе "Штатного расписания и потребностей в обучении» шаблона для тестового плана от IEEE [9]121.

Учебные программы имеют важное значение, чтобы быть в курсе новых испытательных методик, методов и инструментов.

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

  1. Тестирование программного обеспечения;

  2. Инструменты;

  3. Технические навыки;

  4. Бизнес-логика;

  5. Коммуникационные навыки.

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

По словам Роджера Прессмана [4], инженерно-технический персонал должен посвящать обучению по крайней мере от одной до трех недель каждый год.

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

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

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

Свои коммуникативные способности группа тестирования может повысить, участвуя в качестве докладчиков на конференциях и при написании статей [4]123.

Существуют различные методы обучения, которые могут быть применены менеджерами для эффективного обучения. Они включают в себя [4]:

  1. наставничество;

  2. коммерческое обучение;

  3. онлайн обучение;

  4. обучение без отрыва.

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

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

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

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

Можно составить чек-лист для улучшения процесса обучения. Пример чек-листа приведен в таблице 30:

Таблица 26. Чек-лист для улучшения процесса обучения

Да

Нет

Вопрос







Определены ли потребности в обучении в соответствии с процедурой?







Проводится ли обучение для всего персонала, выполняющего работу, связанную с качеством?







Ведется ли учет данных о подготовке и опыте персонала?







Квалифицирован ли персонал в той области, в которой он выполняет конкретные задачи?

Требования к инструменту:

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

Инструменты тестирования должны быть добавлены в тестовую среду таким образом, чтобы выполнение тестов, запись результатов и их сравнение были проделаны с минимальными человеческими усилиями [4]124.

Автоматизированное тестирование имеет свой набор специфических требований. Необходимо провести экспертизу для выбора языка для написания скриптов. Если создание автоматизированных тестов занимает больше времени, чем написание ручных, то нужно проверить, насколько их выполнение будет быстрее, чем ручных тестов. Затем следует оценить, насколько часто выполняется тот или иной тест и стоит ли его автоматизировать [4].

Задачи, подразумевающие частое повторение, являются главными кандидатами для автоматизации. Как правило это категории тестов:

  • регрессионные тесты;

  • дымовые тесты;

  • нагрузочные тесты;

  • тестирование производительности.

  • категории тестов с большими трудозатратами [4]:

  • покрытие кода;

  • математические расчеты;

  • моделирование;

  • требующие большого числа человеческих ресурсов.