软件测试基础知识二——编写测试用例的方法

来源:互联网 发布:深圳大数据研究中心 编辑:程序博客网 时间:2024/05/22 16:01
什么是测试用例?
测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程
序路径或核实是否满足某个特定需求。

通俗的讲:就是把我们测试系统的操作步骤用按照一定的格式用文字描述出来。


写测试用例有什么好处?
理清思路,避免遗漏
这里是我们认为最重要的一点,假如我们测试的项目大而复杂,我们可以把项目功能细分,根
据每一个功能通过编写用例的方式来整理我们测试系统的思路,避免遗漏掉要测试的功能点。
跟踪测试进展。通过编写测试用例,执行测试用例,我们可以很清楚的知道我们的测试进度。


使用等价类和边界值设计测试用例
测试的时候可能会遇到下列问题
不知道是否较全面的测试了所有内容
不知道所有功能是否都测到了
不清楚每个功能点是否都测试全面了
存在大量冗余测试,影响测试效率
有些功能点可能测试多次
对新版本的重复测试很难实施
每个版本测试的步骤,数据都不一样,随意性很强
这时候就要使用一些科学的方法来指导我们测试了


等价类划分
等价类划分属于典型的测试方法,根据程序对数据的要求,把程序的输入域划分成若干个部
分,区分出哪些数据是有效的,哪些数据是无效的,从每个部分中选取少数代表性数据作为测
试用例。这样,每一类的代表性数据在测试中的作用都等价于这类中的其他值。(举例:人大
代表,选举的都是典型的人物,代表了整个区或者省的人民。以此来对该地区进行评判和分
析。)


应用场合
只要有数据输入的地方,就可以使用,从无限多的数据中选取少数代表性的数据进行测试


有效等价类
对程序规格有意义、合理的输入数据集合,程序接收到有效等价类数据,可以正确执行、计
算。


无效等价类
对程序规格无意义、不合理的输入数据集合,程序接收到无效等价类数据,应该给出数据提
示,或者根本不给予用户输入
有效等价类:
a.对程序的规格说明有意义、合理的输入数据集合。
b.如果用户输入有效等价类中的数据,程序应该正确计算、执行
无效等价类:
a.对程序的规格说明不合理的或无意义的输入数据集合。
b.如果用户输入无效等价类中的数据,程序应该给予错误提示或者根本不允许用户输
入。


使用等价类划分编写用例
首先:明确测试对象,对于初学者,先一个控件一个控件去测,在测一个控件的时候,保证其
他控件不要出错。
举例,两位整数加法计算器基本需求:
1.第一个数和第二个数都是只能输入-99到99之间的整数
2.对于输入的小于-99的数据或者大于99的数据,程序应给出明确提示
3.对于输入的小数、字符等非法数据,程序应给出明确提示

划分
有效等价类:-99~99之间整数
无效等价类:小于-99整数
无效等价类:大于99整数
无效等价类:小数、字符等非法数据


等价类的特点
每一类的代表性数据(也就是被选为测试用例的数据)在测试中的作用等价于这一类的其他值。
如果等价类中的一个测试能够捕获一个缺陷,那么选择该等价类中的其他测试也能捕获该缺
陷。如果等价类中的一个测试不能捕获缺陷,那么选择该等价类中的其他测试也不会捕获缺陷。


边界值
边界值一般和等价类方法一起应用,找到有效无效数据的分界点(最大值和最小值)及其两边的
点进行测试,形成一套完整的测试方案。
如何解决这类问题?
找到测试数据的边界点,也就是有效等价类和无效等价类的边界点,对边界点数据专门进行测
试。一般情况下,需要对边界值(-99和99)以及边界值两边的数(-100和-98以及100和98)分别进行
测试
如何使用:
把边界值的点(3个点)单独写用例。
说明:边界值数据本质上可以归为有效和无效的范畴,但从测试技术角度来讲,需要单独拿出
来测试.
边界值分析方法的例子
1.对于1Byte的正整数而言255和0是边界
2.对于屏幕光标,最左上、左下、右上、右下位置
3.一个表格的第一行和最后一行
4.数组元素的一个和最后一个
通过这里可以看到,边界值不一定是数字,也可能是一个位置。


因果图


因果图概述:
在一个功能模块或一个界面中,往往会有多个控件,这些控件一般会有一定的制约关系或者是
组合关系,并且输出以来于输入的条件。如果只是单独去测每个控件,往往使测试有很多冗余
数据,同时又会造成测试的不全面,遗漏一些数据,这样,在设计测试用例时,可以使用因果
图法,考虑这些输入的组合以及输出对输入的依赖关系。

因果图应用场合:
在一个界面中,有多个控件,测试的时候要考虑控件的组合关系,不同的控件组合会产生不同
的输出结果的组合,为了弄清什么样的输入组合会产生什么样的输出组合,使用因果图法


因果图核心:
因果图的”因” – 输入条件
因果图的”果”-输出结果
使用图形的方式,分析软件输入和输出的对应关系
因果图法要考虑所有输入条件的相互制约关系以及组合关系
输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即”因果
关系”


因果图图形符号:
1.基本图形
表示输入和输出的对应关系


恒等:
含义:若原因出现,则结果出现;若原因不出现,则结果也不出现
若a = 1,则b = 1;
若 a = 0,则b = 0;
非:
含义:若原因出现,则结果不出现;若原因不出现,则结果出现
若a = 1;则b = 0
若a = 0;则b = 1
或:
含义:若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现
若a = 1,或b = 1,或c = 1,则d = 1
若 a = b= c= 0,则d = 0;
与:
含义:若几个原因都出现,结果才出现;若其中有一个原因不出现,则结果不出现
若a=b=c=1.则d=1
若a=0或b=0或c=0,则d =0;


判定表
在程序设计发展的初期,判定表就已经被当做编写程序的辅助工具了。可以把复杂的逻辑关系
和多种条件组合的情况表达的既具体又明确,能够将复杂的问题按照各种可能的情况全部列举
出来,简明并避免遗漏。
因此,在一些数据处理问题当中,若某些操作的实施依赖于多个逻辑条件的组合,即针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。等价类划分法和边界值分析方法比较适合输入变量或输入条件相互独立的情况,但是当输入变量或书条件相互依赖、相互制约的时候,采用等价类类划法和边界值分析方法是难以描述的,测试效果也很难保障。


什么是判定表驱动法?
判定表驱动法(或决策表法)是根据需求描述简历判定表后,导出测试用例的方法.
1. 在所有的黑盒测试方法中,基于判定表的测试是最为严格,最具有逻辑性的测试方法
2. 可以设计出完整的测试用例集合


什么是判定表?
判定表(也称决策表)是一个用来表示条件和行动的二维表,是分析和表达多逻辑条件下执行不
同操作的情况的工具。
1. 可以清晰的表达条件、决策规则和应采取的行动之间的逻辑关系。
2. 判定表很适合描述不同条件集合下采取行动的若干组合的情况。


场景法定义
现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件
不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可引入到软件测试
中,可以比较生动地描绘出事件触发时的情景,有利于测试设用例场景用来描述流经用例的路
径,从用例开始到结束遍历这条路径上所有基本流和备选流。

应用的范围
1)基本上每个软件都会用到这种方法,因为每个软件后面都有业务的支撑
2)比较常见的有: 网上购物流程, ATM机取款流程等
步骤
画出需要测试路径的流程图(一般选择工具Office Visio,后面我们会学习用Visio画流程图)
分析基本流和备选流
根据基本流和备选流设计测试用例


错误推测法

错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,
从而有针对性地编写检查这些错误的测试用例的方法。


0 0
原创粉丝点击