Требования удовлетворены?
Цель тестирования — продемонстрировать корректность ПО и выявить дефекты, касающиеся программных функций, ПИ, справочной системы, средств обучения, времени отклика, надежности и других важных аспектов ПО. Тестирование выявляет ошибки, за счет дополнительной разработки ПО конструируются исправления, которые применяются к ПО, а дополнительное тестирование проверяет корректность исправлений и отсутствие новых ошибок как результат исправления предыдущих.
На тестирование отводится достаточно времени, чтобы внести исправления, в противном случае продукт может быть развернут с ошибками либо его развертывание может быть задержано до внесения всех исправлений.
Функциональные дефекты. Обычно дефекты функциональности идентифицируются, классифицируются по серьезности и отслеживаются до тех пор, пока они не будут устранены до истечения назначенного срока. Если критерий по количеству открытых дефектов различной серьезности не превышен, программный продукт считается пригодным к развертыванию (например, если отсутствуют дефекты 1-го и 2-го уровня серьезности или имеется менее 10 дефектов 3-го уровня серьезности).
Дефекты пользовательского интерфейса. Дефекты в опциях ПИ устраняются аналогично функциональным дефектам. Например, если продукт реализует нестандартное поведение клавиатуры или указателя, должен фиксироваться дефект 2-го уровня. Аналогично, если декларируемое свойство ПИ не реализовано корректно, должен фиксироваться дефект соответствующего уровня серьезности.
Дефекты практичности. Дефекты, связанные с практичностью продукта, возникают из требований, вырабатываемых на ранних этапах процесса разработки. Например, если требование в отношении затрат времени на выполнение задачи не удовлетворено с большим запасом, это может иметь вероятные последствия для ожидаемой продуктивности осуществления бизнес - процессов. В результате в отношении продукта может быть зафиксирован дефект 1-го уровня. Однако если время на задачу отводится в установленных пределах и критерий удовлетворенности пользователя слегка выходит за допустимые рамки, можно зафиксировать дефект более низкого уровня серьезности.
Другие требования. В процессе тестирования собирается достаточно информации для установления факта удовлетворения других требований к ПО. Результаты тестирования сравниваются с требованиями в отношении производительности, помощи, обучения, качества и других зафиксированных требований.
Уступки, компромиссы и неожиданности
Аналогично другим этапам разработки ПО, конструирование изобилует неожиданностями, вследствие которых приходится идти на уступки или прибегать к компромиссам. Зачастую возможны приемлемые варианты проектных решений, которые позволяют удовлетворить требования в рамках ограничений. Иногда подобные варианты невозможны, и компромиссы снижают некоторые желаемые характеристики системы. Как обычно, следует постоянно привлекать пользователей к участию в процессе разработки. Если в конце процесса разработки развернутый проект представляет собой разумное приближение первоначальных проектных намерений — это просто отлично!
Полезное правило. Основная цель по-прежнему заключается в том, чтобы развернуть наилучший возможный проект, который удовлетворяет требованиям в рамках ограничений.
Практический результат. Когда все сказано и сделано, результаты тестирования оцениваются и выносится решение о готовности продукта к развертыванию. Если некоторые требования не удовлетворены, продукт может быть признан готовым к развертыванию при условии составления и ввода в действие плана по исправлению недостатков. Если продукт в крайней степени не удовлетворяет стандартам, развертывание откладывается до внесения исправлений или же заказ на продукт аннулируется.
Полезное правило. Обычно принятию решения о готовности продукта к развертыванию предшествуют переговоры. В конце концов, развертывание нового продукта должно принести ощутимую выгоду пользователям, разработчикам и организациям, финансирующим проект.
Разработка ПО, в особенности включающего мощную компоненту ПИ, представляет собой сложный вид деятельности, охватывающий психологические, социальные, групповые и организационные аспекты. Иногда встречаются ясные и очевидные решения. Следует работать в направлении проекта, который облегчает принятие решений, но при этом нужно быть готовым к проекту, который отличается неорганизованностью и требует всестороннего рассмотрения.
Закрытие реализации. Прежде чем завершить реализацию, следует сделать несколько полезных шагов, которые вошли в практику разработки.
Просмотр программного кода.
Испытания практичности и приемочные испытания.
Просмотр тестовых прецедентов и результатов.
Демонстрация проекта для того, чтобы показать, что требования удовлетворены.
Если в процессе проектирования контроль за изменениями играл важную роль, необходимо весьма тщательно управлять изменениями в течение реализации. Напомним, что на этапе реализации объем работ резко возрастает, так как она затрагивает интересы многих людей.
Полезное правило. Запоздалые изменения могут погубить проект.