资讯专栏INFORMATION COLUMN

头歌-软件测试技术-面向对象测试_王铁军

DoINsiSt / 3736人阅读

摘要:与传统单元测试不同,面向对象的单元测试关注于设计适当的操作序列以检查类的状态。面向对象软件的集成测试主要采用基于使用的测试策略来进行。

目录

第1关:面向对象的单元测试

任务描述

相关知识

测试用例设计方法

随机测试

划分测试

作答要求

第2关:面向对象的集成测试

任务描述

相关知识

面向对象的集成测试

基于使用的测试

作答要求


第1关:面向对象的单元测试

任务描述

本关任务:根据所学知识,完成右侧的选择题。

相关知识

为了完成本关任务,你需要掌握面向对象的单元测试。

单元的意思已经发生改变

当考虑面向对象的软件时,单元的概念就发生了改变。因为传统面向过程的软件中最小单位是模块,所以此时单元指的是模块。而面向对象的软件中的最小单位是类和对象,所以这个时候单元指的是类和对象。

而且在测试面向对象软件时,不能再孤立地测试单个操作,而应该把操作作为类的一部分来测试。

例如,假设有一个类层次,X函数在其父类中有定义,并且被一组子类继承了下来,而且每个子类都会使用x函数。但是X函数会调用子类中定义的操作并处理子类的私有变量。这个时候你若用单元测试的方式来测的话,会发现无从下手。

看起来这么复杂的一个类层次,其实在面向对象的软件中比比皆是。由于在不同的子类中使用X函数的环境有微妙的差别,因此有必要在每个子类的语境中测试X函数。这就说明,当测试面向对象软件时,传统的单元测试方法是不适用的,不能再孤立地测试单个函数。

测试用例设计方法

目前,面向对象软件的测试用例的设计方法还处于研究和发展阶段。与传统单元测试不同,面向对象的单元测试关注于设计适当的操作序列以检查类的状态。

测试单个类的方法主要有随机测试和划分测试两种。

随机测试

下面通过银行系统的例子,来简要说明这种测试方法。该系统的account(账户)类有这些函数:open(打开)、deposit(存款)、withdraw(取款)、balance(余额)、summarize(清单)、creditLimit(透支限额)和close(关闭)。

很明显,只要是account类的对象就都能使用这些函数。但是,使用这些函数时也会有一些限制。例如,必须在打开账户之后才能关闭账户。

即使有这样或者那样的限制,但合理使用函数的序列还是会有很多种例如:open->deposit->closeopen->deposit->withdraw->closeopen->summarize->creditLimit->withdraw->close等。

这些序列其实就是用户可能会在使用系统时触发的函数使用序列,而且每个用户的使用序列可能会不一样,所以像这种以序列的方式来测试的方法叫作随机测试。

划分测试

划分测试与黑盒测试中的等价类划分类似,先按照一定的规则,把输入和输出分类,然后设计测试用例,用来测试划分出来的每个类别。采用划分测试方法可以减少测试类时所需要的测试用例的数量。

例如account类中,与状态有关的函数是depositwithdraw,而其他的函数与状态无关。那么设计测试用例时,可以分别测试改变状态的函数和不改变状态的函数。例如:open->deposit->deposit->withdraw->close用来测试改变状态的函数,而open->balance->close用来测试不改变状态的函数。

作答要求

请完成右侧的选择题,并点击评测按钮,验证你所填写的答案是否正确。

 

第2关:面向对象的集成测试

任务描述

本关任务:根据所学知识,完成右侧的选择题。

相关知识

为了完成本关任务,你需要掌握面向对象的集成测试。

面向对象的集成测试

因为在面向对象的软件中不存在层次的控制结构,传统的自顶向下或自顶向上的集成策略就没有意义了。此外,由于构成类的各个成分彼此间存在着直接或间接的交互,一次集成一个操作到类中通常是不现实的。

面向对象软件的集成测试主要采用基于使用的测试策略来进行。

基于使用的测试

这种方法首先测试几乎不使用服务器类的那些类(也叫独立类),把独立类都测试完之后,再测试使用独立类到下一个层次的类(也叫依赖类)。对依赖类的测试一个层次一个层次地持续进行下去,直至把整个软件系统构造完成,那么整个系统也就测试完成了。

例如,一款刷脸签到的app中有Camera类、Recognition类、DataBase类、Signin类。其中Signin类依赖于DataBase类和Recognition类。可以看出,Camera类、Recognition类和DataBase类是独立类,应该优先测试这些类的功能。而Signin类是依赖类,因此应该在最后才把Signin类与其他类集成到一起并进行测试。

作答要求

请完成右侧的选择题,并点击评测按钮,验证你所填写的答案是否正确。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/121224.html

相关文章

  • 头歌平台(EduCoder)————软件测试测试过程与策略)

    摘要:相关知识为了完成本关任务,你需要掌握软件测试的测试策略。第关测试过程任务描述本关任务根据所学知识,完成右侧的选择题。 第1关:测试策略 任务描述 本关任务:根据所学知识,完成右侧的选择题。 相关知识 为了完成本关任务,你需要掌握软件测试的测试策略。   第2关:测试过程 任务描述 本关任务...

    Andrman 评论0 收藏0
  • 头歌平台(EduCoder)————软件测试(白盒测试

    摘要:第关基本路径测试任务描述本关任务填写缺失代码,完成白盒测试。相关知识为了完成本关任务,你需要掌握基本路径测试。 第1关:逻辑覆盖 任务描述 本关任务:设计测试用例,填写代码,完成白盒测试。 相关知识 为了完成本关任务,你需要掌握: 1.语句覆盖; 2.判定覆盖; 3.条件覆盖; 4.判定/条...

    Cc_2011 评论0 收藏0
  • 头歌平台(EduCoder)————软件测试(黑盒测试)

    摘要:第关边界值法任务描述本关任务编写代码,使用边界值法进行黑盒测试。相关知识为了完成本关任务,你需要掌握边界值法。 第1关:等价类划分法 任务描述 本关任务:编写代码,使用等价类划分法进行黑盒测试。 相关知识 为了完成本关任务,你需要掌握等价类划分法。 第2关:边界值法 任务描述 本关任务:...

    nifhlheimr 评论0 收藏0
  • 移动端开发:架构那点事!

    摘要:移动精英开发社群的第期,也是围绕架构这个话题进行讨论。本次我们希望结合实际开发中遇到的问题,来聊聊移动端的架构设计。这样的模式改进一些,可能会更适合移动端架构。潘卫杰之前我们公司移动端的大项目就是插座式开发的,批量出各个行业的。 此前,58 同城的技术委员会执行主席沈剑在 OneAPM 的技术公开课上分享过一个主题,「好的架构不是设计出来的,而是演技出来的」。因为对很多创业公司而言,随...

    KnewOne 评论0 收藏0
  • 用gomock进行mock测试

    摘要:在刚开始的时候,我通常都会先启动一个简单的服务,然后再运行我的单元测试。可是这个单元测试测起来似乎非常笨重。王尼玛张全蛋测试之这是自定义的返回值,可以是任意类型。 在开发过程中往往需要配合单元测试,但是很多时候,单元测试需要依赖一些比较复杂的准备工作,比如需要依赖数据库环境,需要依赖网络环境,单元测试就变成了一件非常麻烦的事情。举例来说,比如我们需要请求一个网页,并将请求回来的数据进行...

    骞讳护 评论0 收藏0

发表评论

0条评论

DoINsiSt

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<