2. 如果完全不知道哪些是主要的功能该怎么办?
报告给测试经理,不要随意的选择。测试经理会和需求方沟通,确定相关文档,或者会建议你去做什么。
3. 该以什么样的格式来记录这些功能呢?
要简单。使用2-3级的概要记录。有时一个功能并没有官方的名称或标记。也可以列出一些原始功能组。
如果要定义贡献性的功能,将它和主要的功能做清晰的区别。
例如:如下是一个关于微软书签的功能概要:
笔记…..
新增当前文章
删除
转到
评注
搜索所有…..
关于文章….
文章内容包括文字….
查找媒体
所有媒体
图像
动漫
高级搜索
书籍
媒体
文章
1.3 Identify areas of potential instability
在探索这个产品的时候,注意到有些功能很有可能威胁这个产品的稳定标准。选择5-10个功能或功能组特别实施不稳定性测试。我们也许会选择贡献性的功能,如果它们特别容易失败,但主要的功能的不稳定才是我们最关注的。确认那些会引起产品不稳定的功能该如何测试。考虑超大的,复杂的或者有挑战性的输入。用列表将我们选择的那些不稳定的地方列出来,并且写出一些在测试他们的过程中使用到的数据或策略。
一些潜在的不稳定的因素:
与其他产品进行交互的功能
那些会消耗大量内存的功能
那些与操作系统交互特别紧密的功能
那些非一般复杂的功能
那些需要改变一些操作参数配置的功能
那些需要改变操作系统配置的功能
那些获取错误的和从错误中恢复的功能
那些替代了基本的操作系统功能的功能
那些涉及了多线程工作的功能
那些同时操作多个文件的功能
那些需要从网络上打开文件的功能
关于挑战性的数据的一些想法:
文档:大的文档;同时打开许多文档;或文档中包含许多不同的对象
记录:长的记录;很大数量的记录;或复杂的记录
列表:长的列表;空的列表;多列的列表
字段:输入大量字符,非常大的值
变化:新增和删除一些东西;编辑但没有保存或编辑
负载:使大量进程同时运行;大量进行批处理;在很短时间做很多事
无推断:在窗口随意点击;随意输入字符;输入无期望的值
异常和恢复:多次破坏进程;取消操作;使用错误数据触发错误处理
产出 |
退出标准 |
潜在的不稳定功能和挑战性数据列表问题/争论点 | 像上述那样完成任务这里每个定义的都是我们将要测试或已经测试的对于定义好的不稳定功能,可以说明原因和来源 |
常见的问题:
1. 为啥这个任务重要呢?
我们可以关注最有可能出现不稳定的地方并进行测试,这是个不错的想法。而且有时候我们使用到的输入数据也很有可能触发不稳定。
2. 什么是不稳定性?
任何威胁稳定性标准的行为都是产品的不稳定性。常见的不稳定就是系统挂了。而功能失败和不稳定最基本的区别:就是后者功能有时候可以正常工作,但有时候又不能。这个功能是不可靠的,但又不是完全不可操作的。当一个功能在某些方式下可以正确工作,但又有不好的方面(破坏其他功能或产品),这就叫不稳定。
3. 我们该怎么知道这里有潜在的不稳定呢?
我们不可能非常确定的知道。我们需要用到的是使用基本的线索去探索。我们在探索性的使用这个产品的时候,会有些感觉哪里会可能有潜在的不稳定。这是我们可以快速的测试来验证我们最初的猜疑. 假设我们怀疑某个特殊的功能存在不稳定的因素,因为这个功能非常复杂而且看起来会消耗大量的内存。这时我们可以通过查看可见的输入和输出的复杂度和操作行为的变化来验证其功能的复杂度。一旦我们确定了这个功能可能会不稳定,我们可以对这个功能进行覆盖和加压测试。一旦是测试稳定性,就可以不要使用普通的输入参数。
参考自James Bach 的《General Functionality and Stability Test Procedures》