Тема 2.3 Тестирование программных решений



 

Тестирование ПО – процесс проверки соответствия заявленных к продукту требований и реально реализованной функциональности, осуществляемый путем наблюдения за его работой в искусственно созданных ситуациях и на ограниченном наборе тестов, выбранных определенным образом. Тестирование (software testing) — деятельность, выполняемая для оценки и улучшения качества программного обеспечения [1]. Эта деятельность, в общем случае, базируется на обнаружении дефектов и проблем в программных системах.

В соответствие с IEEE Std 829-1998 тестирование – это процесс анализа ПО, направленный на выявление отличий между его реально существующими и требуемыми свойствами (дефект) и на оценку свойств ПО.

По ГОСТ Р ИСО МЭК 12207-99 в жизненном цикле ПО определены среди прочих вспомогательные процессы верификации, аттестации, совместного анализа и аудита.

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

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

Процесс совместного анализа является процессом оценки состояний и, при необходимости, результатов работ (продуктов) по проекту.

Процесс аудита является процессом определения соответствия требованиям, планам и условиям договора. В сумме эти процессы и составляют то, что обычно называют тестированием.

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

Основные цели тестирования:

· проверить взаимодействие между объектами;

· проверить корректную интеграцию всех модулей системы;

· проверить, что все требования были корректно                         реализованы;

· идентифицировать дефекты и убедиться, что они максимально выявлены еще до развертывания системы.

Этапы процесса тестирования

На рисунке 1 представлены этапы процесса тестирования программного обеспечения.

Рисунок 1 - Этапы процесса тестирования

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

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

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

Выполнение тест-кейсов – проверка соответствия результатов работы программы ожидаемым результатам.

Описание дефектов. Дефект – выявленное в процессе тестирования несоответствие полученных и ожидаемых результатов.

Проверка и устранение дефектов. Жизненный цикл дефекта представлен на рhрррисунке 2.

 

Рисунок 2 - Жизненный цикл дефекта

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

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

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

По объекту тестирования:

· функциональное тестирование (functional testing);

· Нагрузочное тестирование:

o Тестирование производительности (perfomance/stress testing);

o Тестирование стабильности (stability/load testing);

· Тестирование удобства использования (usability testing);

· Тестирование интерфейса пользователя (UI testing);

· Тестирование безопасности (security testing);

· Тестирование локализации (localization testing);

· Тестирование совместимости (compatibility testing).

По знанию системы:

· Тестирование чёрного ящика ( black box )

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

· Тестирование белого ящика ( white box )

При тестировании белого ящика (англ. white - box testing, также говорят — прозрачного ящика), разработчик теста имеет доступ к исходному коду программ и может писать код, который связан с библиотеками тестируемого ПО. Это типично для юнит-тестирования (англ. unit testing), при котором тестируются только отдельные части системы. Оно обеспечивает то, что компоненты конструкции — работоспособны и устойчивы, до определённой степени. При тестировании белого ящика используются метрики покрытия кода.

· Тестирование серого ящика ( gray box ).

По степени автоматизированности:

· Ручное тестирование (manual testing);

· Автоматизированное тестирование (automated testing);

· Полуавтоматизированное тестирование (semiautomated testing).

По степени изолированности компонентов:

· Компонентное (модульное) тестирование (component/unit testing);

· Интеграционное тестирование (integration testing);

· Системное тестирование (system/end-to-end testing).

По времени проведения тестирования:

· Альфа тестирование (alpha testing):

o Тестирование при приёмке (smoke testing);

o Тестирование новых функциональностей (new feature testing);

o Регрессионное тестирование (regression testing);

o Тестирование при сдаче (acceptance testing).

В альфа-тестировании программу тестирует разработчик с точки зрения пользователя. Ближе к выходу продукта наступает следующая стадия тестирования – бета-тестирование, когда на тестирование программу отдают реальным, конечным пользователям.

· Бета тестирование (beta testing)

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

По признаку позитивности сценариев:

· Позитивное тестирование (positive testing)

· Негативное тестирование (negative testing)

По степени подготовленности к тестированию:

· Тестирование по документации (formal testing)

· Эд Хок (интуитивное) тестирование (ad hoc testing)


Дата добавления: 2020-04-25; просмотров: 441; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!