插桩测试是一个被广泛应用的测试方法。插桩测试就是向源程序中插入语句然后执行程序,通过打印语句,获得动态信息(我们最为关心的信息)
③、基本路径测试法
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的
每个可执行语句至少执行一次。重点内容如下:
程序的控制流图:描述程序控制流的一种图示方法。
程序环形复杂度:McCabe复杂性度量。从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。
3.1程序控制流图
程序控制流图(可简称流图)是对程序流程图进行简化后得到的,它突出表示程序控
制流的结构。程序控制流图是描述程序控制流的一种方式。控制流图图形符号;
图形符号:圆圈代表一个结点, 表示一个或多个无分支的语句或源程序语句;
程序控制流边和点圈定的部分叫做区域。当对区域计数时,图形外的一个部分也应记为一个区域;
判断语句中的条件为复合条件时,即条件表达式由一个或多个逻辑运算符连接的逻辑表达式(a and b),则需要改变复合条件的判断为一系列只有单个条件的嵌套的判断。
基本路径测试方法是在控制流图的基础上,通过分析控制结构的环形复杂度,导出执行路径的基本集,再从该基本集设计测试用例。基本路径测试方法包括以下4个步骤:
3.1.1画出程序的控制流图。
3.1.2计算程序的环形复杂度,导出程序基本路径集中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。
3.1.3导出基本路径集,确定程序的独立路径。
3.1.4根据③中的独立路径,设计测试用例的输入数据和预期输出。
④、域测试法
域测试是一种基于程序结构的测试方法,基于对程序输入空间(域)的分析,选择测试点进行测试。主要为:
4.1域错误:程序的控制流存在错误,对于某一特定的输入可能执行的是一条错误路径,这种错误称为路径错误,也叫做域错误;
4.2 计算型错误:对于特定输入执行的路径正确,但赋值语句的错误导致输出结果错误,称为计算型错误;
4.3丢失路径错误:由于程序中的某处少了一个判定谓词而引起的丢失路径错误
⑤、符号测试
符号测试基本思想是允许程序的输入不仅仅是具体的数值数据,而且包括符号值,符号值可以是基本的符号变量值,也可以是符号变量值的表达式
5.1符号测试执行的是代数运算,可以作为普通测试的一个扩充;
5.2符号测试可以看作是程序测试和程序验证的一个折衷办法;
5.3 符号测试程序中仅有有限的几条执行路径;
⑥、Z路径覆盖法
分析程序中的路径是指检验程序从入口开始,执行过程中经历的各个语句,直到出口。
Z路径覆盖对循环机制进行简化,减少路径的数量,使得覆盖所有路径成为可能,简化循环意义下的路径覆盖称为Z路径覆盖;
循环简化:限制循环次数,只考虑循环一次或零次情况;
循环简化的目的是限制循环的次数,无论循环的形式和循环体实际执行的次数,简化后的循环测试只考虑执行循环体一次和零次(不执行)两种情况,即考虑执行时进入循环体
一次和跳过循环体这两种情况。
⑦、程序变异测试法
程序变异是一种错误驱动测试。错误驱动测试是指该方法是针对某类特定程序错误的,要想找出程序中所有的错误几乎是不可能的,解决办法是将错误的搜索范围尽可能地缩小,
以利于专门测试某类错误是否存在。
三、黑盒测试
1、定义:数据驱动测试或者基于规格说明的测试
只检查程序功能是否按照规格说明书规定正常使用,是否能接收数据及产生正确的输出
信息,并且满足数据库或者外部信息的完整性
2、黑盒测试的目的
①、是否有不正确或者遗漏的功能
②、界面是否有误
③、接口上,输入输出是否正确
④、是否有数据结构错误或者外部数据库访问错误
⑤、性能是否满足要求
⑥、初始化或者终止性错误
3、黑盒测试的优点
①、最大程度满足用户需求
②、相同动作可重复执行,枯燥部分可由机器完成
③、根据测试用例针对性的寻找问题,定位更准确,容易生成测试数据
④、测试直接和程序/系统要完成的操作相关联
4、黑盒测试的缺点
①、代码得不到测试
②、如果规格设计错误,很难发现
③、测试不能充分进行
④、结果取决于测试用例的设计
5、黑盒设计方法
①、等价类划分法
②、边界值分析法
③、因果图法
④、判定表驱动法
⑤、场景法
⑥、功能图法
⑦、错误推断法
⑧、正交试验设计法
注意点:确定测试的优先级和测试重点,提高覆盖率,边界值分析必须使用
6、设计用例的策略
①、首先进行等价类划分,包括输入和输出条件,减少工作量提高效率
②、边界值分析,发现错误的能力最强
③、错误推断法,补充用例(这个凭经验)
④、对照需求和业务场景逻辑,检查用例
⑤、如果需求说明含有输入条件,设计开始就用到因果图和判定表驱动法
⑥、参数配置类的软件,要用正交实验法
⑦、功能图法,不同时期条件的有效性来设计数据
⑧、业务流清晰的系统,采用场景法
6.1等价类
①、将所有可能输入数据(有效和无效)划分为若干个等价类,选取代表性的数据当做 测试用例,保证完整性和代表性
有效等价类:合理的有效的输入集合
无效等价类:无效的没有意义的输入集合,检查程序异常
②、等价类划分方法
按照区间、数值、集合、限制条件、处理方式划分
6.2边界值
对输入或输出的边界值进行设计(5/7原则)
6.3因果图
简化逻辑关系,操作步骤较复杂
6.4判定表驱动法
针对不同存在条件、动作关系或者因果关系的设计用例方法
4大组成部分:条件桩,条件项;动作桩,动作项
6.5场景法
事件触发的情景生成场景(同一件事不同触发顺序和处理结果形成事件流)
6.6功能图法
用功能图(流程图)形象的表达操作流(状态迁移图+布尔函数组成)
需要依靠判定表因果图表示逻辑,是黑盒+白盒混合用例的设计方法
6.7错误推断法
基于以往的经验和出现的错误,推测软件可能存在的缺陷和错误,针对性的设计用例
6.8正交实验法
从大量数据中挑选适量的有代表性的,合理设计用例
7、黑盒测试的原则
1、根据需求和规格要求,明确产品要求的正确性
2、针对性的找问题,正确定位
3、根据需求重要性确定测试等级和重点,减少缺陷
4、接口处,输入是否能正确接收,输出是否正确
5、站在用户角度思考,测试
8、测试计划
根据需求中关于功能和性能的要求设计,制定参考范围
四、测试用例
1、什么是测试用例