7软件工程实现2下.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7软件工程实现2下

实现—软件测试部分 实现 7.1 编码 7.2 软件测试基础 7.3 单元测试 7.4 集成测试 7.5 确认测试 7.6 白盒测试技术 7.7 黑盒测试技术 7.8 调试 7.9 软件可靠性 7.10 小结 设计测试方案是测试阶段的关键技术问题。 测试方案包括具体的测试目的(例如,预定要测试的具体功能),应该输入的测试数据和预期的结果。通常又把测试数据和预期的输出结果称为测试用例。其中最困难的问题是设计测试用的输入数据。 不同的测试数据发现程序错误的能力差别很大,为了提高测试效率降低测试成本,应该选用高效的测试数据。因为不可能进行穷尽的测试,选用少量“最有效的”测试数据,做到尽可能完备的测试就更重要了。 7.6 白盒测试技术 有选择地执行程序中某些最有代表性的通路是对穷尽测试的惟一可行的替代办法。所谓逻辑覆盖是对一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。测试数据执行(或叫覆盖)程序逻辑的程度可以划分成哪些不同的等级呢? 从覆盖源程序语句的详尽程度分析。 7.6.1 逻辑覆盖 被测试模块的流程图 a f 逻辑覆盖的模块例子 4个可能的路径以及应该满足的表达式 L1(ace):M and N L2(abd):~M and ~N L3(abe):~M and N L4(acd):M and ~N 其中 M = {(A1) and (B=0)}; N = {(A=2) or (X/A1)} 语句覆盖 语句覆盖:就是指设计若干个测试用例,使得用这些测试用例执行测试之后使得每一条可执行语句至少被执行一遍。 对于前面的例子,L1包含了所有的可执行语句,所以根据L1来设计测试用例就可以达到100%语句覆盖。 用例如下:{input(A,B,x); output(A,B,x)} ={(2,0,4), (2,0,3)} 语句覆盖的不足 语句覆盖可以保证检验了每一个可执行语句。 但是不能保证用于控制的逻辑运算得到充分的检验。 比如第一个逻辑运算中的and错写成了or,最后的结果仍然成立。 语句覆盖是最弱的逻辑覆盖。 if (A1) and (B=0) x=x/A; if (A=2) or (X1) x=x+1; 判定覆盖 又称为分支覆盖:设计若干个测试用例,执行测试,使得被测单元中的每个判定的取值TRUE和FALSE分支至少经历一次。 对于判定(A1) and (B=0)和(A=2) or (X0)分别测试其true, false分支。可以选择L1,L2组合或者L3,L4组合。 对于L1,L2组合,L1: {(2,0,4),(2,0,3)} L2:{(1,1,1), (1,1,1)}; 对于L3,L4组合,L1: {(2,1,1),(2,1,2)} L2: {(3,0,3), (3,1,1)}; 判定覆盖的不足 复合判定中,某个子判定的错误不一定引起整个判定的值的改变。这样的错误可能被漏掉。 比如:使用上面定义的测试的时候,如果第二个判定中X1成为了X1,最后的结果还是一样的。两组测试用例都不能测试这些值。 弥补这个缺陷的是条件覆盖。 条件覆盖(1) 设计若干个用例,执行测试,每个语句至少执行一次,并且使得程序中每个判定的每个条件的可能取值至少执行一次。 条件包括: A1: T1 not A1: F1 B=0: T2 not B=0: F2 A=2: T3 not A=2: F3 x1: T4 not x1: F4 if (A1) and (B=0) x=x/A; if (A=2) or (X0) x=x+1; 条件覆盖(2) 下面的两组测试用例都满足条件覆盖要求: 测试用例 通过路径 条件取值 覆盖分支 {(1,0,3), (1,0,4)} abe(L3) F1,T2,F3,T4 b,e {(2,1,1),(2,1,2)} abe(L3) T1,F2,T3,F4 b,e 测试用例 通过路径 条件取值 覆盖分支 {(2,0,4), (2,0,3)} L1 T1,T2,T3,T4 c,e {(1,0,1), (1,0,1)} L2 F1,T2,F3,F4 b,d {(2,1,1),(2,1,2)} L3 T1,F2,T3,F4 b,e 条件覆盖(3) 不足之处: 虽然可以保证每个条件都取不同的值,但是不能保证每个判定都取不同的值。 有时甚至不能满足分支覆盖的要求。比如前面的第一组用例。 使用判定-条件覆盖来弥补这个不足。 判定-条件覆盖(1) 判定-条件覆盖就是设计足够的测试用例,使得判定中每个条件的所有可能取值至少执行一次,同时每个判定的所有可能判定结果至少执行一次。 测试用例的例子: 测试用例 通过路径 条件取值 覆盖分支 {(2,0,4), (2,0,3)} ace(L1

您可能关注的文档

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档