Что такое тестирование программного обеспечения?

Что такое тест и тестирование?

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

Тест – это выполнение определенных условий и действий, необходимых для проверки работы тестируемой функции или её части.

Сколько нужно тестов?

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

  • хранятся в Testlink – для ручного тестирования;
  • или программируются в специальных фреймворках (SeleniumWebDriver) – для автоматизированного.

Схема тестирования

В общих чертах, тестирование проходит так:

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

Тестирование в контексте общего процесса разработки

В контексте общего процесса разработки, процесс тестирования (зеленая ветка схемы) выглядит следующим образом:

Разработка и тестирование
  1. Юзабилити-тестирование (проверка эргономичности) помогает определить: удобен ли сайт или пользовательский интерфейс для его предполагаемого применения.
  2. Создание чек-листа – подготовка набора тестов, внесение необходимых предложений в разрабатываемые требования (с точки зрения качества).
  3. Тестирование. Получив готовую для проверки программу или её часть, специалист проверяет её соответствие требованиям на выбранном наборе тестов. В случае обнаружения дефектов – передаёт разработчикам набор задач, необходимых для улучшения продукта до состояния соответствия требованиям.
  4. Верификация – проверка, которая показывает: были ли исправлены ошибки, обнаруженные в результате тестов. Обычно тесно связана с регрессионным тестированием. Регрессионное тестирование (regression testing) направлено на обнаружение дефектов в участках кода, которые уже были протестированы. Позволяет отловить регрессионные ошибки (когда после внесения изменений в программу перестаёт работать то, что раньше работало). Хотя подобные тесты могут быть выполнены вручную, чаще для этого используются специализированные программы для автоматизированного тестирования.

  5. Тест производительности (performance testing) проводится на стендах, где в дальнейшем будет эксплуатироваться софт. Цель – выявление проблем стенда (не софта), имитация работы пользователей, проверка на стрессоустойчивость. Позволяет убедиться, что приложение/система справится с реальной нагрузкой в будущем.

Польза тестирования

Без проверки программы на соответствие требованиям не приходится говорить о её качестве, поэтому тестирование – неотъемлемая часть разработки. И чем раньше специалист по контролю качества включается в процесс разработки, тем более высококлассный продукт получается на выходе.