
代码覆盖测试
代码覆盖测试
概述
函数覆盖(Function Coverage),有执行到程式中的每一个函数(或副程式)吗。
语句覆盖(Statement Coverage),又称行覆盖(Line Coverage),段覆盖(Segment Coverage),基本块覆盖(Basic Block Coverage),这是最常用也是最常见的一种覆盖方式,就是度量被测代码中每个可执行语句是否被执行到了。这里说的是“可执行语句”,因此就不会包括像C++的头文件声明,代码注释,空行,等等。非常好理解,只统计能够执行的代码被执行了多少行。需要注意的是,单独一行的花括号{}也常常被统计进去。语句覆盖常常被人指责为“最弱的覆盖”,它只管覆盖代码中的执行语句,却不考虑各种分支的组合等等。假如你的上司只要求你达到语句覆盖,那么你可以省下很多功夫,但是,换来的确实测试效果的不明显,很难更多地发现代码中的问题。
判断覆盖(Decision Coverage),又称分支覆盖(Branch Coverage),所有边界覆盖(All-Edges Coverage),基本路径覆盖(Basic Path Coverage),判定路径覆盖(Decision-Decision-Path)。它度量程序中每一个判定的分支是否都被测试到了。这句话是需要进一步理解的,应该非常容易和下面说到的条件覆盖混淆。因此我们直接介绍第三种覆盖方式,然后和判定覆盖一起来对比,就明白两者是怎么回事了。
条件覆盖(Condition Coverage),它度量判定中的每个子表达式结果true和false是否被测试到了。
路径覆盖(Path Coverage),又称断言覆盖(Predicate Coverage)。它度量了是否函数的每一个分支都被执行了。 这句话也非常好理解,就是所有可能的分支都执行一遍,有多个分支嵌套时,需要对多个分支进行排列组合,可想而知,测试路径随着分支的数量指数级别增加。
广州赛度检测服务有限公司是经广州市工商行政管理局批准成立,是与国家实验室及区域性地方实验室展开合作的,覆盖全国的软、硬件检测服务机构,以公平、公正、公开、科学的检测服务要求,为国家鼓励科技产业发展、民族经济建设提供专业的第三方检测及第三方评估服务。主营业务范围包括:软件测试服务;无线通信网络系统性能检测服务;无损检测;电子产品检测;科技中介服务;科技项目评估服务;科技成果鉴定服务;科技信息咨询服务;科技项目代理服务;科技项目招标服务;企业管理咨询服务;教育咨询服务;企业财务咨询服务;专利服务;商标代理等服务;版权服务;软件开发;信息系统集成服务;等经营范围并且有相关服务项目的专业性服务机构。
公司拥有专业的服务团队,资深的顾问团队及深厚的行业背景。并建立了三大科技咨询平台:
科技.咨询网
软件测试服务中心
思谋科技服务网:)
统一服务热线:020- 22072909 QQ: 3129015191 2649046091
公司地址:广东从化经济开发区高技术产业园工业大道1号2108房
公司以国家及行业相关标为依据,以国家级专业、权威实验室为平台,结合企业产品的实际情况及检测须求等,制定相应的可行方案,帮助企业快速完善检测文件,同时以检测为核发帮助规划建立企业研发管理体系、资质申请及维护、知识产权申请及保护服务等。通过我司的检测服务,不仅使企业能顺利通过产品检测或项目验收,更能通过我司的知识产权服务、企业资质规划申请服务,使企业进一步享受国家对科技政策的扶持与鼓励,更进一步提升企业形象、产品品牌。
软件测试内容
互联网药品交易服务系统软件测评服务、工业控制系统安全可靠性、基础软件产品检测服务、数控机床与高端装备制造业软件测评、移动互联网应用软件测评、电力信息系统测试、轨道交通信息系统及其设备专项检测、汽车行业的嵌入式软件测试、工业控制的嵌入式系统测试、嵌入式医疗器械的软件测试、软硬件同步测试、单元集成测试、国家科技专项测评服务、国家电子政务信息系统应用软件验收测试、政府门户网站专项评测,网站评测(网站第三方评测)、互联网金融、B2B金融业务平台(系统)第三方测试、网站安全评估、网站漏洞测试、Web安全检测、代码覆盖测试、软件产品登记测试、科技项目验收测试、科技成果鉴定测试、电子产品软硬件、移动通信产品、系统及其配套设备、北斗卫星导航产品、国家天线及射频部件产品、嵌入式产品软硬检测第三方验收测试(财政信息化项目)、确认测试、结题测试、信息化项目评估、外包测试等
代码覆盖测试
在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标,甚至,用代码覆盖率来考核测试任务完成情况,比如,代码覆盖率必须达到80%或 90%。于是乎,测试人员费尽心思设计案例覆盖代码。用代码覆盖率来衡量,有利也有有弊。
代码覆盖是由系统化软件测试所衍生的方式。第一份出版的相关参考资料是Miller及Maloney1963年在ACM通讯上发表的论文 。
覆盖测试是衡量测试质量的一个重要指标。在对一个软件产品进行了单元测试、组装测试、集成测试以及接口测试等繁多的测试之后,我们能不能就此对软件的质量产生一定的信心呢?这就需要我们对测试的质量进行考察。如果测试仅覆盖了代码的一小部分,那么不管我们写了多少测试用例,我们也不能相信软件质量是有保证的。相反,如果测试覆盖到了软件的绝大部分代码,我们就能对软件的质量有一个合理的信心。
度量方式
函数覆盖
语句覆盖
判断覆盖
条件覆盖
路径覆盖
总结编辑
通过上面的学习,我们再回头想想,覆盖率数据到底有多大意义。总结如下几个观点:
覆盖率数据只能代表你测试过哪些代码,不能代表你是否测试好这些代码。(比如上面第一个除零Bug)
不要过于相信覆盖率数据。
不要只拿语句覆盖率(行覆盖率)来考核你的测试人员。
路径覆盖率 > 判定覆盖 > 语句覆盖
测试人员不能盲目追求代码覆盖率,而应该想办法设计更多更好的案例,哪怕多设计出来的案例对覆盖率一点影响也没有。
天河分处:广州市天河区棠东东路10号御富科贸园东岳大厦515室
*您的姓名:
*联系手机:
固话电话:
E-mail:
所在单位:
需求数量:
*咨询内容: