头歌-软件测试技术-面向对象测试_王铁军
目录
第1关:面向对象的单元测试
任务描述
相关知识
测试用例设计方法
随机测试
划分测试
作答要求
第2关:面向对象的集成测试
任务描述
相关知识
面向对象的集成测试
基于使用的测试
作答要求
第1关:面向对象的单元测试
任务描述
本关任务:根据所学知识,完成右侧的选择题。
相关知识
为了完成本关任务,你需要掌握面向对象的单元测试。
单元的意思已经发生改变
当考虑面向对象的软件时,单元的概念就发生了改变。因为传统面向过程的软件中最小单位是模块,所以此时单元指的是模块。而面向对象的软件中的最小单位是类和对象,所以这个时候单元指的是类和对象。
而且在测试面向对象软件时,不能再孤立地测试单个操作,而应该把操作作为类的一部分来测试。
例如,假设有一个类层次,X
函数在其父类中有定义,并且被一组子类继承了下来,而且每个子类都会使用x
函数。但是X
函数会调用子类中定义的操作并处理子类的私有变量。这个时候你若用单元测试的方式来测的话,会发现无从下手。
看起来这么复杂的一个类层次,其实在面向对象的软件中比比皆是。由于在不同的子类中使用X
函数的环境有微妙的差别,因此有必要在每个子类的语境中测试X
函数。这就说明,当测试面向对象软件时,传统的单元测试方法是不适用的,不能再孤立地测试单个函数。
测试用例设计方法
目前,面向对象软件的测试用例的设计方法还处于研究和发展阶段。与传统单元测试不同,面向对象的单元测试关注于设计适当的操作序列以检查类的状态。
测试单个类的方法主要有随机测试和划分测试两种。
随机测试
下面通过银行系统的例子,来简要说明这种测试方法。该系统的account
(账户)类有这些函数:open
(打开)、deposit
(存款)、withdraw
(取款)、balance
(余额)、summarize
(清单)、creditLimit
(透支限额)和close
(关闭)。
很明显,只要是account
类的对象就都能使用这些函数。但是,使用这些函数时也会有一些限制。例如,必须在打开账户之后才能关闭账户。
即使有这样或者那样的限制,但合理使用函数的序列还是会有很多种例如:open->deposit->close
、open->deposit->withdraw->close
、open->summarize->creditLimit->withdraw->close
等。
这些序列其实就是用户可能会在使用系统时触发的函数使用序列,而且每个用户的使用序列可能会不一样,所以像这种以序列的方式来测试的方法叫作随机测试。
划分测试
划分测试与黑盒测试中的等价类划分类似,先按照一定的规则,把输入和输出分类,然后设计测试用例,用来测试划分出来的每个类别。采用划分测试方法可以减少测试类时所需要的测试用例的数量。
例如account
类中,与状态有关的函数是deposit
和withdraw
,而其他的函数与状态无关。那么设计测试用例时,可以分别测试改变状态的函数和不改变状态的函数。例如:open->deposit->deposit->withdraw->close
用来测试改变状态的函数,而open->balance->close
用来测试不改变状态的函数。
作答要求
请完成右侧的选择题,并点击评测按钮,验证你所填写的答案是否正确。
第2关:面向对象的集成测试
任务描述
本关任务:根据所学知识,完成右侧的选择题。
相关知识
为了完成本关任务,你需要掌握面向对象的集成测试。
面向对象的集成测试
因为在面向对象的软件中不存在层次的控制结构,传统的自顶向下或自顶向上的集成策略就没有意义了。此外,由于构成类的各个成分彼此间存在着直接或间接的交互,一次集成一个操作到类中通常是不现实的。
面向对象软件的集成测试主要采用基于使用的测试策略来进行。
基于使用的测试
这种方法首先测试几乎不使用服务器类的那些类(也叫独立类),把独立类都测试完之后,再测试使用独立类到下一个层次的类(也叫依赖类)。对依赖类的测试一个层次一个层次地持续进行下去,直至把整个软件系统构造完成,那么整个系统也就测试完成了。
例如,一款刷脸签到的app
中有Camera
类、Recognition
类、DataBase
类、Signin
类。其中Signin
类依赖于DataBase
类和Recognition
类。可以看出,Camera
类、Recognition
类和DataBase
类是独立类,应该优先测试这些类的功能。而Signin
类是依赖类,因此应该在最后才把Signin
类与其他类集成到一起并进行测试。
作答要求
请完成右侧的选择题,并点击评测按钮,验证你所填写的答案是否正确。
头歌-软件测试技术-面向对象测试_王铁军相关推荐
- 头歌 软件测试项目综合实训 答案 有目录善用目录 持续更新
头歌 软件测试项目综合实训 其他作业链接 非盈利文章,谢谢大家的分享和支持,如果大家有想要投稿的答案,也可以点击下面链接联系作者. 点击联系作者 作者博客 选择题加粗为正确答案 头歌java实训答案集 ...
- 东软学院软件测试,软件测试技术与测试标准
本教材面向软件测试的实际应用,系统阐述了软件测试所涉及到的基础理论.常用技术.过程管理和质量控制:重点讲解软件测试中的白盒测试技术.黑盒测试技术以及自动化测试技术,全面剖析了软件测试从单元测试阶段.集 ...
- 头歌:C++ 面向对象 - 构造函数与析构函数
第一题: #include<iostream> #include<string> using namespace std;class Student { public: int ...
- Educoder/头歌JAVA——JAVA面向对象:封装、继承和多态
目录 第1关:什么是封装,如何使用封装 任务描述 相关知识 什么是封装 编辑 封装的意义 实现Java封装的步骤 编程要求 第2关:什么是继承,怎样使用继承 相关知识 继承的基本概念 继承的特性 多 ...
- CMMI模型对软件测试技术的扩充
在软件开发的瀑布模型中,测试是一个非常重要的工程阶段.从保证软件质量的角度来说,软件测试是软件质量保证工程的一个重要组成部分,也是最重要的质量保证手段.为了保证所提交的软件产品能够满足客户的需求,以及 ...
- atm取款流程测试_盘点2020年软件测试新手必看的技术面试指南(下)
在上一期内容里,我们讲述了一些软件测试技术面试时,比较经典的10个问题.本期,我们将继续围绕技术面试这个主题,为大家提供相应的经典问答内容. 问题1:进行软件测试后,是否能在发布软件后,确保没有Bug ...
- 面向对象的软件测试技术
相关知识点-面象对象(=Object Oriented)技术 1. 对象和类 l 面象对象的编程语言:以对象为中心,以消息为驱动,程序=对象+消息 l 类是一种新的数据类型,是设计的核心,是通过抽象数 ...
- 面向对象测试与传统软件测试有何异同,面向对象软件测试与传统测试有何区别...
由于面向对象技术具有封装.继承.多态等新的特性,带来了传统程序设计所不存在的错误,导致原来行之有效的软件测试技术对面向对象技术开发的软件有些力不从心. 面向对象软件测试与传统软件测试有以下不同: 测试 ...
- 《软件测试技术大全:测试基础 流行工具 项目实战(第3版)》—第1章1.2节软件测试的发展...
本节书摘来自异步社区<软件测试技术大全:测试基础 流行工具 项目实战(第3版)>一书中的第1章,第1.2节软件测试的发展,作者陈能技 , 黄志国,更多章节内容可以访问云栖社区"异 ...
- 头歌-信息安全技术-用Python实现自己的区块链、支持以太坊的云笔记服务器端开发、编写并测试用于保存云笔记的智能合约、支持以太坊的云笔记小程序开发基础
头歌-信息安全技术-用Python实现自己的区块链.支持以太坊的云笔记服务器端开发.编写并测试用于保存云笔记的智能合约.支持以太坊的云笔记小程序开发基础 一.用Python实现自己的区块链 1.任务描 ...
最新文章
- [特征工程系列五]基于蒙特卡洛搜索树的半自动特征工程方案
- 移动Web开发实践——解决position:fixed自适应BUG
- 利用OLAMI在unity游戏中加入中文语音控制(一)
- 怎样让电脑速度变快_电脑常用软件推荐
- 配置Git for windows(Git bash)登录GitHub
- 外螺纹对照表_紧固件螺纹直径与螺距对照表
- 小程序Git版本管理
- mp4安装Linux,linux centos mp4box 安装教程
- 基于SSM的大学生就业信息管理系统
- python opencv去图片水印(图片底色为白色)
- vmware虚拟机连不上服务器,VMware虚拟机nat模式连不上网怎么办
- JDK源码解析---Short
- 数字互动沙盘解决方案
- CS224n Assignment4解读 · 上
- iPhone手机使用:微信提示“运行内存不足导致该小程序无法使用“解决方法
- 同时删除多个 PDF 文档最后几页
- python访问复数的实部,虚部和模值
- MBus协议详解(四)
- 协作机器人_协作机器人软件开发
- 【JS 逆向百例】吾爱破解2022春节解题领红包之番外篇 Web 中级题解
热门文章
- 电脑没有声音提示“外设似乎没有插上”怎么办
- fastapi+tortoise-orm测试
- 基于深度学习的音乐推荐系统(一)音频频谱图绘制
- BI工具怎么选型--BI厂商有哪些--BI系统多少钱--BI工具2019排行
- Less入门以及一些前端面试题
- [].push.apply(a, b)是什么意思
- ecshop 框架 简单分析
- 基于腾讯云播放器封装的Flutter Video Player插件
- java泛型返回值 <T>T 和T的区别
- con 元器件符号_multisim元器件符号速查