总结:与传统的单元测试不同,面向对象的单元测试侧重于设计适当的操作序列来检查类的状态。 面向对象软件的集成测试主要使用基于使用的测试策略来执行。
目录
第 1 级:面向对象的单元测试
任务描述
相关知识
如何设计测试用例
随机测试
拆分测试
答案要求
级别 2:面向对象的集成测试
任务描述
相关知识
面向对象的集成测试
基于使用的测试
答案要求
第 1 级:面向对象单元测试任务说明
本级别任务:根据所学知识,回答右侧选择题。
相关知识
完成本级别任务,掌握面向对象。单元测试
单元的含义已经改变
在思考面向对象软件时,单元的传统概念已经改变。流程软件的最小单位是模块,所以这里的单位指的是模块。 面向对象软件的最小单元是类和对象,因此本例中的单元指的是类和对象。
在测试面向对象的软件时,您不能再单独测试单个操作;您必须将操作作为类的一部分进行测试。
例如,假设您有一个类层次结构,并且函数 X 在其父类中定义,并由一组子类继承,每个子类都使用函数 x。 然而,X函数调用子类中定义的操作并处理子类中的私有变量。 此时,如果你使用单元测试来测试它,你会发现无从下手。
看起来非常复杂的类层次结构实际上在面向对象的软件中很常见。 由于X函数在不同子类中使用的情况略有不同,因此必须在每个子类的上下文中测试X函数。 这表明传统的单元测试方法在测试面向对象软件时不再适用,单个功能不再能够孤立地进行测试。
测试用例设计方法
目前,面向对象软件的测试用例设计方法正处于研发阶段。 与传统的单元测试不同,面向对象的单元测试侧重于设计合适的操作序列来检查类的状态。
测试单个类的主要方法有两种:随机测试和拆分测试。
随机测试
下面以银行系统为例简单说明一下这种测试方法。 系统中的账户类具有以下功能:open、deposit、drawing、balance、summary、creditLimit、close。
显然,account类中的任何对象都可以使用这些函数。 但是,使用这些功能时存在一些限制。 例如,必须先开设账户,然后才能关闭账户。
即使有一些限制,合理使用功能还是有很多顺序的。 示例:开仓->存款->关闭,开仓->存款->提款->关闭,开仓n->summarize->creditLimit->withdraw->close 等
这些序列实际上是用户在使用系统时可能触发的功能使用序列,而每个用户的使用顺序可能不同,所以按照这种顺序进行测试的方法称为随机测试。
分区测试
分区测试类似于黑盒测试中的拆分等价类。 首先,根据一定的规则对输入和输出进行分类,并设计测试用例来测试每个划分的类别。 使用拆分测试方法可以减少测试类时所需的测试用例数量。
例如,在账户类中,与状态相关的函数是存款和取款,但其他函数是与状态无关的。 然后,当您设计测试用例时,您可以分别测试更改状态的函数和不更改状态的函数。 例如: open->deposit->deposit->withdraw->close 用于测试改变状态的函数, open->balance->close 用于测试将完毕。 不改变状态的函数。 功能。
作答要求
回答右侧的多项选择题,然后点击评分按钮,检查您输入的答案是否正确。
级别 2:面向对象的集成测试任务描述
此级别的任务:Learn知识并回答右侧的多项选择题。
相关知识
要完成这个任务,你必须掌握面向对象的集成测试。
面向对象的集成测试
由于面向对象的软件没有分层的控制结构,传统的自顶向下或自顶向上的集成策略是没有意义的。 此外,由于组成一个类的各个组件直接或间接交互,因此一次将一个操作集成到一个类中通常是不切实际的。
面向对象软件的集成测试主要使用基于使用的测试策略来执行。
基于使用的测试
此方法首先测试很少使用服务器类(也称为独立类)的类。),测试完所有独立类后,再用独立类测试下一级的类(也称为依赖类)。 依赖类的测试在每个级别上持续进行,直到整个软件系统构建完成,然后对整个系统进行测试。
例如,用于面部识别和登录的应用程序将包括 Camera 类、Recognition 类、DataBase 类和 Signin 类。 Signin 类依赖于 DataBase 和 Recognition 类。 可以看到Camera类、Recognition类和DataBase类是独立的类,您应该首先测试这些类的功能。 Signin类是一个依赖类,因此Signin类必须与其他类集成并在最后进行测试。
作答要求
回答右侧的多项选择题,然后点击评分按钮,检查您输入的答案是否正确。
评论前必须登录!
注册