随着互联网的不断发展,越来越多的程序员都在学习软件测试技术,而今天我们就一起来了解一下,软件测试框架与应用方法。
测试框架
单体架构时,团队的测试主要依赖基于Selenium的集成测试和后检查测试,基于Rails的单元测试略有欠缺。转到微服务架构后,为了满足新的需求,测试框架也进行了相应调整。测试金字塔可以很好地帮助我们区分不同层次测试的关注点。金字塔从下层到顶层依次为单元测试、集成测试、端到端测试和性能测试。其中,越靠近金字塔的底端,一般而言测试速度越快,反馈周期也越短,测试发现问题后更容易定位受影响的功能;越是靠近金字塔的顶端,测试覆盖的范围越大,但需要花费更长时间完成测试,经过测试后功能的正确性也更有保证。
单元测试
“单元”是软件的小可测试部件。单元测试就是软件开发中对小单元进行正确性检验的测试,它是所有测试中底层的一类测试,由开发人员在开发代码时同步编写,是一个也是重要的一个环节。
团队后端开发使用的语言是Go,Go语言自带有一个轻量级的测试框架testing,可使用自带的gotest命令进行单元测试。同时,我们使用了TDD,即在开发功能代码之前,先编写单元测试用例,以测试代码来确定需要编写的产品代码,提高代码质量。
Mock实践
单元测试的编写往往有独立性的要求,很多时候因为业务逻辑复杂,代码逻辑也随之变的复杂,掺杂了很多其他组件,导致在编写单元测试用例时存在比较复杂的依赖项,如数据库环境、网络环境等,这些增加了单元测试的复杂度和工作量。
Mock对象就是为解决上述问题而诞生的,mock对象能够模拟实际依赖对象的功能,同时又省去了复杂的依赖准备工作。当前,在核心业务团队Go代码库中,存在2种mock实践。一种是和mockery结合使用的Testify/mock,另一种是和mockgen结合使用的Go/gomock。
Testify/Mock
Testify包中一个优秀的功能就是它的mock功能,在进行单元测试时,代码中往往有大量的方法和函数需要模拟,此时vertra/mockery就成为了我们的得力助手,mockery的二进制文件可以找到任何在Go中定义的interfaces的名字,然后自动生成模拟对象到mocks文件夹下对应的文件中。
Golang/mock
Gomock是Google开源的golang测试框架,gomock通过mockgen命令生成包含mock对象的.go文件,它可以根据给定的接口自动生成代码。这里给定的接口有两种方式:接口文件和实现文件。
…
如果你也想在2021人才争夺战中
夺得一席之地
进入高薪有前景的行业
这都是可行的
…
最后:自动化测试(视频、面试)赠送一波
我推荐一个群吧!测试员~~来吧,313782132(Q群里有技术大牛一起交流分享,测试学习资源的价值取决于你的行动,莫做“收藏家”)获取更多大厂技术、面试资料
如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以关注微信公众号:【伤心的辣条】,获取软件测试工程师大厂面试资料!
最后:
凡事要趁早,特别是技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。
如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。
推荐好文:
包装成1年工作经验的测试工程师,我给他的面试前的建议如下
自动化测试到底要学什么?
为何跳槽不考虑腾讯?聊聊我和鹅厂的一点往事
自动化测试和手动测试哪个更高级?
新手必看:怎么写一个合格的测试用例?