前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动化测试

自动化测试

作者头像
wade
发布2020-05-29 10:43:49
8310
发布2020-05-29 10:43:49
举报
文章被收录于专栏:coding个人笔记

开发了那么多年,还从来没有让自己的代码跑过自动化测试,一般项目也不会去使用自动化测试,毕竟编写测试用例代码所花费的时间比开发还要多很多。今天只是了解一些自动化测试的几个概念。

所谓自动化测试,就是你开发完需求,可以自动帮你检测代码是否存在问题。一般类或者库会去编写测试代码,当你对一个库扩展或者修复bug,要保证之前的代码不会因为这次的修改出现不可预测的问题,所以对之前的代码要进行自动化测试,保证之前的代码不会受影响。

能够通过自动化测试的代码一般质量很高,出现bug的机率很低,就算出现了问题,对于定位问题和解决修复也能很快响应。整体来说对代码的维护性很有帮助。

黑盒测试:

也叫功能测试,主要检测功能,将代码看成一个黑盒,不考虑内部代码,只检测代码是否能够按照设计需求正常使用。一般是测试人员编写的。

白盒测试:

也叫结构测试,虽然也是检测程序是否有错误,但是关注代码内部的结构和逻辑,可能某个功能实现了,但是你的代码语法等出现了问题。一般白盒测试是开发人员编写的。

单元测试:

对最小单元进行测试,比如一个函数、一个模块、一个类等。单元测试主要针对的就是最小可测试单元,不同语言对最小单元不太一样。有一点要注意,单元测试的测试代码也要非常简单,如果测试代码太复杂,那么测试代码本身就可能存在bug。

集成测试:

在单元测试的基础上,将所有模块按照需求组装起来进行测试叫做集成测试。因为单元测试是针对最小单元,当我们每一个函数单元测试都没有问题,但是实现功能的时候,可能参数类型之类的不同,导致功能出现问题,这时候就需要集成测试来检测功能。

TDD:

Test-Driven Development,测试驱动开发,算是一种设计方法,简单来说就是开发功能代码之前,先根据需求编写单元测试用例,然后根据测试代码进行功能代码的开发。其实我觉得这种方法并不是很好,很难想象在没有实现出功能之前,怎么去编写测试代码,也不清楚TDD是否用的很多。

BDD:

Behavior-Driven Development,行为驱动开发,并不是很理解,大概意思就是从需求出发,然后测试就通过这个需求编写测试代码,开发人员根据这个需求进行代码开发,之后通过测试代码去测试功能代码。

常见单元测试库:

Karma、mocha、jest、jasmine,一般这些库都会配合一些断言库一起使用,比如chai、expect、should、assert等。当我们对某个函数或者功能先做出一个假设,比如确定这个函数输入一个参数之后,输出的结果是什么,断言就是捕捉这个假设,判断是否正确。比如判断一个数据是否是字符串:

expect('foo').to.be.a('string');

通过断言库进行判断,是否正确。

不同测试库区别还是很大的,比如karma可以跑在浏览器上,可以测试样式,jest这个是Facebook开源的,用js模拟浏览器环境,不能测试样式,默认就具备断言库chai,还提供了覆盖率。

今天只是分享自动化测试的几个概念,真正编写测试用例是很复杂的,就我自己认知中,要对项目进行单元测试几乎不可能,如果是对类库编写测试用例,还算合理。

(完)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coding个人笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档