风险是可能发生的负面影响的事件。由共概念可见其包含两个更基本要素:
●风险发生的可能性(概率);
●风险一旦发生可能造成的影响(损失)。
理论而言,风险发生的精确概率是不可知的。上市的产品、发射的卫星,在风险变成事件前是不可能精确地知道其发生的概率的。但通过观察被测试对象发生失效的概率,可以推测产品在上市后可能出问题的概率,并且测试越充分,从测试中了解到的失效概率越接近产品风险发生的真实概率(大数定律)。因此,以软件测试作为度量软件产品质量的手段,简而言之是通过执行测试,获取相关数据,再经过计算得到软件产品正确运行的概率或发生失效的概率。由于测试团队不负责修复缺陷,其本质是识别风险的发生可能性,而真正在产品中降低风险的是开发团队对缺陷的修复。所以随着“开发、测试、修复缺陷”这样的循环,产品中风险发生的概率得到了降低。
在实际项目中,要区分风险是否与软件质量相关是相当有挑战性的,通常依赖于对业务领域的了解来做出判断。有一种买践的方法是对某个特定的风险,思考其是否有除了软件开发/测试以外的其他的缓解措施。如果非软件手段的缓解措施能完全缓解风险,则这样的风险可以认为是“非软件质量相关的风险”。理论上,对于确定的期望由软件测试活动来对应处理的风险列表,应该结合软件的细节功能逐个进行发生概率和影响的估算。然而在实践中,这样的分析成本相当高,并且估算的准确程度可能非常低,低到对测试计划的构建没有帮助。所以,通常实践中将风险归类或者在分解结构中取适中的粒度来把握风险的概率和影响。