3.2基于动态执行切片的方法
程序切片(program slice)技术是一种分析和理解软件程序的技术。软件人员在代码调试和软件测试过程中,常常会不自觉的应用这种技术。目前,程序切片已经发展成为一种比较成熟的技术,并出现了许多切片准则、切片算法和相应的软件工具。程序切片是一个可执行程序,是按照一定的准则从源程序中移去零条或多条语句来构造的。随着切片技术的发展,目前对于程序切片还有另外一种定义方法:由影响程序中某个兴趣点处变量值的所有语句和控制谓词组成的一个程序子集,该子集并不一定是一个可执行的程序段。从以上两种定义出发,实际上定义了两种程序切片,即静态切片和动态切片。切片技术从程序中去除不会影响感兴趣的变量语句,形成一个程序的子集,从而简化了程序,有利于故障的定位。
3.3基于形式化概念分析的方法
该方法不仅关注特征与代码实体间的基本追踪关系,其更为关注获取系统特征与代码之间的多种导出追踪关系。因此,即使只对某一个特征进行定位,此外,由于系统特征与测试用例之间的对应关系并不是简单的一一对应,依赖测试用例获取特征与代码之间的追踪关系还需要考虑特征与测试用例之间的二元关系。因此,首先对测试用例与代码实体间的二元关系进行形式化的概念分析,为其建立一个概念格结构并将其可视化。然后,结合测试用例与特征间的二元关系,交互地分析理解第一步建立的概念格结构,从而获取特征与代码实体间的多种追踪关系。由此可见,对于基于程序动态剖面的特征定位方法,同样需要具有对所要调查的具体特征的先验认识,否则无法设计恰当的测试用例。即便是在具有现成的测试用例的情况下,依然需要理解人员更进一步的工作。因为,为发现特征的错误而设计的测试用例对于定位这个特征可能并不总是完全合适的。而测试用例的自动生成技术通常更多地关注单元测试而不是针对特征的功能测试。可见,这类方法在某种程度上仍然存在对人的依赖,因此理解人员个人的专业水平会影响这类方法定位特征的效果。
参考文献
[1] 李必信,程序理解研究与进展,计算机科学,1999
[2] 韩永生,基于程序切片的软件测试技术初探,无线电工程,2006
[3] 郑人杰,实用软件工程,清华大学出版社,1997
上一页 [1] [2]