用路径分析法来编写测试用例

  熟悉测试理论的人都知道,路径覆盖是白盒测试中一种很重要的方法,广泛应用于单元测试。那么基于路径覆盖的分析方法是不是只能应用于单元测试呢,能不能将其推而广之呢。一般而言,在单元测试中,路径就是指函数代码的某个分支,而实际上如果我们将软件系统的某个流程也看成路径的话,我们将可以尝试着用路径分析的方法来设计测试用例。采用路径分析的方法设计测试用例有两点好处:一是降低了测试用例设计的难度,只要搞清了各种流程,就可以设计出高质量的测试用例来,而不用太多测试方面的经验;二是在测试时间较紧的情况下,可以有的放矢的选择测试用例,而不用完全根据经验来取舍。下面就具体的介绍一下如何用路径分析的方法编写测试用例。

  首先是将系统运行过程中所涉及到的各种流程图表化,可以先从最基本的流程入手,将流程抽象成为不同功能的顺序执行。在最基本流程的基础上再去考虑次要或者异常的流程,这样将各种流程逐渐细化,这样既可以逐渐加深对流程的理解,还可以将各个看似孤立的流程关联起来。完成所有流程的图表化后就完成了所有路径的设定。

  找出了所有的路径,下面的工作就是给每条路径设定优先级,这样在测试时就可以先测优先级高的,再测优先级低的,在时间紧迫的情况下甚至可以考虑忽略一些低优先级的路径。优先级根据两个原则来选取:一是路径使用的频率,使用越频繁的优先级越高;二是路径的重要程度,如果失败对系统影响越大的优先级越高。将根据两个原则所分别得到的优先级相加就得到了整个路径的优先级。根据优先级的排序就可以更有针对性的进行测试。
 
  为每条路径设定好优先级后,接下来的工作就是为每条路径选取测试数据,构造测试用例。一条路径可以对应多个测试用例,在选取测试数据时,可以充分利用边界值选取等方法,通过表格将各种测试数据的输入输出对应起来,这样就完成了测试用例的设计。

  对于测试人员而言,测试用例的设计是一件非常困难的工作,而同时测试用例的设计好坏又直接关系到整个系统的设计质量。本文介绍了一种更理论化的设计方法来尽量简化这种工作,将一般应用于单元测试的路径分析方法推广到集成测试、系统测试等后续测试过程中,希望能给大家一点启示。我会将自己尝试过的一些感受以及具体例子跟在本贴之后。

  如果想让本方法很好的用在实际的工作中,那么流程就必须明确的规范的(就是有画出相应业务或者功能走向图),这样就可以极大的加快了用例编写的速度和质量,但是如果碰到没有明确流程图的时候,可能会花不少的时间去捉摸功能点的流程走向问题,这又让工作进度慢了下来(流程不明确是因为需求没有明确表述和设计没有相应流程描述),所以在实际工作中想使用这种方法来加快和改进测试用例的进度和质量,还要说服项目组尽可能的规范需求和设计的文档规范性,毕竟软件质量的控制不是我们一组人就能做到的。

 

  拿到这个流程时,第一眼看上去,是不是有点晕晕的呢,确实如此,因为这不能称为标准的流程图,我们需要做一些改进,不妨事先约定,画流程图时,在有判定条件处,就往下走,而就往左走,以下是简化后的流程:
   
 

  上面这个流程图看上去是不是清晰很多,确实如此,从心理学的角度来讲,正常人的思维是很难接受一个横向很复杂的事物。而且上面的流程图也更规范一点,所以建议大家以后这样画流程图。下图是作进一步的改进:这个流程图是不是更方便你设计用例呢,尤其是用路径分析法,是不是很方便就能找出其中的路径。
 
 
  这个流程图是不是更方便你设计用例呢!尤其是用路径分析法,是不是很方便就能找出其中的路径。

时间: 2024-10-13 10:34:31

用路径分析法来编写测试用例的相关文章

如何根据需求分析文档编写测试用例

从拿到需求文档不要立马开始着手写测试用例,需要仔细推敲整理需求,画出系统级.模块内流程图,并找出各种测试点,等对需求进行了头脑风暴般的整理之后,此时已对测试系统的功能很清楚了, 再着手开始写测试用例. 那么编写测试用例的总体思路是什么呢? 1.整理分析需求文档 仔细将需求文档阅读一遍,记录不明白的地方及关键测试点,简单画出总体流程图. 然后再来一遍,仔细分析各个模块的功能,画出模块内流程图,找出所有功能,并列出主要测试点 2.编写用例 按照不同的业务规则可将测试用例分为四部分: 场景用例.系统用

等价类和边界值方法编写测试用例

