图片浅释常用的软件测试的类型

本文简述了常见的软件测试类型,以及提供了一些简单的图表来展示各种测试间的关系和一些近似数据。图表并非经过严格测量,而是根据经验画出的示意近似值,并且假定的前提条件是,尽可能在现有条件下把自动化程度提到最高。

 

各类常见的软件测试简介

单元测试

用于测试最小的独立功能单元,比如一个函数的输入输出,或者一个类的组成和调用。单元测试的细节程度高,覆盖面广,因此数量也多。

单元测试的参与者及参与程度

功能测试

一般用于测某个功能模块,比如说测试系统是否能完成某一个任务。由于功能测试的范围完全取决于系统的结构,所以相对单元测试来说,功能测试边界更为模糊。

功能测试的参与者及参与程度

集成测试

用于测试系统功能或模块间的交互,比如说各种接口和边界,以保证数据能平滑地从一个地方进入另一个地方。和功能测试互相配合,都属于中层测试。

集成测试的参与者及参与程度

系统测试

测试整个系统的功能和需求的完整性。由于其复杂程度也可变换的用例很多,所以自动化难度大,有些部份必须通过手工完成。属于外部高层次的测试,覆盖面较小,执行成本也较高。

系统测试的参与者及参与程度

回归测试

当系统更新或者升级时,对更新的部份,或者所有关联的部份,甚至整个系统进行测试。

回归测试的参与者及参与程度

验收测试

由系统的使用者来校验系统是否能满足功能上的需求,以及最终完成任务的结果是否正确。

验收测试的参与者及参与程度

性能测试

测试系统在指向的条件下是否能达到速度和数据处理量等性能指标。

性能测试的参与者及参与程度

安全测试

测试系统是否能保障数据的完整性、机密性,以及抵抗内部和外部伤害的能力。

安全测试的参与者及参与程度

可用性(易用性)测试

测试系统是否对于人类用户友好,是否容易使用。

可用性测试的参与者及参与程度

白盒/灰盒/黑盒测试

这三种本身并不是一种独立且可执行的测试种类,而是指跟据测试者对系统内部原理和结构的信息利用程度而划分出来的测试种类。

 

白盒测试是指在直接针对源代码和内部数据结构进行的测试,比如说单元测试和功能测试,需要知道每个函数或者模块的运作原理。

 

黑盒测试是指那些不需要看源代码或内部数据流,直接从系统的外部,或者以最终用户的角度进行的测试,比如说系统测试,性能测试,可用性测试等。

 

灰盒测试则是介乎于黑白之间,也就是说不需要了解源代码和内部原理,但是对系统的组件进行的测试,比如说集成测试。

 

 

白盒类测试的相对代码覆盖率

此图展示了不同层次的白盒测试对代码覆盖的相对关系。由图可知单元测试的覆盖率最高,而功能测试和集成测试则各自负责不同的方面,当然它们之间也会有很大的重复覆盖的区域。

 

 

 

 

 

白盒类测试的作用重叠关系

此图展示了白盒率测试作用之间的重叠关系。

 

 

 

 

 

内部(Alpha)测试/公开(Beta)测试

内测和公测都是针对打包并部署好的最终成品而进行的。内测是在开发组织内部,或者通过邀请少量最终用户进行。公测则是通用软件向公众发布,让所有最终用户参与试用。

 

各类测试的简易对比

测试的时间成本

此图展示了各种测试随着项目推进,在各个时间段所要投入的综合成本,包括编写,运行和维护

 

 

 

 

 

执行测试的人力和机器成本

此图展示了各种测试相对要花费的机器和人力成本。

 

 

 

 

 

测试的覆盖面和精准度

此图展示了各种测试的覆盖面和精准度。覆盖面是指对代码各部分(分支,子程序)的执行覆盖情况。精准度是指是否精细正确地测试数据和逻辑。注:左下角的红点是颜色错误,应该是黑色(安全测试)。

 

 

 

 

 

测试自动化的难度

此图展示了各种测试实现自动化的难度。

 

 

 

 

 

测试所需的技术强度

此图展示了各种测试对测试人员的经验和技术水平的要求。

 

 

 

 

 

 

测试定位问题的难度

引图展示了各种测试在问题后,定位问题所在的难度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值