测试的总结与学习——from:微软的测试之道

来源:互联网 发布:java md5算法 编辑:程序博客网 时间:2024/05/16 00:28
1.测试设计的起点:对功能规格和需求的审查。在代码未完成前,查看相应产品需求。如果没有产品需求或是需求写得不大好,则初期向开发或产品了解相应的问题:这个软件该如何工作?这个软件如何处理数据?这个软件如何处理错误?

2.代码已存在,实行探索性测试:即测试和设计测试同时进行。使用调试器来理解每条代码路径是如何被执行到的。留心在什么地方边界条件需要被修改,外部数据又在哪里被用到。通过一段时间的探索(几小时甚至几天),对组件有较好的理解后,对于如何创建一套针对这个组件的有效的并且能够在这个产品生命周期中都被使用的测试会有较好的想法。

3.测试设计规格说明:描述测试过程中的方法和意图

4.测试用例:
验证性测试:使用期望的输入来验证产品功能的测试
错误避免测试:使用预期之外的数据来检验产品是否能适当处理的测试

5.“开心路径”的测试结果就应该总是通过的。出现不通过情况先检查自己的环境或安装是否有问题?

6.灰盒测试:解决设计测试用例的两难处境。设计测试首先是从用户关心的角度出发的(即黑盒测试),然后再利用白盒测试方法保证测试用例能够有效并全面的覆盖被测对象。
从两个方面进行测试:用户角度和确定应用程序的正确性的角度。

7.在产品开发周期中,,使用探索性测试方法。模拟用户体验,通常能成功发现其他测试方法可能会错过的缺陷,通过分析发现的缺陷,来帮助后续的自动化测试用例的设计。

8.在做测试的时候,及早发现重要的缺陷是非常必要的,与此同时,还要努力设计出可以发现缺陷,并保证可以在整个产品生命周期之内验证产品的功能以及正确性的测试用例。

9.功能测试:边界值分析,等价类划分,组合分析,状态转换测试

10.等价类划分:把变量数据建模为等价类子集需要对给定上下文环境系统的认识和理解。

11.ECP数据分解理论:过于宽泛的变量数据归纳减少了ECP测试的数量,但增加了遗漏错误的可能性或产生负向错误或正向错误。
变量数据过量的分解会增加冗余测试的可能性,这会降低ECP测试的整体效率。

12.组合分析:一个参数的输出状态取决于输入参数的可变状态的各种组合,因此要使用组合分析的方法。

13.组合测试的途径:
1)一般涉及随机或者特定的方法
     包括:最优猜测,特定测试,随机选择
     最优猜测或特定方法:主要依靠测试人员的直觉和运气,比较适合测试常用的组合或者快乐路径。     
     随机选择:从所有可能的组合中选择一个有效的子测试集合。测试商业软件不太实用。

2)更加系统的过程
     包括:测试每个变量或者分支,基准测试,正交陈列,组合测试,穷举测试
     分支测试:将每个变量测试至少一次。相比于任何其他的组合分析途径,分支测试使用了最少量的测试。然而,通常它对于任何复杂系统都是无效的。
     基准测试BC:指定一组变量作为基准测试。这组变量通常是快乐路径中常用的变量状态组合。额外的测试在一段时间内改变一个参数的变量状态,同时保持在基准测试中的其他参数变量状态不变。当与n-对组合测试相结合时,基准测试非常有效。
     正交阵列:是个应对复杂问题的复杂解决方案。对于相互独立参数的功能测试不太实际。
     n-对测试:????(待添加)

15.配置独立组合测试(PICT)工具来进行相互依赖参数的组合测试。

14.好的缺陷报告的特点:
1)标题:具体,准确,需要很好但不过分的描述,提供恰到好处的信息。
例如:在低内存条件下,设置对话框中程序崩溃在。。。
2)说明:包括一个简要的总结,客户影响的信息和预期结果与实际结果
3)状态:(3种)活动的、已解决的、关闭的
4)版本号:注明被发现的软件版本号
5)功能区:记录缺陷是在产品某个区域或分区发现的。
6)重现步骤:往往包括在说明中。尽量简明扼要
7)分配:指派给
8)严重性:描述缺陷对客户,对开发过程和整个缺陷工作流程的影响。考虑到缺陷影响程度,频率和缺陷重现率。

0 0
原创粉丝点击