结构性测试是基于被测程序的源代码,而不是定义,也就是所谓的白盒测试,而功能性测试也就是所谓的黑盒测试。
程序图:对于采用命令式程序设计语言编写的一段程序,其程序图是一种有向图,图中的节点表示语句片段,边表示控制流。
DD-路径:决策到决策路径,从决策语句的出路开始,到下一个决策语句的结束,在此路径中没有内部分支,DD-路径是单入口,单出口的节点链. 它其实就是一系列的语句序列,在这个序列当中的每个结点的入度和出度都是1。
当然这只是基于长链的DD路径,DD路径还有其他情况
情况1. 由一个节点组成,内度=0
情况2. 由一个节点组成,外度=0
情况3. 由一个节点组成,内度>=2或外度>=2
情况4. 由一个节点组成,内度=1并且外度=1
情况5. 长度>=1的最大链
以上定义运用于以下程序图:
情况1:节点4
情况2:节点23
情况3:节点9,节点12,节点13,节点14,节点16,节点19,节点20,节点22
情况4:节点10,节点11,节点15,节点17,节点18
情况5:节点5~节点8
DD-路径图:有向图,其中,节点表示其程序图的DD-路径,边表示连续DD-路径之间的控制流,上图的DD-路径图形式上,仅仅是将节点5~节点8合并为一个节点,所以DD-路径图是一种压缩图。
测试覆盖指标:
定义:给定采用命令式程序设计语言编写的程序,其程序图是一种有向图,图中的节点表示语义片段,边表示控制流。
程序图的重要性在于,该程序的执行对应于从原节点到汇节点的路径。
DD路径:结构性测试最著名的形式,它是以决策到决策路径结构为基础。
路径链:通过有向图的节点路径定义DD—路径,其中链是一条起始和终止节点不同的路径。并且每个节点都满足内度等于1,外度等于1。注意:初识节点与链中所有其他节点都是2-连接。
链长度:边的条数。
退化链:长度为零。即链由一个节点和一条边组成。
DD路径的五种情况:
对于给定的程序,可以使用多种不同的程序图,所有这些程序图都可以转化为唯一的DD路径。
DD路径定义:
给定采用命令式语言编写的程序,其DD路径图是有向图,其中节点表示其程序图的DD路径,边表示连续DD路径之间的控制流。
实际上DD路径图是一种压缩图,在这种压缩图中,2-连接组件被压缩为对应情况5DD路径的单个节点。