本过程域要实现以下目标:
1)建立和维护验证准则;
2)按照验证准则,对选择的产品实施验证,分析验证结果,改进产品;
3)对产品或产品部件实施同行评审,分析同行评审数据,完善产品。
验证活动遍历产品和工作产品开发的整个过程。验证的对象是从早期的需求开始,遍历整个开发过程中产生的中间工作产品及至最终产品(即可以包括需求文档、计划文档、设计文档、测试文档、用户文档、代码及源程序等所有的工作产品)。
验证方法包括(但不限于)审查、同行评审、审核、走查、分析、模拟、测试和演示。
专用实践 1.1 选择要验证的工作产品
本实践要求选择工作产品进行验证以及验证的方法。
要做好验证活动,首先要在需求开发的时候确保需求是可验证的。
并非所有在开发过程中产生的工作产品都需要进行验证活动,“工作产品的选择基于其对满足项目目标和需求及处理项目风险的贡献”。
所以选择要验证的工作产品的依据是:
1)该工作产品是否影响项目目标(包括进度、质量、能力、价值)的实现;
2)该工作产品是否影响用户需求的达成;
3)该工作产品是否会对缓解或消除项目风险有帮助。
验证方法,包括:
1)路径覆盖测试。
2)负载测试、强度测试和性能测试。
3)基于判定表的测试。
4)基于功能分解的测试。
5)测试用例复用。
6)验收测试。
实施验证活动的验证计划通常要集成到项目计划之中。验证计划的内容包括“提交要验证的工作产品的标识、要满足的需求和要使用的方法”,通常软件开发计划当中的同行评审计划也是验证计划的内容之一。
专用实践 1.2 建立验证环境
本实践要求依据所选验证工作产品和验证方法建立合适的验证环境。
“同行评审可能仅需要相关资料、评审人员和一个工作室。产品测试可能需要模拟器、仿真器……”。
虽然同行评审的验证环境相对简单,但要做好准备也没有那么容易。评审的验证环境准备可能包括:资料准备得是否充分,选择的评审人员是否合适(“同行”专家不仅有相似的专业背景,相似的历史项目经验,还要具备认真负责的精神),评审时机是否合适,资料是否提前发送给评审人员,工作室的设施是否满足评审需求(投影仪、白板等)都要考虑。
专用实践 1.3 建立验证规程和准则
本实践要求针对所选的验证工作产品和验证方法建立验证的规程和准则,以确保验证活动有效进行。
验证准则的来源,包括:
1)产品和产品部件需求。
2)标准。
3)组织方针。
4)测试类型。
5)测试参数。
6)抉择质量和测试成本所用的参数。
7)工作产品的类型。
8)供方。
9)建议书与协议。
验证准则对于验证活动的有效进行的重要作用是毋庸置疑的。
即使邀请的评审人员都是真正的同行,如果没有一个针对评审的工作产品衡量其是否通过评审的准则,那么评审过程可能只是同行们指出其发现的工作产品存在的问题的过程,但,解决这个问题就能说明工作产品已经满足需求了吗?
如果我们建立一个工作产品通过评审的准则,这样既能指明同行发现问题的方向,也能衡量工作产品离满足需求还有多远。
专用实践 2.1 准备同行评审
本实践要求做好同行评审的准备工作。
本实践是SP1.2建立验证环境在同行评审这一验证方法的环境准备要求的具化。
“同行评审的准备活动通常包括标识受邀参与同行评审每个工作产品的人员、标识必须参与同行评审的关键评审人员、准备和更新同行评审期间要用的材料(如检查单和评审准则),以及安排同行评审日程”。
这里面的关键评审人员非常重要。有些同行评审可能会因为关键评审人员的缺席变得无效。
“建立并维护同行评审用的入口准则和出口准则”,这也是专用实践1.3在同行评审这一验证方法的具化。它对工作产品提出具体要求:满足什么条件可以开展同行评审以及满足什么条件通过同行评审。入口条件可能包括:完成工作产品的前期审查,工作产品是否满足模板要求,是否满足相应规范的要求……;出口条件可能包括:是否满足需求,发现的缺陷数是否足够……。
标准要求留给评审人员足够的时间,“尽早分发待评审的工作产品及其相关信息给参评人员,以便参评人员有足够的准备时间”,不要让评审人员进入会场才看到待评审产品,那即使是水平再高的专家,在短时间内也很难提出有建设性的意见,指出关键的技术问题。
不要让一些保留非常多的低级错误的工作产品上会评审。那样会分散专家的注意力,让专家在低级的问题上分心。
所以,“同行评审前的准备是先审查工作产品”,评审前应由专人(比如QA)审查工作产品,过滤掉那些低级问题。
专用实践 2.2 实施同行评审
本实践要求按照评审计划实施同行评审。
实施同行评审的目的“是及早发现和排除缺陷”。所以同行评审专家应把注意力放在技术问题上面,不要被格式、模板符合性、标准符合性等问题干扰(如果SP2.1的一些准备工作做得不够好的话,会有这些低级问题遗留),那不是技术同行的职责。
标准给出的另外一个值得重视的建议是,“同行评审随着工作产品的开发增量式地实施”。
比如做设计评审,不是要等到负责设计的人员辛辛苦苦地按照标准/规范的要求把设计说明都写完了,才进行同行评审。因为这样可能会造成几个恶果:评审会占用大量的时间;评审时发现设计存在重大缺陷,导致设计要推翻重做,辛辛苦苦的准备付之东流。评审可以是增量式的,设计内容的评审可以按架构、接口、功能、性能,逐步增量地进行。这样可以让每次评审的焦点更加集中,所以也会更能发挥出专家的作用,以达到更好的评审成效。
最后要明确的是,“这些评审是结构化的,且不是管理评审”,同行评审聚集的是技术问题,不是管理问题。
专用实践 2.3 分析同行评审数据
本实践要求对同行评审发现的缺陷以及同行评审的工作量等具体实施的数据进行分析。
可以分析的同行评审数据,包括:
1)注入缺陷的阶段
如果某个阶段注入的缺陷数较多,是否意味着缺陷引入的阶段的验证活动有效性需要提高?
2)准备时间或比率与预期的时间或比率
如果准备评审的时间超出预期,是否意味着同行评审准备活动需要改进?
3)缺陷数量与预期的数量
如果同行评审发现的缺陷数量低于预期,是否意味着有潜在的缺陷没有被发掘出来?
4)检测到的缺陷类型
使用Pareto分析缺陷类型数据,可以发现缺陷集中的主要类型,便于进一步挖掘引发缺陷的根本原因。
5)缺陷的原因
使用Pareto分析缺陷原因数据,可以发现缺陷集中的主要原因,便于进一步挖掘引发缺陷的根本原因。
专用实践 3.1 实施验证
本实践要求按照验证计划实施验证活动。
验证活动如果实施的好,会给组织带来极大的益处:“能渐增地促进及早检测问题和尽早排除缺陷”。
这里所说的“渐增”,既包括需求活动、设计活动、实现活动的渐增;也包括单个活动类型的渐增。
实施验证活动,记录验证活动的结果。
专用实践 3.2 分析验证结果
本实践要求分析验证的结果,以标识产品的缺陷,并启动纠正措施。
正如验证可以“渐增”地实施,“对于每个工作产品,需渐增地分析所有可用的验证结果,以确保满足需求”。
渐增地实施,渐增地分析。
分析内容包括:绩效统计、不符合项的原因分析、实际产品与模型之间的工况比较,以及趋势等。
分析可以采用Pareto分析、因果分析图等工具。