- 62
- 0
- 约1.69万字
- 约 89页
- 2018-11-02 发布于广西
- 举报
覆盖标准有关问题、局限性(续) 即使选择一系列的测试覆盖,有时很难确定所需的确切的测试标准或很难执行测试覆盖。 例如,假设我们想用等价类划分测试方法,并且我们在每个划分里要有至少3个测试用例,并且在边界值附近有4个测试用例。但是,这套标准是不足够强的,因为一位测试工程师也许会有2个划分,但是一位好测试工程师会有10个划分。 他们两个都满足测试覆盖,但因为第二位测试工程师有更多的划分,她有更多的测试用例! 提供覆盖但不能保证软件是高质量的。测试覆盖的评估可能是一项繁琐的任务,需要有采样策略进行检查。 0C202 Software Testing 4-* 覆盖标准有关问题、局限性(续) 如果规格没有改变,同样的黑盒测试用例可以用于回归测试以保证相同的覆盖。不幸地是,如果软件改变了,无论是规格或代码变动而引起的变化,经常需要更新相应的白盒测试用例或是重新开发。改变管理如果软件改变了,经常需要更新相应的覆盖。 Poston描述了这样常见的情况,即当接近最后期限时,工程师倾向于说有些错误是不重要的或很少发生因而没有必要修改它。这的确是一个危险做法,但是它却是会发生,特别是当最后期限是接近时。当最后期限接近时,变动率增加。我们所观察到是变动率在最后期限达到高峰。 0C202 Software Testing 4-* 实际应用的建议 强调黑盒测试覆盖,例如黑盒路径。 现代软件强调迅速开发,例如基于测试的开发,极限编程和敏捷过程,E2E测试。 在这种情况下,建议覆盖测试应该在可交付使用前中期时执行。当软件迅速改变时,维护一些测试覆盖是简直是不可行的。 由于每种覆盖代表一种具体测试技术,及对于软件和关注的问题应用这种测试技术进行应该执行的程度范围,在提出建议之前仔细地分析问题是根本的。 0C202 Software Testing 4-* 实际应用的建议(续) 一般来说,要点是要仔细地审查情形与场合。 例如,实时系统可能经常需要控制流覆盖,数据应用需要数据覆盖,可能需要数据流覆盖。数据库事务系统经常要求处理并发事务,因此它也需要控制流覆盖。 特殊系统也需要相应地特殊覆盖,例如时间分析覆盖、并发分析覆盖。 如果系统在维护或开发中,规定回归测试覆盖和影响分析覆盖是重要的。效益/成本分析也是重要的。 我们选择一个覆盖目标达到100%有时是不可能的;但我们应该避免制定目标会低于80%。 0C202 Software Testing 4-* 总结 面向白盒测试技术的覆盖分析主要是代码覆盖分析。代码覆盖分析是要针对一个待测程序和一个覆盖标准,产生一个测试组(一组满足该覆盖标准路径的有限集)。 代码覆盖分析主要有两种类型:控制流覆盖与数据流覆盖。 前者是选择一组实体以满足一定的覆盖标准,比如语句覆盖、判定覆盖、条件覆盖、多条件覆盖、条件判定组合覆盖、修正条件/判定覆盖及路径覆盖; 后者选择一组满足变量的定义与引用间的某种关联关系实体,选择的标准主要有Rapps和Weyuker的标准,Ntafos的标准,Ural的标准,及Laski和Korel的标准。 面向黑盒测试技术的覆盖分析主要是基于规格说明书进行的,覆盖标准主要包括数据域覆盖、统计或可靠性覆盖、风险覆盖、安全覆盖、基于需求的覆盖、基于状态模型的覆盖及基于错误的覆盖。 0C202 Software Testing 4-* 0C202 Software Testing 4-* /~offutt/softwaretest/ * 路径P1=(v0,v1,v2,v3,v4,v5)和 路径P2=(v0,v1,v2,v4,v5) * 为什么要定义du-对?图 2?16的左上面是“正确”程序,而左下面是“不正确” 程序。左下面程序的错误是因为在v1处将max定义为“x+1”。路径(v0,v1,v2,v3,v4,v5)不能测出左下面程序的错误,因为在v3处max被重定义,max作为getMaxValue方法的返回值不受上述错误定义的影响。路径(v0,v1,v2,v3,v4,v5)上不存在关于变量max的du-对。路径(v0,v1,v2,v4,v5)是能测出左下面程序的错误,因为在v1处max的错误定义,直接影响max作为getMaxValue方法的返回值。路径(v0,v1,v2,v4,v5)上(def(max, v1), cuse(max, v4))是变量max的du-对。 * 为什么是一组du-对组成的一个序列(df-链)而不是一个du-对?如图 2?18所示,变量x分别在v2和v3节点被定义,各自可能在v5或v6节点被计算使用(cuse);而这种cuse可能是在v5或v6节点用于定义变量y,进而变量y在v8或v9节点被计算使用(cuse)。即在v2节点变量x的定义,可能在v5节点通过变量x
原创力文档

文档评论(0)