测试用例需要注意以下几点(转载)
来源:互联网 发布:简谱打谱软件for mac 编辑:程序博客网 时间:2024/05/17 10:52
测试用例需要注意以下几点:
1、单个用例覆盖最小化原则
下面举个例子来介绍,假如要测试一个功能 A,它有三个子功能点 A1,A2 和 A3,可以有下面两种方法来设计测试用例:
方法1 :用一个测试用例(确却的说是用例的逻辑部分)覆盖三个子功能 -Test_A1_A2_A3,
方法2 :用三个单独的用例分别来覆盖三个子功能 - Test_A1,Test_A2,Test_A3
方法1适用于规模较小的工程,但凡是稍微有点儿规模和质量要求的项目,方法2则是更好的选择,因为它具有如下的优点:
1)测试用例的覆盖边界定义更清晰;
2)测试结果对产品问题的指向性更强;
3)测试用例间的耦合度最低,彼此之间的干扰也就越低
上述这些优点所能带来直接好处是,测试用例的调试、分析和维护成本最低。每个测试用例应该尽可能的简单,只验证你所要验证的内容,不要“搂草打兔子”捎带着把啥啥啥都带进来,这样只会增加测试执行阶段的负担和风险。
此外,覆盖功能点简单明确的测试用例,也便于组合生成新的测试。
2、单次投入成本和多次投入成本原则。
例如:第一条原则-单个用例覆盖最小化原则 - 就是一个很好的例子,测试A功能的3个功能点A1,A2和A3,从表面上看用Test_A1_A2_A3这一个用例在设计和自动化实现时最简单的,但它在反复执行阶段会带来很多的问题:
首先,这样的用例的失败分析相对复杂,你需要确认到底是哪一个功能点造成了测试失败;
其次,自动化用例的调试更为复杂,如果是A3功能点的问题,你仍需要不断地走过A1和A2,然后才能到达A3,这增加了调试时间和复杂度;
第三,步骤多的手工测试用例增加了手工执行的不确定性,步骤多的自动化用例增加了其自动执行的失败可能性,特别是那些基于UI自动化技术的用例;
第四,(Last but not least)将不相关功能点耦合到一起,降低了尽早发现产品回归缺陷的可能性,这是测试工作的大忌。
例如:如果Test_A1_A2_A3是一个自动测试用例,并按照A1->A2->A3的顺序来执行的,当A1存在Bug时,整个测试用例就失败了,而A2和A3并未被测试执行到。如果此时A1的Bug由于某些原因需要很长时间才能修复,则Test_A1_A2_A3始终被认为是因为A1的Bug而失败的,而A2和A3则始终是没有被覆盖到,这里存在潜在的危险和漏洞。当你在产品就要发布前终于修复了A1的Bug,并理所当然地认为Test_A1_A2_A3应该通过时,A2和A3的问题就会在这时爆发出来,你不得不继续加班修复A2和A3的问题。不是危言耸听,当A2/A3的代码与A1的Bug修复相关时,当你有很多如此设计的测试用例时,问题可能会更糟……,真的!:(
综上所述,Test_A1_A2_A3这样的设计,减少地仅是一次性设计和自动化的投入,增加地却是需要多次投入的测试执行的负担和风险,所以需要决策时(事实上这种决策是经常发生的,尤其是在设计测试用例时)选择Test_A1_A2_A3还是Test_A1、Test_A2和Test_A3,请务必要考虑投入的代价。
3、使测试结果分析和调试最简单化原则。
这条原则是实际上是上一条- 单次投入成本和多次投入成本原则 - 针对自动化测试用例的扩展和延续。在编写自动化测试代码时,要重点考虑如何使得测试结果分析和测试调试更为简单,包括:用例日志、调试辅助信息输出等。因为测试用例的执行属于多次投入,测试人员要经常地去分析测试结果、调试测试用例,在这部分活动上的投入是相当可观的。
原文章:http://blog.csdn.net/daomihuihui/article/details/60322803?locationNum=2&fps=1
- 测试用例需要注意以下几点(转载)
- 性能测量任务时需要注意以下几点
- mobile接口开发需要注意以下几点
- 关于测试记录需要注意的几点
- 进行mysql压力测试需要注意的几点
- 【转载】功能测试时需要注意的点
- 旧的代码在2005下使用需要注意以下几点
- QT中自定义的信号与槽需要注意以下几点
- 为了保证存储服务器smb运行正常,需要注意以下几点:
- 对于Activity被finish之后,资源的释放需要注意以下几点。
- 初次使用MAVEN管理项目,需要注意以下几点,简单总结下
- 任学堂:自学编程:新手学编程 你需要注意以下几点!
- 测试用例设计需要注意的几个点
- 测试用例设计需要注意的几个点
- 软件人才需要以下几点
- 优化seo需要注重以下几点
- 架构设计需要注重以下几点
- Android和Ios测试的区别及测试需要注意的几点
- jquery 商品评论 星星点击 事件
- 基于Dragonboard 410c 的智能仪表预研
- 工作遇到的小bug--------设置match_partent无效
- 慎用console.log(),这个方法打印出来的东西,有时候是错误的。 so amazing。。。你真的了解console.log()吗,它不是同步的,即不是实时的,不是实时的,不是实时的
- VS2008+QT添加UI后无法编译
- 测试用例需要注意以下几点(转载)
- A+B Problem c++
- 基石---web开发技术发展史
- MVP 入门 (Android demo解析)
- 程序设计模式(五) C++ 单实例(Singleton)模式
- MyCat:开源分布式数据库中间件
- 按层次遍历二叉树算法
- 利用java实现验证码
- dubbo能做什么