您好,欢迎访问三七文档
白盒测试第一章、白盒测试与代码质量几个问题•对测试过的软件有足够信心吗?•系统测试覆盖了多少代码?•某些难执行到的异常处理分支测试到了吗?•实验室里无法难模拟出真实的测试环境,怎么办?2本章学习目标•了解白盒测试的目的•了解白盒测试和黑盒测试的联系•掌握白盒测试的策略•了解使用LogiScope度量代码质量3隐藏的错误使用一个经过运算处理后的数据作为除数进行运算:floatDiv=sqrt(2)*sqrt(2)-2;floatmod=0.0;….if(Div==0){printf(”除数为0,退出”);return;}else{mod=BeDiv/Div;}4内容进度•白盒测试–白盒测试的目的–白盒测试和黑盒测试的联系–白盒测试的策略•代码质量–代码度量–使用LogiScope度量代码质量–代码检查工具5白盒测试•又称透明盒测试、逻辑驱动测试•是测试被测单元内部如何工作的一种测试方法•允许测试人员根据程序内部逻辑结构及有关信息来设计测试用例,对程序的逻辑结构进行测试•可覆盖全部代码、分支、路径和条件等6白盒测试目的•保证一个模块中的所有独立路径至少被执行一次;•对所有的逻辑值均需要测试真、假两个分支;•在上下边界及可操作范围内运行所有循环;•检查内部数据结构以确保其有效性。7白盒测试和黑盒测试比较白盒测试黑盒测试联系白盒测试和黑盒测试都是软件测试的一个方面;两者有时结合起来同时进行测试,称为“灰盒测试”;区别依据程序的内部结构设计测试用例依据规格说明书设计测试用例需要源代码不需要源代码,需要可执行文件无法检验程序的外部特性,无法测试遗漏的功能需求从用户的角度出发进行测试关心程序内部结构、逻辑以及代码的可维护性关心程序的外在功能和非功能表现编码、集成测试阶段进行确认测试、系统测试阶段进行8白盒测试的策略•桌前检查(DeskCheck)•单元测试(UnitTesting)•同行评审(PeerReview)•代码评审(CodeReview)•代码走查(Walkthrough)•静态分析(staticanalyse)9白盒测试对测试人员的要求•做白盒测试需要开发部门提供的资料•了解软件语言•了解软件开发技术•有开发经验最好•掌握白盒测试工具•掌握白盒测试用例设计方法•掌握开发人员编程中容易出现的问题,不断积累经验10内容进度•白盒测试–白盒测试的目的–白盒测试和黑盒测试的联系–白盒测试的策略•代码质量–代码度量–使用LogiScope度量代码质量–代码检查工具11软件质量•软件质量–《GB/T16260-1996(idtISO/IEC9126:1991)信息技术软件产品评价质量特性及其使用指南》功能性:适合性、准确性、互操作性、依从性、安全性;可靠性:成熟性、容错性、易恢复性;易用性:易理解性、易学性、易操作性;效率:时间特性、资源特性;可维护性:易分析性、易改变性、稳定性、易测试性;可移植性:适应性、易安装性、遵循性、易替换性;•常用指标–缺陷率(缺陷密度):每千行源代码的缺陷数,每个功能点或其他单元中的缺陷数–可靠性(运行n小时失效次数):运行n小时的实效次数,平均无失效时间或者规定的时间段内无故障运行的概率–顾客满意度12影响软件质量的因素13影响软件质量的因素•1、数据质量管理可分为人工比对、程序比对、统计分析三个层次•2、编程质量管理层次可分为黑盒测试、灰盒测试、白盒测试、编译检查、编程规范、编程逻辑、编程优化•3、文档质量管理层次包括文档规范、文档语法、文档语义、文档逻辑、文档美学、文档优化•4、措施质量管理层次包括质量检查、质量保证、预防不合格品、完美无缺•5、项目管理质量包括组织资源、组建团队、设定目标、确定范围、确定优先级、管理风险、建立沟通机制等内容,其层次分为通用术语、通用过程、单一方法、基准比较、持续改进•6、过程质量管理层次,质量概念,不仅涵盖产品,还包括企业的整个运营过程,贯穿产业链的各个环节•7、企业质量环境层次企业质量环境是有关创建和管理质量环境的管理,包括质量规划、资源组织、提供相关工具等,其层次可分为质量形象、质量制度、质量战略、质量文化、企业文化、全社会质量意识•8、标准层次,谁掌握了标准的使用,谁掌握了标准的制定权,谁就可以抢占先机•9、人员质量是所有工作质量的基础。要提高工作质量,就要以人为本,根本的问题是提高人的质量14代码质量对软件质量的贡献•代码是软件产品中的重要部分•代码质量反映软件质量•其它非代码因素也起着关键作用•文档(设计、帮助、用户手册等)15制约程序员编写高质量代码的因素•对需求和设计的理解不透彻•对软件业务流程不熟悉•没有开发经验•对开发工具或开发语言不熟悉•受情绪因素的影响等因素•其它非代码因素也起着关键作用16如何提高代码质量培训业务技术工具和语言审查和监督编码规范测试……..17编码规范和标准•坚持标准和规范的原因–可靠性–可读性/可维护性–移植性18代码审查单•代码审查单代码审查单数据引用错误数据声明错误计算错误函数参数错误比较错误输入/输出错误其它检查控制流程错误19代码质量度量•程序复杂性:费用、周期、错误代码行度量法McCabe度量法Halstead软件科学法结构度量20代码度量-代码行度量21Windows的代码行复杂度22代码度量-Halstead软件科学法•程序=运算符化+运算元结构度量•Halstead公式–N=N1+N2=n1log2(n1)+n2log2(n2)•N1=运算符出现的总次数•N2=运算元出现的总次数•n1=不同运算元的个数•n2=不同运算符的个数23代码度量-Halstead软件科学法例:FORTRAN语言写出的交换排序的例子。因此:预测的词汇量H=n1·log2n1+n2·log2n2=10·log210+7·log27=52.87实际的词汇量N=N1+N2=28+22=50程序的词汇表n=n1+n2=10+7=1724代码度量-结构度量•扇入:调用该模块的模块计数;•扇出:该模块所调用的模块计数;•使用扇入、扇出来评价软件设计–具有大扇入和大扇出的模块可能是不良设计。这种模块可能未能正确分解并需要重新设计。–程序复杂性与扇出的平方成正比25McCabe度量法26辅助分析工具PC-lint:代码规则走查工具CodeWizard:C/C++代码分析工具McCabe:软件质量度量方法TestBed:源代码检查工具Logiscope:源代码规则检查工具2728辅助分析工具Logiscope代码检查工具29本章内容总结•白盒测试的作用•白盒测试的策略•白盒测试与黑盒测试的联系•提高代码质量的方法•运用代码编写规范、代码检查单•代码质量度量的方法•使用LogiScope30
本文标题:白盒测试与代码质量
链接地址:https://www.777doc.com/doc-3247187 .html