收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
软件测试 > 用例设计 > 正文

首页 | 领域细分: 游戏测试 安全测试 手机测试 Web测试 | 技术研究: 单元测试 入门教程 用例设计 性能测试 功能测试 | 测试职场: 面试精选 职场发展 面试试题

测试管理: 配置及流程 - 需求管理 - 质量验收 - 缺陷管理 - 其它管理相关 | 开发语言: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码

测试工具: LoadRunner JiRa QuickTestPro RoBot WinRunner TestDirector 其它测试工具 | 数据库: Mysql数据库 Oracle数据库 CSS/DIV基础 HTML基础

如何提高测试用例的有效性和高效性

来源:互联网 日期:2014-01-28 20:00

  取这个标题,感觉有点大,只能说我写的内容是围绕这个意思来的。

  最近已经是带了第二个新人了,自然要教别人怎么写测试用例,我给新人的建议都是测试用例要追求有效性和高效性。

  我总结的经验呢,测试用例最重要是要抓住,合适的测试样本、准确的测试路径和明确的测试目的。虽然听起来感觉有点像废话,但我觉得很多人写测试用例就是容易忽略这几点。

  首先是合适的测试样本,比如测试某个功能,它是有一些前提已经存在的,可以理解为一些数据限制。举个例子,比如我们测试一个会记录用户历史数据的软件,对于一个全新的样本和有历史数据的样本是不一样的,样本的不同元素条件也决定了他在做一些操作时软件的反馈是不一样的。

  然后是准确的测试路径,理论上最保险的应该是A*B*C*D*E*F*...个路径。一个流程,就是一条路径,但一个流程中包含了几个环节,每个环节有几种测试边界。根据数学的排列组合,最保险的路径数是不是应该把每个边界数相乘?但这个就不高效了。如果能发现其中不同环节之间的出bug的相连性呢。比如知道在A步骤的第三种边界如果出bug,那在C步骤的第二种边界肯定出bug。或者比如知道在B步骤的第二种边界表现是正常的,那在D步骤的第一种边界肯定也是正常的。那是不是就能省掉一些亢余重复的路径了呢?如果你知道两个步骤中的两个数据都读的数据库中的同一个字段,那这两个步骤显然就可以看一个地方的边界就好了。如果你知道两个地方共用的一个控件,那如果控件出问题,那肯定两个地方都会出问题。所以高效点的测试路径,应该精简为A*(B-M)*(C-N)*D*E*F...再然后如果确定E、F步骤跟A、B、C、D生成的数据毫无关系,那可以再精简为A*(B-M)*(C-N)*D+E*F...我们知道如果对于一次修改,往往不是所有的步骤的边界都受影响的,如果确定出某次改动只影响了A、C、E步骤的边界,那测试路径可以再精简为A*1*(C-N)*1+E*1...上面说的这些都是理论上的数学组合分析,而在实际测试过程中,如果对一个系统比较熟悉,我们只要抓住影响的相关性、影响的不相关性、步骤边界的相互限制,就能抓住几条最高效且有效的测试路径,对一个改动带给一个系统的风险进行测试。

  最后说下明确的测试目的。只要是测试用例,都有测试目的,可能是对一个全新的功能进行测试,可能是对一个改动可能带来的风险进行测试,可能是验证现有的一个功能在某种特定条件下的表现。测试目的一定要明确,这就好比你是要去吃一顿丰盛的午餐,还是去喝杯下午茶,还是半夜饿了爬起来吃点夜宵,我想这其中的区别大家还是可以理解的。

本周排行

别人正在浏览

强悍的草根IT技术社区,这里应该有您想要的!
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号