收藏文章 楼主

浅析单元测试

版块:软件测试培训   类型:普通   作者:多测师   查看:5638   回复:0   获赞:0   时间:2021-12-09 11:05:59

  单元测试在测试过程中是比较重要的一环,但是也是很多团队缺失的一环,单元测试的意义是什么?单元测试的实施过程中会有怎样的坑?为什么一些团队没有单元测试呢?是由测试来做单元测试还是开发来做单元测试呢?

  单元测试的定义及意义

  首先是最经典的测试金字塔,其实针对测试金字塔有很多种搭建方式,例如:

  从常用的测试技术类型来看: 单元测试->接口测试->UI测试,这可能是比较常见的测试金字塔( unit->api->ui )

  从系统分层测试(或测试阶段)来看: 单元测试->组件测试->集成测试->系统测试

  这只是从测试金字塔角度去谈测试的方法,也可以说是测试的分类,当然如果是严格意义上的测试分类又有很多(例如以是否测试代码:黑盒,白盒,灰盒;是否运行:静态测试,动态测试等等)

  

  单元测试的定义是什么?

  单元测试是对软件中的最小单元进行测试和验证,通俗来讲就是代码中的一个函数或一个类,单元测试一定是白盒测试。

  为什么提到测试金字塔,因为单元测试不仅是测试阶段的第一环,也是测试金字塔的基础,那代表着什么呢?

  从重要程度来说,单元测试作为地基,承担着保证稳定性的作用,最终决定整个软件质量的不是功能完整,而是功能实现没有问题,而是实现功能的代码逻辑是否正确,程序是否健壮

  从开发测试成本来说,我们知道在开发测试整个环节,越晚发现问题,解决问题的成本越高;越晚发现问题,代表着测试开发流程要不断重复,且重复的成本越高,也就是说如果能将大部分的问题或者明显的代码逻辑问题解决在单元测试阶段,将极大的减少开发测试成本,提高开发测试效率

  从测试覆盖来说,测试金字塔越往上执行的测试,可覆盖case会逐渐变小,例如UI测试只能保证页面正常,接口异常不会测试覆盖完整;而接口覆盖完整了,又不能保证代码中所有逻辑都覆盖,某些函数某些类的功能无法覆盖,而通常发现一些复杂的bug,不太好复现的bug基本都是用功能测试用例覆盖不全的

  从自动化测试角度来说,都知道UI自动化测试的性价比是最低的,目前接口自动化测试慢慢成为主流,而一些公司也开始注重单元测试或者关注白盒测试,招聘的测试都需要懂开发,需要可以review代码,可以看到测试正在慢慢的下沉渗透

  单元测试通常由开发工程师完成,一般会伴随开发代码一起递交至代码库。单元测试属于最严格的软件测试手段,是最接近代码底层实现的验证手段,可以在软件开发的早期以最小的成本保证局部代码的质量。另外,单元测试都是以自动化的方式执行,所以在大量回归测试的场景下更能带来高收益。同时,你还会发现,单元测试的实施过程还可以帮助开发工程师改善代码的设计与实现,并能在单元测试代码里提供函数的使用示例,因为单元测试的具体表现形式就是对函数以各种不同输入参数组合进行调用,这些调用方法构成了函数的使用说明。

  如何做单元测试

  要做好单元测试,首先要知道测试的对象是代码,代码的基本特征和逻辑,这样才能应用的相关的单元测试技术来进行单元测试case设计和进行测试。

  要测试什么

  单元测试是代码级别的测试,那么到底怎么测试代码。开发语言是多种多样的,客户端的Java,OC,swift,js等,服务端的Java,PHP,Python,Go等。先不提单元测试,代码级别的测试还有代码扫描,代码覆盖率的测试,可以找到一些定义好规则的代码漏洞或者代码规范方面的问题,那单元测试肯定做的就是除了这些之外的一些工作了。单元测试是对代码中的一个函数一个类的测试,那测试的是什么?

  一个函数或者一个类包含什么,函数名(类名)、参数(属性/变量)、函数体(类中的各种方法)、返回结果,在函数的实现的中有各种循环、分支判断、函数调用,我们如果不管代码处理的是什么样的业务逻辑,仅看代码它就是在进行各种数据的处理,这也是为什么有的程序员会厌烦写业务,因为底层就是各种数据的增删改查,当然这其中根据业务还会有各种复杂的判断处理,并且也并不是所有的代码都是在做增删改查。

  代码中的循环、每个分支判断、每个函数的输入输出都有可能产生缺陷,而单元测试的话就是测试这些函数(类)的功能输入输出、内部条件的判断。

如需了解更多测试技术信息请关注:https://www.duoceshi.cn/hyzx/多测师软件与技术服务有限公司


全站外链:
 
回复列表
默认   热门   正序   倒序

回复:浅析单元测试

网站公告

近期本站被人为恶意注册及发布垃圾帖,每一个发帖都会经过审核,一经发现违法或垃圾帖的用户,帖子将被删除或封号,请大家共同维护互联网环境,共创美好互联网未来。

详细的发帖规则请阅读:

《小猪外链网发帖规则》

《小猪外链网最新金币规则》

注:本站严禁发布灰色违禁违法内容,如发现立刻永久封号,如开通会员的概不退款。

Powered by 小猪外链网 7.12.1

©2015 - 2022 小猪SEO外链平台

备案号:浙ICP备17015142号

免责申明:本网站内容由平台入驻会员撰写,除创始人账号外,其他观点仅代表作者本人,不代表小猪外链网立场。如果内容涉及侵犯其他公司、团体的利益、请联系小猪SEO外链网客服举证删除

您的IP:3.215.79.204,2022-07-05 18:17:10,Processed in 0.14023 second(s).

各位站长请准守小猪SEO外链网的发帖规则,文明理性发言

外链优化

用户名:

粉丝数:

签名:

资料 关注 好友 消息
分享
已有0次打赏