《单元测试之静态测试课件》由会员分享,可在线阅读,更多相关《单元测试之静态测试课件(12页珍藏版)》请在金锄头文库上搜索。
1、软件静态测试技术软件静态测试技术单元测试之静态测试什么是静态测试?什么是静态测试?n n静态测试,是在不执行代码的情况下对代码进行测试的过程。n n适用对象: 计算机软件单元、计算机软件部件、计算机软件配置项的源代码。n n进入条件: 代码无错误地通过编译。单元测试之静态测试静态测试的方法静态测试的方法n n代码审查代码审查n n代码走查代码走查n n静态分析静态分析 1. 1.控制流分析:使用控制流程图系统检查被测程序控制流分析:使用控制流程图系统检查被测程序的控制结构的工作。的控制结构的工作。 2. 2.数据流分析:使用控制流程图分析数据发生的异数据流分析:使用控制流程图分析数据发生的异常
2、情况。常情况。 3. 3.接口分析:程序静态分析和设计分析。接口分析:程序静态分析和设计分析。 4. 4.表达式分析:检查表达式的错误。表达式分析:检查表达式的错误。单元测试之静态测试单元测试阶段的静态测试流程单元测试阶段的静态测试流程n n1.编译器检查n n2.利用工具进行静态分析n n3.人工代码审查和代码走查 编译器和解释器是第一步的测试单元测试之静态测试单元测试之静态测试静态分析静态分析n n一、规则检查一、规则检查1. 1.代码符合行业规范,国家标准,企业内部规范代码符合行业规范,国家标准,企业内部规范2. 2.把艺术变成科学把艺术变成科学3. 3.去掉隐含的编码缺陷去掉隐含的编码
3、缺陷4. 4.前事不忘后事之师前事不忘后事之师n n常用工具常用工具: :CodeWizardCodeWizard、C+ Test C+ Test 、 LogiscopeLogiscope、CpptestCpptest、 PRQAPRQA单元测试之静态测试静态分析静态分析n n软件度量1.McCabe圏复杂度圏复杂度越大,程序越复杂,可靠性越差,一圏复杂度越大,程序越复杂,可靠性越差,一些标准均要求圏复杂度小于些标准均要求圏复杂度小于10102.注释度量分析注释行的比例为注释行的比例为20%20%30%30%,且头注释、执行,且头注释、执行行注释、声明注释均在对应的位置。行注释、声明注释均在对
4、应的位置。 单元测试之静态测试静态分析静态分析n n静态分析阶段文档n n一般不单独出具静态分析报告,但是可以作为测试过一般不单独出具静态分析报告,但是可以作为测试过程文件提交用户审阅;程文件提交用户审阅;n n一定要填写问题报告单一定要填写问题报告单单元测试之静态测试代码审查、走查代码审查、走查n n代码审查的内容代码审查的内容:检查代码和设计的一致性:即检查代码执行标准的情检查代码和设计的一致性:即检查代码执行标准的情况;检查代码逻辑表达的正确性;检查代码结构的合理性;况;检查代码逻辑表达的正确性;检查代码结构的合理性;检查代码的可读性检查代码的可读性n n代码审查的组织代码审查的组织由四
5、人以上组成:组长,资深程序员,程序编写者由四人以上组成:组长,资深程序员,程序编写者 (秘书)和专职测试人员。组长不能是被测试程序的编写(秘书)和专职测试人员。组长不能是被测试程序的编写者,组长负责分配资料,安排计划,主持开会,记录并保者,组长负责分配资料,安排计划,主持开会,记录并保存被发现的错误。存被发现的错误。n n代码审查单代码审查单请参见请参见GJB141-2004GJB141-2004附录附录A A,也可以根据具体项目情况,也可以根据具体项目情况自行编写自行编写单元测试之静态测试代码审查、走查代码审查、走查n n注意事项注意事项n n时间和地点应该避免被干扰时间和地点应该避免被干扰
6、n n每次不应该超过每次不应该超过6 6个小时,每小时审查个小时,每小时审查150-200150-200行代行代码码n n树立正确的态度树立正确的态度n n实际项目的实施策略:上午组织会议审查,讲解实际项目的实施策略:上午组织会议审查,讲解代码,不超过代码,不超过3 3个小时。下午测试人员和审查组长个小时。下午测试人员和审查组长总结上午的审查结果,填写问题报告单,如果可总结上午的审查结果,填写问题报告单,如果可以,请代码编写人员确认。具体审查的代码行数以,请代码编写人员确认。具体审查的代码行数可以根据实际情况增加或减少。可以根据实际情况增加或减少。单元测试之静态测试软件代码审查问题报告单软件代码审查问题报告单软件名称软件名称审查人员审查人员开发方人员开发方人员文件名:文件名:模块名:模块名:缺陷类型缺陷类型缺陷等级缺陷等级缺陷位置缺陷位置唯一标识唯一标识问题概述问题概述问题详述问题详述填写人填写人报告日期报告日期单元测试之静态测试静态测试是重要的测试方法,静态测试是重要的测试方法,不是独立的测试阶段!不是独立的测试阶段!单元测试之静态测试