测试用例概念: 定义:测试用例是为了特殊目的,而主要记录了测试步骤.方法.数据.预期结果的文档,由测试人员在执行测试之前编写. 写用例主要包括:(编号.测试目的.用例描述(步骤.数据).预期结果) 测试中你可能会用到的问题? 不知道是否全面测试了所有问题? 所有的功能是否全测试到了? 每个功能测试的是否全面? 存在大量冗余测试,影响测试效率. 有些功能点可能测试多次? 对新版本的重复测试很难实施. 每个版本测试的步骤,数据都不一样,随意性很强. 测试的覆盖率无法衡量. 最后测试的结果好与坏无法准

Eclipse中使用Junit编写测试用例

Eclipse自带Junit插件,不用安装就能在项目中编写测试用例,非常方便. 在项目中添加Junit库 在编写测试用例之前,需要先引入Junit.对项目根目录右键,选择Properties,Java Build Path,Libraries,如图: Add Library,选择Junit: 点Next选择Junit版本,然后Finish就完成了引入. 编写测试用例 假设有如下类: package choon.test; public class Calculate { public int A

Android之编写测试用例

测试是软件工程中一个非常重要的环节,而测试用例又可以显著地提高测试的效率和准确性.App测试用例其实就是一段普通的程序代码,通常是带有期望的运行结果的,测试者可以根据最终的运行结果来判断程序是否能正常工作. 我相信大多数的程序员都是不喜欢编写测试用例的,因为这是一件很繁琐的事情.明明运行一下程序,观察运行结果就能知道对与错了,为什么还要通过代码来进行判断呢?确实,如果只是普通的一个小程序,编写测试用例是有些多此一举,但是当你正在维护一个非常庞大的工程时,你就会发现编写测试用例是非常有必要的. 举

编写测试用例

成功是一种观念,致富是一种义务,快乐是一种权力. 本讲内容:测试用例 测试用例通常是带有期望的运行结果的程序代码,测试者可以根据最终的运行结果来判断程序是否正常工作. 一.测试用例的好处 譬如你正在维护一个很庞大的工程,里面有许多的功能,某天,根据需求你对其中一个功能进行修改,几天后,突然有人发现其他功能出现了问题,最终定位出来的原因是你之前修改的那个功能所导致的.所以当项目比较庞大时,一般都应该编写测试用例.如果我们给项目的每一项功能都编写了测试用例,每当修改或新增任何功能之后,就将所有的测试

1.5如何编写测试用例

1.测试用例定义 描述每一个测试点的数据设计和步骤设计叫测试用例 2.重要性 软件测试核心,工作的基本 评估测试结果的基准 保证测试时不遗漏测试的功能点 对系统架构或者业务流程深入了解 方便测试用例评审 3.测试用例组成 3.1.用例编号 如:产品名-测试阶段-测试项-测试子项-xxx 3.2.测试项目:对应一个功能模块 3.3.测试标题:输入内容加结果,标题不能重复 3.4.重要级别:高/中/低 3.5.预置条件:前提条件 3.6.测试输入:需要加工的输入信息,根据具体情况来设计(跟步骤结合起

如何编写测试用例

如何编写测试用例 用例的五个构成元素: 用例标题 前置条件 测试步骤 期望结果 后置条件 下面从这五个元素的角度,去剖析如何编写测试用例 用例标题 用例标题就是测试点名称.用例标题是用来说明这个用例的测试目的的,好的用例标题是别人看完你这个用例标题后就知道你这个用例是测什么的.但并不是标题越详细越好.既然是标题,就要言简意赅,能多简洁就多简洁,但简洁的同时又要能体现你的测试目的.用例的标题最好不要超过30个字,太长会让人看起来很累也很不专业.一般可以遵循这样的公式:主体(可省略) + 动词 +

Robotium编写测试用例如何模拟Junit4的BeforeClass和AfterClass方法1 - 条件判断法

本文来源于:http://blog.csdn.net/zhubaitian/article/details/39293883 Robotium的测试类ActivityInstrumentationTestCase2是继承于Junit3的TestCase类,所以并没有提供Junit4的特性.如网上总结说的: 1.不能通过annotate的方式来识别子类的新特征,如不能实现@beforeclass,@afterclass等特征.只能通过写setup和teardown, 2.TestCase只能以te

如何高效编写测试用例

背景介绍 项目要马上上线,功能已完成80%,没在完整的需求文档,只有零散的Story,但由于流程及各种原因,之前一直没有测试人员的介入.现要在短时间内完成测试用例的编写,并要符合常规用例的规范及要求. 实践过程 梳理测试用例模板,与客户确认模板的覆盖是否满足需求 2小时与BA沟通业务流程,了解整个项目的业务流程及功能点梳理. 使用3-4小时,结合实际项目的功能及Story,自行整理整修业务流程的功能点(使用思维导图软件).与BA确认是否有核心功能的遗漏 2-3小时,编写完成一个模块的测试用例.与