原标题:【软件工程】因果图、决策表、等价类,这些测试设计技术你用了吗?
通常,软件测试的流程是测试需求分析,编写测试计划,确定测试项,设计测试用例,然后执行测试,完成测试报告。
这一套流程,看起来没有任何问题。可是,怎么才能确定这样的测试是有效的,是充分的,测试结果是可信的?
不同于“证明自己还活着”这样的证明,要让人相信测试是有效的、充分的、测试结果是可信的,就看你是否使用了那些应该使用的测试开发技术。这些技术包括:
测试覆盖技术
解决测试覆盖问题的方法之一是把程序的结构简化为一幅节点图,一般来说,分支指令定义节点,其余指令组成路径。设计出能够尽可能多地覆盖图形的方法。可以通过比较程序图的复杂性和执行的测试路径的数量来粗略评估测试覆盖的充分性。
使用这个技术,可以量化地回答测试路径覆盖的充分性。
等价划分
确定等价类是选取每一个输入条件(通常是规格说明中的一个句子或短语)并将其划分为两个或更多的组。一般包括外部条件、有效等价类、无效等价类。有效等价类代表对程序的有效输入,而无效等价类代表的则是其他任何可能的输入条件(即不正确的输入值)。
生成测试用例过程如下:
为每个等价类设置一个不同的编号。
编写新的测试用例,尽可能多地覆盖那些尚未被涵盖的有效等价类,直到所有的有效等价类都被测试用例所覆盖。
编写新的测试用例,覆盖一个且仅一个尚未被涵盖的无效等价类,直到所有的无效等价类都被测试用例所覆盖。
边界值分析
所谓边界条件,是指输入和输出等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。边界值分析方法与等价划分方法存在两方面的不同:
与从等价类中挑选出任意一个元素作为代表不同,边界值分析需要选择一个或多个元素,以便等价类的每个边界都经过一次测试。
与仅仅关注输入条件(输入空间)不同,还需要考虑从结果空间(输出等价类)设计测试用例。
因果图
因果图是一种形式语言,使用简单的符号(或、与、非)来描述规格说明。
因果图有助于用一个系统方法选择出高效的测试用例集。它还可以指出规格说明的不完整性和不明确之处。
生成测试用例的过程:
将规格说明分解为可执行的片段。
确定规格说明中的因果关系。所谓“因”,是指一个明确的输入条件或输入条件的等价类。所谓“果”,是指一个输出条件或系统转换(输入对程序或系统状态的延续影响)。通过逐字逐句地阅读规格说明,同时标识出描述“因”和“果”的文字或句子,就可以将“因”和“果”确定出来。因果关系一旦确定下来,每个“因”和“果”都被赋予一个唯一的编号。
分析规格说明的语义内容,并将其转换为连接因果关系的布尔图。即因果图。
给图加上注解符号,说明由于语法或环境的限制而不能联系起来的“因”和“果”。
通过仔细地跟踪图中的状态变化情况,将因果图转换成一个有限项的判定表。表中的每一列代表一个测试用例。
将判定表中的列转换成测试用例。
可是,当测试设计完成之后,进行的测试设计评审的时候,却很难判断测试用例设计的合理性和充分性。因为,测试用例的载体通常是测试说明,按照测试说明模板的要求,只需要记录测试用例的设计结果,根本无从看出采用何种技术生成的测试用例,同时也没有回答设计的充分性、合理性、有效性。
如果在文档中能够展现出采用的技术,同行评审就能够更好地判断设计的充分性、有效性,更能发现测试设计存在的问题。
这需要有好的测试设计规范,并对测试说明的模板做一些小的改动。在测试设计规范当中规定不同的测试类型采用的测试设计技术,在测试说明中给出采用技术的过程及其中间结果、最终结果。
设计技术不应只停留在技术规范当中,技术要真正“落地”。
参考书目:
1 《软件过程管理》
2 《软件测试的艺术》
微信号:IdeaofSE返回搜狐,查看更多
责任编辑: