Концепция: Постоянное внимание к качеству
В этом разделе обсуждается концепция качества и ее роль в различных компонентах процесса.
Основное описание

Введение

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

            
Преимущества
  • Повышение качества 
  • Концентрация внимания на концепциях качества и хода проекта на раннем этапе 
Что делать
  1. Возложите ответственность за качество проекта на весь коллектив, разрабатывающий продукт.
  2. Приступайте к тестированию как можно раньше и непрерывно проводите тестирование параллельно с интеграцией возможностей, готовых к демонстрации
  3. Постепенно автоматизируйте тестирование.
Чего не делать
  • Приступать к тестированию интеграции только после успешного тестирования всех компонентов и проверки всех артефактов.
  • Проводить детальную проверку всех промежуточных артефактов - это отрицательно сказывается на эффективности, поскольку задерживает тестирование приложения и, как следствие, выявление серьезных ошибок.
  • Приступать к тестированию интеграции только после тестирования всех компонентов, поскольку такой подход также задерживает выявление серьезных ошибок.

Обсуждение 

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

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

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

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

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

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

Тестирование начинается рано и увеличивается в объеме в ходе каждой итерации
Итерационный процесс разработки позволяет рано приступить к тестированию. Программное обеспечение, разработанное в рамках итерации, тестируется сразу же после компоновки. Регрессионное тестирование позволяет убедиться в том, что изменения не привели к появлению ошибок в ранее протестированном коде. Более подробные сведения приведены в раздел Дополнительные материалы: Управление качеством.

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