软件测试与打螺丝

news/2024/11/21 20:32:22/

单元测试中的FIRST代表下面五组英文单词对应的原则:

  • Fast
  • Isolated / Independent
  • Repeatable
  • Self-validating
  • Timely / Thorough

软件开发中,往往会因为我们没有注意到的逻辑或难以理解的代码,而引进Bug来。 

怎么尽早地发现Bug,软件人一直在做这方面的努力,单元测试是众多努力中相当有成效的一个方式。而写单元测试的过程中有些经验教训呢?这些经验教训背后有没有一些通用性的原则呢?答案是肯定的,FIRST原则就是其中重要的一个。 

执行快速(Fast)

单元测试执行一定要快,如果要给一个标准的话,每个单元测试的执行应该是秒级的。这样研发同学可以在项目周期的任意时间点,可以方便地执行单元测试, 即便是有几千个单元测试也不影响。这些单元测试最好在几秒内运行完并返回期望的结果。如果是和时间相关的测试,不应该真的等待时间流逝再看结果,而应该使用 Mock 来模拟时间。

隔离(Isolated)/独立(Independent)

每一个测试用例运行时、准备环境变量时或测试前环境搭建过程中,都是隔离的。过程中,不能有相互依赖,这样最终的测试结果可以不受其它因素的影响。如果需要一些配置,这些配置应该在本单元测试的初始化阶段完成。

可重复(Repeatable)执行

单元测试可以在不做任何修改情况下,在任何环境下执行。如果单元测试不依赖网络或数据库,单元测试失败原因的排查中,就不用考虑这方面的原因,毕竟单元测试依赖的只是被测试类或方法中的代码。这个原则,可以方便地让自己的单元测试逻辑保持良好的价值。 

代码测试中自校验(Self-validating)

写了单元测试后,咱们不能再依赖肉眼观察,看被测代码的结果是否正确。测试代码自身会明白无误地告诉咱哪条测试用例失败了。在JUnit中,咱们一般使用assertTrue或assertEquals来验证。

即时(Timely)/完整(Thorough)

按TDD的理念, 应该在相应的业务代码之前定单元测试。这一点上,大家可以自己掌握是否采用TDD的开发理念。不过,这个的理念是,即时地写单元代码,即便是很小的代码也是这样。 如果你不用 TDD,这一条指的是单元测试要达到下面的“完整”标准:

  • 覆盖所有基本路径 (Happy Path)
  • 边界条件
  • 安全问题
  • 覆盖所有可能的功能性用例,而不只是应付 100% 代码覆盖率的要求

遵循FIRST原则,单元测试质量会提升很多。不过,也不是说,单单遵循这个FIRST原则后,就包治百病了,毕竟还有其它的一些因素影响着单元测试的质量。基于FIRST原则后, 我们可以有一个良好的基础来构建整体软件系统。

想学习却无从下手,该如何学习?

这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。

最后送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦!


http://www.ppmy.cn/news/283263.html

相关文章

总结vue3 的一些知识点:MySQL NULL 值处理

MySQL NULL 值处理 我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。 为了处理这种情况,MySQL提供了三大运算符: IS NULL: 当列的值是 NULL,此运算符返回 …

中国七七红客网

中国七七红客网 链接:http://www.zg77hk.com 来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/3704/viewspace-488804/,如需转载,请注明出处,否则将追究法律责任。 转载于:http://blog.itpub.net/3704/viewspace-4…

宝月红

宝月红啊宝月红

抖音网红大蓝称视频号永远都做不起来

最近杰哥从微商大佬龚文祥爆料了解到,抖音头部知识付费网红大蓝最近跟视频号杠上了,大蓝发视频表示,视频号永远都做不起来,视频号给抖音提鞋都不配,因为字节跳动短视频技术一直高于腾讯,视频号永远无法超越…

acwing1113 红与黑

题目描述 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 输入格式 输入…

红蓝对抗思路

阶段手段备注敏感信息收集公司的组织架构  公司的邮箱格式  公司的员工姓名格式  公司的运维IT人员联系方式  公司的合作伙伴  公网资产(云资产、IP、域名、子公司域名)  泄露代码  用于web\系统打点、社工、钓鱼 资产梳理主域名、ICP备案域名(关联子域名)  子…

哥来了

开博立证: 虽然现在什么都不懂,10年后,我一定要成为一个很牛叉叉的人,哈哈!! 不盲从,不自卑,不自大,事实求是。 宣扬自己,绽放自己,虽伤花亦怒放。…

红油的做法

0 推荐 我想感受一下自己做辣椒油的快感,多谢帮忙了啊?四川辣椒油的做法 其实我们放辣椒油(红油)的目的就是要达到麻辣、红亮、香。 红油制作有几种方法,最简单的是把油烧热,直接浇到辣椒面中,泡到油凉以后过滤出来就是红油了。 再一个复杂的…