首页 > 软件测试/ 正文
从软件系统的构成看覆盖率分析技术
2013-03-12 00:02:20 ℃
在当今覆盖率分析技术已经成为了一种非常重要的软件质量评估的方法,但它并不是软件质量好的必要充分条件(即覆盖率高,代码的质量不一定好;覆盖率低说明我们的代码存在风险的性就越大)。代码覆盖率是一种用来评估我们测试有效性的一种手段,一般的过程如下图: 如何理解软件当前比较常用的几种覆盖率技术: 软件程序实际上都是由数据+ 算法组成(在面向对象的程序语言中,实际上对象也是由数据成员和成员函数组成)。而覆盖率分析技术主要是对算法的执行的分析。在这里的我们把算法看成一个个的函数,而每个函数又是由条件代码块、循环代码块、没有分支的语句块组成。而选择和循环都是由一个判定表达式来决定执行的分支,所以覆盖率分析技术基本上都是基于这个判定表达式的进行的。 首先为了满足每条语句都被执行到,所以产生了语句覆盖(在这基础上又衍生出段覆盖或者基本语句块覆盖---即不含分支的语句序列覆盖统计)。 由于语句覆盖它对判断条件不敏感,为了解决这个问题所有产生了判断覆盖,即每个判定的true/false至少覆盖一次。 但是判断覆盖出现后,问题又来了,判定覆盖不能解决每个判定中的条件都覆盖到。于是又出现了条件覆盖,即每个条件的可能取值都至少覆盖一次。 由于判定覆盖和条件覆盖没有谁包含谁的关系,所以为了同时解决两者的问题,又出现判定-条件覆盖。 判定-条件覆盖不能满足每个条件的取值都决定它所在的判定表达式的结果一次,所以为了满足这种更加严格的覆盖,又出现了选择判定-条件覆盖。 选择判定-条件覆盖并不是所有的条件的可能组合,所以在此基础上又定义了一种覆盖叫组合条件覆盖(即全组合覆盖)。 上面描述了6中覆盖率分析技术都是基于判定点和语句进行了,实际上整个软件是分层构建的。 所以在多条相关的语句组成了函数,针对每个函数从入口到出口的所有可能分支覆盖统计叫路径覆盖我们在进一步的构建,有多个函数完成一个需求或者功能,所以又出来的功能覆盖。 由不同的功能组合形成了客户的某种操作场景,于是又产生了场景覆盖。 当然后面几种覆盖率分析技术不常用,而且可能从不同的维度去思考我们的程序组成会出现不同的覆盖率分析技术。 下面我将常用的几种覆盖率分析技术层次描述描述为下图: 在使用代码覆盖率分析时需要注意的几点 : 1、代码覆盖率分析技术是一种结构化的测试技术(通常说是白盒测试技术,但是如果你把他的功能单元更加抽象一些也是可以用到黑盒测试技术中),与之对应的测试技术是功能测试技术。 2、代码覆盖率分析技术一般不独立使用,它只作为评估你的产品质量的一种辅助手段。覆盖率高不能说明产品的质量一定好。 3、在决定开发代码覆盖率分析前,定一个最低覆盖率基线,用于判定你什么时候停止覆盖率分析。
- 上一篇:质量体系建立的步骤
- 下一篇:基于CMMI的软件项目质量管理框架
更多郑州Java电脑编程培训学校,郑州软件设计培训学校哪家好,郑州java软件测试培训学校哪家好,河南郑州软件开发培训机构,郑州软件培训机构排名,郑州北大青鸟计算机学校Java培训相关文章
- 接口测试的两种方法
- 谁能成为软件测试架构师
- SwitchBoard测试系统经验谈
- 软件测试流程
- 为何要建立自动化测试架构
- IT行业——轻方法与满意质量相比较
- 质量管理:IT项目计划中质量目标的确定
- 关于软件测试的谈话
- 软件测试过程的持续改进
- 软件质量的商业价值
- 如何让质量和进度双赢
- 运用全面质量管理提高软件质量
- 欢迎加电脑知识交流群
- 智能手机刷ROM是什么意思
- 用批处理文件——autoexec.bat
- CMD命令集全部放送
- Win8系统安装配置要求是什么
- 常见的视频格式
- 正确使用好U盘的几点知识
- 电脑键盘清洁技巧
- 各种编程语言的优缺点
- 不能一辈子靠技术生存
- 学软件工程的女生可以从事哪些工作
- 女生学计算机软件测试好不好
- 解读成为高大尚程序员的几个人生阶段?
- 郑州北大青鸟:软件测试从零开始
- 郑州Java零基础培训班有哪些
- 郑州Java高薪就业零基础培训班
- 搜索
-
- 热门标签