预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

漳州职业技术学院计算机工程系以考带学,始于证书,止于无限 计算机工程系软件技术013806906866zjq6866@qq.com第页 第7章面向对象的软件测试技术 1、面向对象的软件测试分为 面向对象分析(OOA)的测试、面向对象设计(OOD)的测试、面向对象编程(OOP)的测试、面向对象单元测试、面向对象集成测试、面向对象确认和系统测试。 OOATest:对分析结果进行测试 OODTest:对设计结果进行测试 OOPTest:针对编程风格和程序代码实现进行测试 面向对象单元测试:对程序内部具体单一的功能模块的测试,主是对类成员函数的测试。 面向对象集成测试:主要对系统内部的相互服务进行测试,如成员函数间相互作用,类间的消息传递等。 面向对象确认、系统测试:是基于面向对象集成测试的最后阶段的测试,主要以用户需求为测试目标 2、面向对象分析(OOA)的测试 对OOA阶段的测试划分为五个方面 1)、对认定的对象的测试 2)、对认定的结构的测试 3)、对认定的主题的测试 4)、对定义的属性和实例关联的测试 5)、对定义的服务和消息关联的测试 3、面向对象设计(OOD)的测试 对OOD阶段测试划分为三个方面 1)、对认定的类的测试 2)、对构造的类层次结构的测试 3)、对类库的支持的测试 4、面向对象编程(OOP)的测试 对OOP阶段测试划分为二个方面 1)、数据成员是否满足数据封装的要求 2)、类是否实现了要求的功能 5、面向对象的软件单元测试 一些传统的单元测试方法在面向对象的软件单元测试也可以使用。 6、面向对象的软件集成测试 1)、面向对象的软件集成测试通常需要在整个程序编译完成后进行 2)、两种测试策略 第一种基于线程序的测试 集成对回应系统的一个输入或事件所需的一组类,每个线程集成并分别测试,应用回归测试以保证没有产生副作用。 第二种基于使用的测试 通过测试那些几乎不使用服务器类的类(称为独立类)而开始构造系统,在独立类测试完成后,下一层中使用独立类的类(称为依赖类)被测试。 3)、可以先进行静态测试,再进行动态测试。 7、面向对象的软件确认、系统测试 传统的黑盒测试方法可被用于驱动有效性测试。 8、面向对象的软件测试策略 1)、基于故障的测试 具有较高的发现可能故障的能力 2)、基于场景的测试 两种错,一是不正确的规格说明;二是没有考虑子系统间的交互作用 3)、OO类的随机测试 如果一个类有多个操作(功能),这些操作(功能)序列有多种排列。而这种不变化的操作序列可随机产生,用这种可随机排列的序列来检查不同类实例的生存史,就叫随机测试。 4)、类层次的分割测试 基于状态的分割、基于属生的分割、基于型的分割 5)、由行为模型(状态、活劝、顺序和合作图)导出的测试 有关面向对象的考题: 一、简答题 1、简述面向对象软件测试和传统软件测试的不同。 答:面向对象软件抛弃了传统的开发模式,对每个开发阶段都有不同于传统软件测试的要求和结果,已经不可能用功能细化的观点来检测面向对象分析和设计的结果。因为: ①测试的对象不同:传统软件测试的对象是面向过程的软件,一般用结构化方法构建;面向对象测试的对象是面向对象软件,采用面向对象的概念和原则,用面向对象的方法构建。 ②测试的基本单位不同:前者是模块;面向对象测试的基本单元是类和对象。 ③测试的方法和策略不同:传统软件测试采用白盒测试,黑盒测试,路径覆盖等方法;面向对象测试不仅吸纳了传统测试方法,也采用各种类测试等方法,而且集成测试和系统测试的方法和策略也很不相同。 2、简述面向对象软件测试的策略。 答:(1)分片测试:分片测试测试某种规约片,测试所有状态、所有事件或者所有动作的规约的测试方法。这种测试策略因为其控制行为的状态机的结构不直接相关,所以只能偶然地发现行为的错误,但是测试代价比较少。 (2)所有转换测试:所有转换测试就是在一个面向对象的系统的交互过程中,对状态、事件,以及状态转换约束条件,三者构成的一个笛卡儿集合<状态,事件,约束>中的每个元素都进行测试,即测试所有的转换。在测试过程中,没有执行顺序的要求。 (3)所有往返路径测试往返路径指的是程序从某一个状态开始,经过一系列的转换回到开始的状态,所有的转换的序列构成了一个往返路径。最短的往返路径只需要经过一个转换回到原来的状态,即该状态是闭包的。往返路径的长度决定于状态机的结构。对所有往返路径的测试,将测试每个状态的所有往返路径,于是就得到一个往返路径覆盖。 (4)状态标识测试:在一个不透明的系统中,无法直接观察到程序的状态。虽然可以检测事件和动作的错误,但当一个错误的状态产生时往往很难检测出来,因为从控制的角度来看,当错误的状态多于系统正确的状态时,一个错误的状态很容易隐藏起来。状态标识就是用来确定