版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六讲 结构化实现白盒测试,主讲人:杨兵,几个问题,对测试过的软件有足够信心吗? 如何预防内存泄漏问题? 系统测试覆盖了多少代码?某些难执行到的异常处理分支测试到了吗? 实验室条件无法难模拟出真实的测试环境,怎么办?,隐藏的错误,使用一个经过运算处理后的数据作为除数进行运算:,float Div=1.0; if(Div=0) printf(“除数为0,退出”); return; else mod=BeDiv/Div; ,内容进度,白盒测试 白盒测试的目的 白盒测试和黑盒测试的联系 白盒测试的策略 代码质量 代码度量 使用LogiScope度量代码质量 代码检查工具,白盒测试,又称透明盒测试、逻
2、辑驱动测试 是测试被测单元内部如何工作的一种测试方法 允许测试人员根据程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑结构进行测试 可覆盖全部代码、分支、路径和条件等,白盒测试和黑盒测试比较,白盒测试目的,保证一个模块中的所有独立路径至少被执行一次; 对所有的逻辑值均需要测试真、假两个分支; 在上下边界及可操作范围内运行所有循环; 检查内部数据结构以确保其有效性。,白盒测试的策略,桌前检查(Desk Check) 单元测试(Unit Testing) 同行评审(Peer Review) 代码评审(Code Review) 代码走查(Walkthrough) 静态分析(static
3、analyse) 静态分析报告、代码质量报告,白盒测试对测试人员的要求,了解软件语言 了解软件开发技术 有开发经验最好 掌握白盒测试工具 掌握白盒测试用例设计方法 掌握开发人员编程中容易出现的问题,不断积累经验,内容进度,白盒测试 白盒测试的目的 白盒测试和黑盒测试的联系 白盒测试的策略 代码质量 代码度量 使用LogiScope度量代码质量 代码检查工具,软件质量,软件质量 要求产品中没有BUG 常用指标 缺陷率(缺陷密度 ) 可靠性(运行n小时失效次数) 顾客满意度 软件质量反映的三个方面 软件需求 开发准则 隐含的需求,代码质量对软件质量的贡献,代码是软件产品中的重要部分 代码质量反映软
4、件质量 其它非代码因素也起着关键作用 文档(设计、帮助、用户手册等),制约程序员编写高质量代码的因素,对需求和设计的理解不透彻 对软件业务流程不熟悉 没有开发经验 对开发工具或开发语言不熟悉 受情绪因素的影响等因素 其它非代码因素也起着关键作用,如何提高代码质量,编码规范和标准,坚持标准和规范的原因 可靠性 可读性/可维护性 移植性,代码审查单,代码审查单,代码质量度量,程序复杂性:费用、周期、错误,代码行度量法,McCabe度量法,Halstead软件科学法,结构度量,代码度量-代码行度量,代码度量-Halstead软件科学法,程序=运算符化+ 运算元结构度量 Halstead公式 N=N1
5、+N2=n1log2(n1)+n2log2(n2) N1=运算符出现的总次数 N2=运算元出现的总次数,代码度量-结构度量,扇入:调用一给定模块的模块计数; 扇出:给定模块所调用的模块计数; 使用扇入扇出来评价软件设计 具有大扇入和大扇出的模块可能是不良设计。这种模块可能未能正确分解并需要重新设计。,McCabe度量法,辅助分析工具,对源代码进行分析经常需要辅助分析工具,PC-lint:代码规则走查工具,CodeWizard:C/C+代码分析工具,McCabe:软件质量度量方法,TestBed:源代码检查工具,Logiscope:源代码规则检查工具,Logiscope代码检查工具,学习目标,逻
6、辑驱动覆盖测试 语句覆盖 判定(分支)覆盖 条件覆盖 判定条件覆盖 条件组合覆盖 路径测试覆盖,逻辑覆盖测试用例设计技术,逻辑驱动覆盖 基本路径覆盖 循环语句覆盖,逻辑驱动覆盖测试,针对程序的内部逻辑结构设计测试用例 通过运行测试用例达到逻辑覆盖目的 是最传统最经典的白盒测试技术 要求测试人员对程序的逻辑结构非常清楚,例子代码,先看下面代码:,void DoWork(int x,int y,int z) int k=0,j=0; if( x3 ) /语句块3 ,辅助方法流程图,x3 si;s+) fwrite( .,循环测试嵌套循环,嵌套循环:,从最内层循环开始,将其它循环设置为最小值; 对最
7、内层循环使用简单循环,而使外层循环的叠代参数(即循环计数)最小; 由内向外构造下一个循环的测试,但其它的外层循环为最小值,并使其它的嵌套循环为“典型”值; 继续直到测试所有的循环。,嵌套循环举例,举例: for(i=0; i0) j-; ,循环测试,串接循环:,如果串接循环的循环都彼此独立,可是使用嵌套的策略测试。但是如果两个循环串接起来,而第一个循环是第二个循环的初始值,则这两个循环并不是独立的。如果循环不独立,则推荐使用的嵌套循环的方法进行测试。,循环测试,不规则循环:,不能测试,尽量重新设计给结构化的程序结构后再进行测试。,总结,逻辑驱动覆盖测试 语句覆盖 判定覆盖 条件覆盖 判定条件覆
8、盖 条件组合覆盖 路径覆盖,内容进度,控制流图 程序环路复杂性 导出测试用例,基本路径测试,它在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每一个可执行语句至少执行一次。,前提条件,被测试对象有了一定的了解,基本上明确了被测试软件的逻辑结构,基本路径测试,代码,步骤一,画出程序的控制流图,控制流图符号,例子,void sort(int iRecordNum,int iType) 1 2 int x=0; 3 int y=0; 4 while (iRecordNum- 0) 5 6 if(0= =iTyp
9、e) 7x=y+2; 8 else 9 if(1= =iType) 10 x=y+10; 11 else 12 x=y+20; 13 14 ,绘制流程图,绘制控制流图,复合条件流图表示,1 if a or b 2 x 3 else 4 y,对应的逻辑为:,判定节点:包含条件的结点 被称为判定结点,从每一个 判定结点发出两条或多条边。,内容进度,控制流图 程序环路复杂性 导出测试用例,步骤二,画出程序的控制流图,计算程序圈复杂度,导出测试用例,执行测试用例,计算程序圈复杂度,计算圈复杂度方法,有以下两种方法计算圈复杂度:,计算圈复杂度,对应上面圈复杂度的算法,计算如下:,内容进度,控制流图 程序
10、环路复杂性 导出测试用例,导出测试用例,画出程序的控制流图,计算程序圈复杂度,导出测试用例,执行测试用例,导出测试用例,导出基本路径集,根据上面的计算方法,可得出四个独立的路径: 路径1:4-14 路径2:4-6-7-14 路径3:4-6-8-10-13-4-14 路径4:4-6-8-11-13-4-14,测试用例,执行测试用例,画出程序的控制流图,计算程序圈复杂度,导出测试用例,执行测试用例,执行测试用例,执行测试用例,void sort(int iRecordNum,int iType) 1 2 int x=0; 3 int y=0; 4 while (iRecordNum- 0) 5 6 if(0= =iType) 7x=y+2; 8 else 9 if(1= =iType) 10 x=y+10; 11 else 12 x=y+20; ret=x; 15 ,驱动模块/主程序,void sort(int iRecordNum,int iType); int ret; int main( ) sort(0,0); if(0=ret) printf(“pass”); else printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械定时闹钟课程设计
- 机械学不学建模课程设计
- 港口危险废物管理应急措施
- 低空经济产业趋势与市场前景的全面展望
- 山东省临淄外国语实验学校七年级信息技术下册 编辑数据教案
- 机械制造培训课程设计
- 机械制图课程设计
- 机械刀具课程设计
- 2016年贵州省安顺市中考真题语文试题(解析版)
- 机械仿生课程设计
- 变压器拆除施工方案及流程
- 电力线路暴雨受灾预案
- 洋流的分布及其影响
- 新人教版八年级物理上册导学案全册
- 中国乒乓球自动发球机行业市场现状分析及竞争格局与投资发展研究报告2024-2029版
- 利用好课外阅读提升综合素养
- 医院预防接种培训课件
- 大学生职业规划大赛成长赛道参赛作品
- 《幼儿教师应用文写作》课程标准
- 日间照料及居家养老服务中心运营实施方案
- 河南省部分地区2023年中考语文一模试卷汇编:文学类文本阅读
评论
0/150
提交评论