软件结构性测试.ppt
《软件结构性测试.ppt》由会员分享,可在线阅读,更多相关《软件结构性测试.ppt(84页珍藏版)》请在三一文库上搜索。
1、软件结构性测试,概览,在本章中,我们将学习: 结构性测试概述 程序结构分析 逻辑覆盖 结构性测试案例,目标,完成此课程之后,学员将具备以下能力: 了解结构性测试的含义 进行程序结构分析 使用逻辑覆盖的方法进行白盒测试 使用Devpartner进行白盒测试,课程目录,结构测试概述 程序结构分析 逻辑覆盖 结构测试案例分析 结构测试工具使用,结构测试定义,把测试对象看做一个透明的盒子 白盒测试是根据被测程序的内部结构设计测试用例并完成测试的一种测试方法 白盒测试或逻辑驱动测试 基于一个应用代码的内部逻辑知识,测试覆盖全部代码、分支、路径和条件,结构测试特点,可以构成测试数据使特定程序部分得到测试
2、有一定的充分性度量手段 可获得较多工具支持 通常只用于单元测试,结构测试的方法,程序结构分析 代码走查 代码审查 控制流分析 数据流分析 信息流分析,逻辑覆盖 语句覆盖 分支覆盖 条件覆盖 分支-条件覆盖 路径覆盖,结构测试的局限,不可能查出程序是否违反了设计规范 不可能查出程序中因遗漏路径而出错 可能发现不了一些与数据有关的错误 不易生成测试数据,代码覆盖率,采用白盒法进行测试时,考虑的是测试用例对程序内部逻辑的覆盖程度 最彻底的白盒法是覆盖程序中的每一条路径,但这往往无法实现 采用其它一些标准来量度覆盖的程度,并希望覆盖程度尽可能高些,课程目录,结构测试概述 程序结构分析 逻辑覆盖 结构测
3、试案例分析 结构测试工具使用,程序结构分析,代码走查 代码审查 控制流分析 数据流分析 信息流分析,代码走查,含义 代码走查是由一组程序和错误检查技术组成,并以代码审查组方式进行 人员 组长(有威信的资深程序员担任):负责分配资料、安排计划、主持会议、记录并保存被发现的错误 资深程序员 测试人员 程序开发员(可做会议主持),代码走查,原因 功能性测试很难实现 有太多的条件 有太多的测试用例,代码审查,内容 检查代码和设计的一致性 检查代码对标准的遵循、可读性 检查代码的逻辑表达的正确性 检查代码结构的合理性,代码审查,步骤 准备 程序阅读 审查会 跟踪及报告,控制流分析,非结构化程序会给测试、
4、排错、和程序的维护带来许多困难 要求写出的程序结构良好 检查程序的控制结构成为十分有意义的工作,程序流程图,1,3,2,5,控制流图,1,2,4,3,5,a,b,c,d,e,f,控制流图,节点 标有编号的圆圈 程序流程图中矩形框所表示的处理 菱形表示的两个甚至多个出口判断 多条流线相交的汇合点,控制流图,控制流线或弧 箭头 与程序流程图中的流线一致,表明了控制的顺序 控制流线通常标有名字,控制流图矩阵,1,2,3,4,5,1,2,3,4,5,控制流图矩阵,便于机器表示和处理控制流图 连接弧的节点的号码决定了矩阵中元素的位置 注意控制流的方向 两个节点没有弧线,所对应的位置也就没有元素,程序结构
5、的基本要求,写出的程序不应包含: 转向并不存在的标号 没有用的语句标号 从程序入口进入后无法达到的语句 不能达到停机语句的语句,数据流分析,查找引用未定义变量等程序错误 查找对以前未曾使用的变量再次赋值等数据流异常的情况 常见的错误表现形式 错拼名字 名字混淆 语句丢失,数据流,如果程序中某一语句执行时能改变某程序变量V的值,则称V被该语句定义 如果一语句的执行引用了内存中变量V的值,则称V被该语句引用 例如: X=Y+Z; if YZ then return;,控制流图与数据流表,1,2,3,4,10,6,7,5,8,9,11,信息流分析,通过对输入数据、输出数据、语句之间的关系的分析来检查
6、程序错误 整除算法例子 输入:in_m是被除数,in_n是除数 输出:out_q是商,out_r是余数,整除算法例子,out_q = 0; out_r = in_m; While(out_r = in_n) out_q +; out_r = out_r in_n; ,信息流关系图,in_m,in_n,1,2,3,4,5,out_q,out_r,1,2,3,4,5,out_q,out_r,in_m,In_n,(1),(2),(3),信息流分析,能够列出对输入变量的所有可能的引用 在程序的任何指定点检查其执行可能影响某一输出变量值的语句 输入输出关系提供一种检查,看每个输出值是否由相关的输入值,而
7、不是其他值导出,课程目录,白盒测试概述 程序结构分析 逻辑覆盖 结构测试案例分析 结构测试工具使用,覆盖准则,测试到什么地步可以结束测试? 覆盖准则,被测小程序,if (A 1 ,被测程序段流程图,A 1 & B = 0,a,A = 2 | X 1,X = X/A,F,T,b,c,X = X + 1,T,e,F,d,逻辑覆盖测试方法,语句覆盖 分支覆盖 条件覆盖 分支-条件覆盖 路径覆盖,语句覆盖,原理:如果语句中有错误,仅靠观察不执行可能发现不了 在测试时,首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次 若干个 - 尽量少 语句覆盖、程序段覆盖、程序块覆盖,语
8、句覆盖率,语句覆盖率 已执行的可执行语句占程序中可执行语句总数的百分比 复杂的程序不可能达到语句的完全覆盖 语句覆盖率越高越好,语句覆盖测试用例,达到语句覆盖100%的测试用例(路径ace) A = 2 B = 0 X = 3,未达到语句覆盖100%的测试用例(路径abe) A = 2 B = 1 X = 3,语句覆盖的优点,检查所有语句 结构简单的代码的测试效果较好 容易实现自动测试 代码覆盖率高 如果是程序块覆盖,则不涉及程序块中的源代码,语句覆盖不能检查出的错误,条件语句错误 “A 1 & B = 0” - “A 0 & B = 0” 逻辑运算(&、|)错误 “A 1 & B = 0”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 结构性 测试
链接地址:https://www.31doc.com/p-2612248.html