一:了解手头的业务和相关的测试目标
1.一般来说,测试工作就是用来验证软件是否满足某种特定的标准和最终用户的需求。
2.满足一下元素,我们称一个程序是功能正常的
1)给定合法的输入,产生正确的输出
2)给定不合法的输入,正确而友好的拒绝输入
3)无论合法和不合法的输入,程序既不挂起也不崩溃
4)程序能在预定的时间内一直正确运行
5)程序实现了它的功能和非功能性需求
3.对测试目标的了解需要通过下面的途径完善
1)理解系统:必须从整个系统的高度来了解在在测试的系统必须满足的功能性和非功能性需求
2)及早介入
3)理解企业文化和过程
4)实现的范围:确定相应的测试范围
5)测试期望
6)吸取教训
7)工作量大小
8)解决方案的类型
9)技术选择:有助于确定测试策略和选择测试工具
10)预算
11)时间表
12)分阶段的解决方案
二:考虑风险
1.测试策略通常必须综合考虑,以便使费用超支、进度延迟、软件中的关键错误和其它失败的风险降到最低。
2.测试策略最好通过缩小测试任务的方法来确定:
1)理解系统架构
2)确定需要使用GUI测试、后端测试还是二者同时使用
3)选择测试设计技术:有助于减少大量的输入组合和变化
4)选择测试工具
5)开发内部自制测试工具或者脚本
6)确定测试需要的人员和专门技术
7)确定测试覆盖率
8)建立发行标准:表示什么时候可以认为测试完成
9)设置测试时间表
10)考虑测试阶段
3.除了功能的优先级评定外,把需求按照相关的功能路径、场景或流程进行分组也是非常有益的。介绍一种需求分组原则:
1)风险等级。在完成风险评估以后,为确保降低影响系统性能的巨大风险等,为测试需求评定优先级。
2)操作特性。对于一些频繁使用的功能,应该分配较高的优先级
3)用户需求。评估如何潜在的、对最终用户产生影响的问题是很重要的
4)可用的资源。排列测试需求的优先级时,需要考虑的一个因素是资源的可用性。
4.造成风险的常见因素
1)短时间面世
2)新的设计过程:包括使用新的设计工具和设计技术
3)新技术
5)复杂度:应该进行一些分析工作来确认哪些功能最复杂最容易出错,错误会对系统的哪些对方造成巨大影响。
6)使用频率:核心功能潜在的失败会造成很大的风险
7)不可测试的需求
5.评估风险的要素:风险成为现实的可能性;其导致问题发生的使用模式;降低风险的策略。
6.把时间精力花在系统中可能会引起绝大部分问题的那些部分。