- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第4章 白盒测试及其用例的设计1
第4章 白盒测试及其用例的设计 4.1 白盒测试方法 Q:为什么要进行白盒测试? 事实上一个bug 常常是由多个因素共同导致的。 白盒测试方法(续) 白盒测试也称结构测试或逻辑驱动测试或玻璃盒测试。 检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。但即使每条路径都测试过了,仍然可能存在错误。 白盒测试方法(续) 采用白盒测试方法遵循以下几条原则,才能达到测试的目的: 保证一个模块中的所有独立路径至少被测试一次。 所有逻辑值均需测试真 (true) 和假 (false) 两种情况。 检查程序的内部数据结构,保证其结构的有效性。 在上下边界及可操作范围内运行所有循环。 白盒测试的主要方法有: 程序结构分析、逻辑覆盖、基本路径测试。 4.2.1 控制流图 控制流图(可简称流图),对程序流程图进行简化,可更加突出的表示程序控制流的结构。 控制流图中包括两种图形符号: 节点,由带标号的圆圈表示,可代表一个或多个语句、一个处理框序列和一个条件判定框(假设不包含复合条件)。 控制流线,由带箭头的弧或线表示,可称为边。它代表程序中的控制流。 对于复合条件,则可将其分解为多个单个条件,并映射成控制流图。 常见结构的控制流图(流图) 程序和流图 void DoWork (int x, int y, int z) { 1 int k=0,j=0; 2 if ( (x3)(z10) ) 3 { 4 k=x*y-1; 5 j=sqrt(k); 6 } //语句块1 7 if ( (x==4)||(y5) ) 8 j=x*y+10; //语句块2 9 j=j%3; //语句块3 10 } 流程图及流图 4.2.2 环形复杂度 环形复杂度也称为圈复杂度,是一种为程序逻辑复杂度提供定量测度的软件度量。 环形复杂度的应用——可用于基本路径测试方法,可用于计算程序的基本的独立路径数量;确保所有语句至少执行一次的测试数量的上界。 -------独立路径,是指程序中至少引入了一个新的处理语句集合或一个新条件的程序通路。采用流图的术语,即独立路径必须至少包含一条在本次定义路径之前不曾用过的边。 测试可以被设计为基本路径集的执行过程,但基本路径集通常并不唯一。 计算环形复杂度的方法 计算环形复杂度的三种方法: 给定控制流图G的环形复杂度—V(G),定义为 V(G) = E-N+2 其中,E是控制流图中边的数量,N是控制流图中的节点数量。 给定控制流图G的环形复杂度—V(G),也可定义为 V(G) = P+1 其中,P是控制流图G中判定节点的数量。 控制流图中区域的数量对应于环形复杂度。 4.3 覆盖测试 测试覆盖率 测试覆盖率:用于确定测试所执行到的覆盖项的百分比。其中的覆盖项是指被测试的对象,可以是语句、分支、条件、路径等,也可以是模块、部件、功能或需求项等。 覆盖率=实际测试过的测试项的数量/测试项的总数 例如: 假设一个程序由100条可执行语句组成,实际测试时只执行了其中的60条语句。则语句覆盖率为60%。 假设一个程序有10项功能,如果到某个时间点测试了9项功能,那么这时的功能覆盖率为90%。 测试覆盖率 测试覆盖率包括功能点覆盖率和结构覆盖率: -----功能点覆盖率大致用于表示软件已经实现的功能与软件需要实现的功能之间的比例关系。 -----结构覆盖率包括语句覆盖率、分支覆盖率、条件覆盖、循环覆盖率、路径覆盖率等等。 测试覆盖率在测试分析报告中可以作为量化指标的依据,测试覆盖率越高效果越好。 逻辑覆盖法 也称为代码覆盖,根据程序的逻辑或控制结构,针对代码(包括语句、条件、分支、路径)来考虑测试。常用覆盖测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。 语句覆盖:选择足够多的测试用例,使得程序中的每个可执行语句至少执行一次。 判定覆盖(也称为分支覆盖):通过执行足够的测试用例,使得程序中的每个判定至少都获得一次“真”值和“假”值, 也就是使程序中的每个取“真”分支和取“假”分支至少均经历一次。 条件覆盖:设计足够多的测试用例,使得程序中每
文档评论(0)