大家好,我是十一。
还记得我们上篇中的测试分类图吗?其中有一部分是“按软件开发阶段划分”,不记得没关系,这里我截了图出来,大家直接看图吧。
这个图呢就是我们这篇所要讲解的内容。主要针对他们是什么,什么阶段工作、测试对象、测试人员、测试依据、测试方法、测试内容等等。要做好笔记哦。
如图“按软件开发阶段划分”成其后的7种测试,那顾名思义,其后的7种测试就都是在软件开发的各个阶段进行的。不同阶段做不同的测试。
单元测试(Unit Testing):
又称为模块测试,是指对软件中的最小可测试单元进行检查和验证。是对代码进行测试。
测试阶段:编码后
测试对象:最小模块
测试人员:开发工程师
测试依据:代码+详细设计文档
测试方法:白盒测试
测试目的:检验软件基本组成单位的正确性。
测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
这部分了解即可。
集成测试(Integration Testing):
也称联合测试、组装测试,在单元测试的基础上,将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。对系统的接口及集成/组装后的功能进行正确性检测的测试工作。
测试阶段:单元测试之后
测试对象:模块间的接口
测试人员:白盒/高级测试工程师
测试依据:单元测试的模块+概要设计文档+详细设计说明书
测试方法:黑盒测试与白/灰盒测试相结合
测试目的:主要是检查软件单位之间的接口的正确性,另外还要检查集成后的功能的正确性
测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响
系统测试(System Testing):
包括对功能、性能以及软件所运行的软硬件环境进行测试,偏于业务角度的测试,主要是验证系统是否满足需求。
测试阶段:集成测试通过之后
测试对象:整个系统(软、硬件)
测试人员:黑盒/初、中级测试工程师
测试依据:需求规格说明书
测试方法:黑盒测试
测试目的:验证系统是否满足需求
测试内容:业务逻辑(功能)、界面、兼容性、易用性、安装、文档、性能、稳定性、安全性等
验收测试(Acceptance Testing):
是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
测试阶段:系统测试通过之后
测试对象:整个系统(软、硬件)
测试人员:系统用户(测试人员+客户代表,或者客户方相关工作人员)
测试依据:需求规格说明书+任务书
测试方法:黑盒测试
测试目的:确定产品是否能够满足合同或用户所规定需求
测试内容:同系统测试
回归测试(Regression Testing):
是指修改了旧代码后,重新进行测试以确认问题已修复并且没有引入新的错误。
测试阶段:软件开发的各个阶段都会进行多次回归测试
测试对象:对应的bug以及相关模块的部分测试用例
测试人员:相关测试人员(各个阶段的回归测试对应各个阶段的测试人员)
测试依据:bug描述+软件开发各个阶段测试的依据物
测试方法:软件开发各个阶段测试对应的测试方法
测试目的:重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误
测试内容:对应的bug描述内容以及相关模块的部分测试用例(不限)
Alpha测试(Alpha Testing):
又称α测试,是非正式验收测试,属于验收测试的一种,是由一个用户或者公司内部的用户在模拟生产环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和支持)。
测试阶段:上述所有测试通过之后
测试对象:整个系统(软、硬件)的核心业务流程
测试人员:由软件的实际用户(客户方相关代表)或者是公司内部的用户,一般都应该是软件的实际用户
测试依据:需求规格说明书+达成一致的验收标准(是项目初期与客户沟通好并且达成一致结果的验收标准,如果没有,按照需求规格说明书标准判断)
测试方法:方法不限(白盒测试或者黑盒测试都有可能)
测试目的:评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能和支持)
测试内容:以上测试的所有内容的子集或者全集
Beta测试:
又称β测试,用户验收测试,也属于验收测试的一种,由软件的最终用户们在一个或多个客户场所进行。
测试阶段:α测试达到一定的可靠程度时,才能开始β测试
测试对象:整个系统(软、硬件),完全由相关责任人(测试人员)来决定
测试人员:软件的实际用户
测试依据:需求规格说明书+达成一致的验收标准
测试方法:方法不限,同测试对象,是由相关责任人(测试人员)来决定
测试目的:β测试主要衡量产品的FLURPS,着重于产品的支持性,包括文档,客户培训和支持产品生产能力。
测试内容:完全由相关责任人(测试人员)来决定
下面我们简单介绍下α测试与β测试的区别:
首先这两个测试一般都是大型通用软件中才有的,是软件上线/发布前的最后阶段的测试。
测试的场所不同:Alpha测试是指把用户请到开发方的场所来测试,Beta测试是指在一个或多个用户的场所进行的测试。
测试环境不同:Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。Beta测试的环境是不受开发方控制的,用户数量相对比较多,时间不集中。
执行时间不同:Alpha测试先于Beta测试执行,且Beta测试需要在Alpha测试达到一定的可靠程度才能执行。
总结:上述我们总共讲了7种测试,那么对于初级测试的大家来说我认为单元测试与Alpha、Beta测试大家只要做简单了解即可;另外的集成测试、系统测试、回归测试、验收测试这4种则是重中之重,需要大家掌握并且理解的。
为了方便大家理解,我还是举个例子吧,例子主角用手机吧。
手机出厂前经过一系列的测试,我选择几个有代表意义的让大家感受下,大家在读的过程中可以自己思考下如何与上述内容一一对应。
集成测试:
充电器插拔测试,充电器能否插上,且插上充电后能否正常充电,拔了后是否显示不通电等等
音量增减开关测试:按增量键,音量增大;按减量键,音量减小
摄像头检测:检测摄像头是否能正常工作,且像素与说明一致
系统测试:
界面上所有按键一一测试:是否与说明书一致
开机使用:界面美观、易用、操作系统兼容、app使用、是否能设置密码/指纹等等
电池耐用性检测:检测电池在不同温度/湿度下的电池损耗、使用情况等等
验收测试:
工厂组织质检部抽检,检查手机是否与合同(比如数量)或者需求说明书上(比如质量、大小、厚度、功能等)内容一致
客户方代表抽查与合同或者需求说明书一一核对检测
国家质检部对齐进行检测,看齐是否合格等等,合格给予合格证书
买手机的我们拿到手机通过使用来检测是否符合手机商品描述以及说明书上说明等等
回归测试:
以上各个环节遇到问题问题后返工到工厂或者售后,然后“检测员”(不限是谁,哪个环节出问题,那么又相关测试责任人来回归)对其进行二次测试。
例子讲完了,你能将故事与咱们这节课的内容一一对应上吗?
集成测试,对系统的接口及集成/组装后的功能进行正确性检测
系统测试,确定产品功能是否与需求说明书描述一致。
回归测试,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误
验收测试,确定产品是否能够满足合同或用户所规定需求
好了,今天的内容到此结束,你get到了吗?