版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Chapter 03 静态测试与动态测试(Static Testing And dynamic Testing),軟件測試技術 (Software testing technology) 2012-2013學年第2學期 林平荣,主要内容,1静态测试与动态测试的含义 2代码检查 3静态结构分析 4程序插桩 5逻辑覆盖,白盒测试可分为静态测试和动态测试。 静态测试是一种不通过执行程序而进行测试的技术,其关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。侧重于纠正软件系统在描述、表示和规格上的错误,是任何进一步测试的前提。 动态测试需要软件执行,当软件系统在模拟或真实环境中执行之前、之中
2、和之后,对软件系统行为的分析是动态测试的主要特点。它显示一个系统在检查状态下是正确还是不正确。,静态测试与动态测试的含义,最常见的静态测试是找出源代码的语法错误,可由编译器来完成,因编译器可逐行分析检验程序的语法,找出错误并报告。 除此之外,测试人员须采用人工方法来检验程序,有些地方存在非语法方面错误,只能通过人工检测的方法来判断。 人工检测的方法主要有代码检查法、静态结构分析法等。,3.1 静态测试,代码检查法主要是通过桌面检查,代码审查和走查方式,对以下内容进行检查: (1) 检查代码和设计的一致性; (2) 代码的可读性及对软件设计标准的遵循情况; (3) 代码逻辑表达的正确性; (4)
3、 代码结构的合理性; (5) 程序中不安全、不明确和模糊的部分; (6) 编程风格方面的问题等。,1 代码检查法,(1)桌面检查 (2)代码审查 (3)走查,代码检查方式,代码会审是由一组人通过阅读、讨论和争议对程序进行静态分析的过程。 代码审查小组成员: 组长:能力较强的程序员 待审程序的设计者或程序员 测试专家,代码审查时应注意问题: 提出的建议应针对程序本身,而不应针对程序员。 程序员对整个审查过程采取积极和建设性的态度。,代码走查(code walkthrough) 走查是以小组为单元进行代码阅读的,同样也是一系列规程和错误检查技术的集合。 人员组成 一位经验丰富的程序员 一位程序设计
4、语言专家 一位程序员新手 一位其他不同项目的人员 一位该软件编程小组的成员,必须修改的问题(3) 程序没有注释 程序=代码+注释 注释语句/总代码行数=1/51/4 子函数max没有返回值类型 精度丢失问题 建议修改的问题(3) main函数没有返回值类型和参数表(默认为void main (void) 1行代码只定义1个变量。 程序适当加一些空行 程序中存在未使用的变量,#include max(float x,float y) float z; z=xy?x:y; return(z); main() float a,b; int c,d; scanf(%f,%f, ,测试人员通过使用测试工
5、具分析程序源代码的系统结构、数据结构、数据接口、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图等各种图形、图表,清晰地标识整个软件的组成结构。 通过分析上述图表,包括控制流分析、数据据流分析、接口分析、表达式分析等,使其便于阅读与理解,然后可以通过分析这些图表,检查软件是否存在缺陷或错误。,2 静态结构分析法,静态结构分析法通常采用以下方法进行源程序的静态分析: (1) 通过各种图表对源程序进行静态分析 常用的各种引用表主要有: 标号交叉引用表 变量交叉引用表 子程序(宏、函数)引用表 等价表 常数表, 函数调用关系图:列出所有函数,用连线表示调用关系,通过应用程
6、序各函数之间的调用关系展示系统的结构。 模块控制流图:由许多结点和连接结点的边组成的图形,其中每个结点代表一条或多条语句,边表示控制流向,可直观反映出一个函数的内部结构。,常用的关系图、控制流图,静态错误分析主要用于确定在源程序中是否有某类错误或“危险”结构。 类型和单位分析 引用分析 表达式分析 接口分析,(2) 错误静态分析,在软件动态测试中,程序插桩是一种基本的测试手段,有着广泛的应用。 程序插桩方法是借助往被测程序中插入操作,来实现测试目的的方法,即向源程序中添加一些语句,实现对程序语句的执行、变量的变化等情况进行检查。,3.2 程序插桩技术,想了解一个程序在某次运行中所有可执行语句被
7、覆盖的情况,或是每个语句的实际执行次数,最好的办法是利用插桩技术。 以计算整数X和整数Y的最大公约数程序为例,说明插桩方法的要点。图3-1给出了这一程序的流程图。,图3-1 插桩后求最大公约数程序的流程图,设计插桩程序时需要考虑的问题包括: 探测哪些信息; 在程序的什么部位设置探测点; 需要设置多少个探测点; 程序中特定部位插入某些用以判断变量特性的语句。如.NET里的插入断言语句: Debug.Assert(this.textBox3.Text.Length0,“输入值为空!); int a = Int32.Parse(this.textBox3.Text);,逻辑覆盖是白盒测试中动态测试技
8、术主要方法之一,是以程序内部的逻辑结构为基础的测试技术,通过对程序逻辑结构的遍历实现程序的覆盖,要求测试人员对程序的逻辑结构有清楚的了解。,3.3 逻辑覆盖,逻辑覆盖原则,保证一个模块中的左右独立路径至少被使用一次 对所有逻辑值均需测试true和false 在上下边界及可操作范围内运行所有循环 检查内部数据结构以确保其有效性,从覆盖源程序语句的详细程度分析,逻辑覆盖标准有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。 为便于理解,根据下面所示的2个被测试程序(用C语言书写),分别讨论几种常用的覆盖技术。,程序1如下: Void js(float A,float B,float X
9、) if( A1 ,图3-3 程序1流程图,程序2如下: void DoWork(int x,int y,int z) int k=0,j=0; if(x3) 语句块3 ,图3-4 程序2流程图,1语句覆盖 语句覆盖使程序中每个语句至少都能被执行一次。 如程序1中,为使程序中每个语句至少执行一次,只需设计一个能通过路径a-c-e的数据就可以了,例如选择输入数据为:A=2,B=0,X=3就可达到“语句覆盖”标准。 在程序2中,如测试用例输入为:x=4、y=5、z=5 程序执行的路径是:a-b-d。,2 判定覆盖 比语句覆盖稍强的覆盖标准是判定覆盖。 设计若干测试用例,运行被测程序,使得程序中每个
10、判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。 判定覆盖又称为分支覆盖。,3 条件覆盖 在设计程序中,一个判定语句是由多个条件组合而成的复合判定。 条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。,4条件判定组合覆盖 条件判定组合覆盖的含义是:设计足够的测试用例,使得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。,5多条件覆盖 多条件覆盖也称为条件组合覆盖,其含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。 显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。,测试覆盖准则 (1)Foster的ESTCA覆盖准则 前面介绍的逻辑覆盖其出发点似乎是合理的。 所谓“覆盖”,就是想要做到全面而无遗漏。但是,事实表明,它并不能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华北电力大学非事业编制人员招聘2人考试备考试题及答案解析
- 现浇水磨石楼地面施工方案
- 成都市成华区2026年上半年公开考核招聘教师(30人)考试参考题库及答案解析
- 消防应急预案演练方案
- 铁路信号设备安装施工方案
- 2026年医院呼吸机相关性肺炎预防与控制实施方案
- 2026年教师家校沟通能力提升工作计划教师家校沟通能力提升工作方案
- 中考历史生物试卷
- 2026广西南宁市景华学校招聘小学体育教师1名笔试备考试题及答案解析
- 安徽高级厨师考试题目及答案
- 江西省重点中学协作体2026届高三下学期第一次联考英语试卷(不含音频及听力原文答案不全)
- 太原铁路局集团招聘笔试题库2026
- 企业信息安全事件应急响应与处理手册
- 行业招聘面试问题清单专业能力测试版
- 广西机场管理集团秋招试题及答案
- 上交所2026校招笔试题
- 2026江西省港口集团有限公司第一批次社会招聘17人笔试备考试题及答案解析
- 车间内部转运车管理制度
- 2026年南阳农业职业学院单招职业技能考试题库及答案详解(各地真题)
- 城市更新改造类项目合作框架协议
- 麻醉门诊评估指南解读
评论
0/150
提交评论