确认是确保做了正确的事情,方向不偏。确认可以在项目前期做,也可以在项目后期做,提倡持续确认、质量左移。在前期主要是检测需求的质量,在后期是检测完成的系统是否真的是客户所需。开发过程中常见的八种确认手段有:
1 原型确认
通过快速构造系统原型,让客户基于原型确认是否满足了其需求。
2 COSMIC度量需求规模
当采用COSMIC方法度量软件需求的规模时,需求应描述到可测试的程度,能够识别出数据对象、数据属性、输入、输出、读与写,否则需求则是模糊的。
3 同行评审
找需求活动的上游、同级、下游的人员参与评审需求文档,从不同的角度识别需求中存在的问题。
4 编写测试用例
通过编写高层次的测试用例用以判断需求是否完备、无二义以及足够详细。
5 增量交付
通过增量交付的方式,尽早获得客户的反馈,尽早确认系统功能,而不是让客户一次性确认系统的所有功能,可以避免最后一刻才报告坏消息。
6 模拟环境测试
通过在模拟环境中运行系统以检测系统可能存在的问题。
7 真实环境试运行
在上线之前可以在客户的真实环境中试运行一段时间,让客户试用一下,检查是否满足了他们的真正需求。
8 系统上线后的反馈
系统上线后客户使用系统反馈意见给开发方,这是进行系统确认的最终手段,使用是检验系统是否满足的需求的终极手段,这种方式反馈的时机比较晚,返工的成本比较高。
需要特别说明的是:代码走查、集成测试、静态扫描、设计评审等是验证的行为,不属于上图所示的确认活动。