Качество и тестирование: Руководство Gov.uk

Тестирование программ с помощью agile-методов.

Качество и тестирование: Руководство Gov.uk - 1

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

Важно понимать то, что вы проводите тестирование с целью:

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

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

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

Изначальное повышение качества

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

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

Ответственность каждого сотрудника за качество

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

Быстрое получение информации о продукте

Для создания успешного проекта, разрабатываемого в соответствии с agile-методологиями, очень важно постоянно получать фидбек о проделанной работе. Получение фидбека в как можно более короткие сроки позволяет обеспечить ту самую «гибкость» в работе и вносить корректировки, когда это требуется.

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

Тестирование как ключевой элемент разработки

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

Максимально быстрый ввод в эксплуатацию

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

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

Четкое и адекватное представление о тестировании

Каждому сотруднику в команде необходимо знать и понимать следующее:

  • основной подход к тестированию;
  • в чем им необходимо принимать участие;
  • что им требуется делать.

Оптимизация объема прилагаемых усилий и используемых ресурсов

Если тестирование проведено правильно, то оно позволит понять, как действовать далее наилучшим образом. Оно также подскажет, каким вопросам следует уделить основное внимание и поможет:

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

Виды тестирования

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

Подробнее о видах тестирования на Gov.uk: 1, 2, 3, 4, 5.

Тестирование методами краудсорсинга

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

Существуют организации, которые оказывают подобные услуги профессионально, однако сотрудники GDS (Governmental Digital Service, отдел, работающий с цифровыми проектами британского правительства) осуществляют его внутриорганизационно путем:

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

Наши публикации на основе материалов Gov.uk:

Автор: frii_fond

Источник

Оставить комментарий