Erik van Veenendaal是一名国际的顾问和培训师,和一名在软件测试和质量管理领域广受认可的专家。 他是Improve Quality Services BV的创始人。 他保持着欧洲之星的记录,三次获得佳导师将! 2007年,因其对测试专业做出多年贡献,他获得了欧洲测试奖。 他作为测试经理和顾问在各个领域工作了20多年。他撰写了多篇论文和多部著作,包括“实用基于风险的测试: Prisma法”和“软件测试ISTQB基础” 。 他是TMap测试方法的核心开发人之一及一名国际需求工程局( IREB )的工作小组的参与者。 Erik曾是艾恩德霍芬科技大学的一名兼职高级讲师及国际软件测试认证委员会的副会长( 2005-2009 ) ,目前是TMMi基金会的董事会成员。 你可以在twitter上通过@ ErikvVeenendaal关注Erik。 |
在审查对“测试经验”问题的贡献时,我注意到,许多作者一开始解释如何使用和应用特定的测试设计技术。但是,我们不应该忘记我们为什么要这样做,即这样做的目标是什么。目标绝不“仅仅是”使用测试设计技术,而是使用正确的测试设计技术以减轻产品的风险,无论是功能性的还是非功能性的。
基于风险的测试
在基于风险的测试中,风险识别、风险分析、及风险缓解活动的制定奠定了定义测试方法的基础[ 4 ] 。每个风险项目相关的风险级别决定每个风险相关的测试工作(即减缓行动)所需要的精力。某些安全相关的标准规定了:要用的测试方法和要达到的基于风险度(见下文)的覆盖率。
测试是一种减轻产品风险的方法。如果发现了缺陷,测试人员通过缺陷意识和机会意识在发布前处理缺陷来降低风险。如果测试员没有发现缺陷,测试员通过确保系统在一定条件(例如,测试条件)下正常运行以降低风险。
测试设计技术
降低产品风险的一个选择是使用测试设计技术。
风险的级别和类型应是一个:通过使用不同测试设计技术改变测试强度的主要参数。如:对高风险的测试项目使用决策图表技术(decision table technique),对低风险测试项目使用“”等价类划分方法,或对高风险测试项目使用完整决策图表技术,对低风险测试项目使用崩溃决策图表技术(collapsed decision tables),等等。
风险(风险的级别和类型都)应该是一个:选择测试设计技术及其变体的主要推动力。测试方法应基于风险!风险越大,越需要进行更彻底更激烈及更正式的测试。例如,用边界值分析法选择使用两个边界或三个边界应该是一个基于风险的决策。有三个边界的测试是更彻底(更激烈)的 ,但这需要更多精力,降低更高等级的风险是判断付出的精力是否值得的标准。
发布一个产品时的商业风险或许会受到质量问题(因此更正式的测试设计技术才合适),或上市时间问题的影响(因此探索性测试将是一个更合适的选择) 。
当然,选择要用的测试设计技术的时候,风险不是因素(尽管是非常重要的一个)。
决策将基于多个因素,包括内部的和外部的,例如[2]:
内部因素
使用模型
测试员的知识及经验
预期缺陷类型
可用文档
生命周期模型
生命周期阶段,例如新开发或维护
外部因素(除了风险的级别和类型)
客户/合同要求
系统类型
监管要求
时间和预算
基于风险的测试方法
图1.系统测试的不同的基于风险的测试方法的例子