论文部分内容阅读
面向对象软件测试是面向对象软件开发中不可缺少的一环,是保证软件质量,提高软件可靠性的关键。类是面向对象方法中最重要的概念,是构成面向对象程序的基本成分,因此类成为面向对象测试的焦点。但对于面向对象的类测试,大部分的研究都集中在测试用例的生成上,而忽略了对测试驱动程序和测试预测的研究。然而测试驱动和测试预测是软件测试过程中不可缺少的两个环节,如果一个测试,只有测试用例,而不能运行这些测试用例,并且在运行之后,不能对运行结果进行评估分析。我们可以想象,这样的测试将毫无意义。因此,本文将类测试中的测试驱动程序和测试预测作为研究的重点。
针对如何产生类测试驱动程序,本文给出了一种类测试驱动程序的构造框架。利用面向对象技术的设计思想,设计了一个驱动基类,通过继承驱动基类,并覆盖驱动基类中的虚函数而生成一个被测类的驱动类。同时在主控程序中注册被测试类的驱动类,从而得到被测试类的驱动程序。并通过一个实例,说明该驱动构造框架的可行性。
针对类测试预测,本文给出了一种类测试预测生成框架。该框架为每个被测类(CUT)产生一个预测类,该预测类的主要功能是完成对被测类的测试预测。预测类的数据成员主要有两部分组成,第一部分我们称为前状态数据成员(用于表示被测类在执行测试前的状态),第二部分我们称为后状态数据成员(用于表示被测类在执行测试后的状态)。每一部分的数据成员都是和被测类中的状态数据成员相对应的。预测类的方法有:具体实现的统一方法,存储前状态方法和存储后状态方法,预测方法(该方法是和被测类中的每个方法一一对应的,主要功能是完成对被测类中每个方法的预测)。预测方法是预测类中的核心操作,其具体产生过程:为每个方法内测试用例构造一个预测,一个方法可能会有多个方法内测试用例,我们将一个方法的所有方法内测试用例预测集成在一起形成一个方法的预测,即预测方法。该框架的特点可概括如下:采用了被动预测的思想,即不模拟软件行为,而只检查软件行为;预测是相对独立的,而不是内嵌在被测实现中;我们从方法内测试用例中采集预测信息,而不是直接从规格说明中采集信息;我们的测试生成框架为每个类产生一个预测,并以类的形式存在。
利用测试驱动程序构造框架和测试预测生成框架,为被测试类生成所需要的测试驱动程序和测试预测,将所生成的测试驱动程序和测试预测结合在一起,可以完成在生成类测试用例后,测试执行和测试结果评估的任务。
最后,我们介绍了实现本文提出的两种框架的工具支持。