当前位置: 首页 > news >正文

开发需要写单元测试吗?

我们这个行业里很多弔诡的事,可以缩影到这一件:所有人都赞同单元测试非常重要,然而很少人做单元测试。

测试开发:零基础自学搭建自动化测试平台实战速成

有很多公司非常准确地把单元测试叫做“开发自测”,并且非常准确地认识到了这个活动的重要性:程序员只要认真测一测自己写的代码,bug就能减少90%。至于时下流行的敏捷么,我毫不夸张说一句:一切没有充分单元测试覆盖的敏捷都是伪敏捷。别的啥都不说了,没有充分的单元测试覆盖,你持续集成跑啥?持续集成不能保障软件质量,靠测试人员跟在屁股后面人肉回归么?

但是就这么一件所有人认可其价值、所有人都重视的事,我们这个行业里,我客气点说,80%的企业落不了地。这难道不是一个值得玩味的文化现象么?

为什么会这样呢?我这儿一家之言:因为整个行业都被软件工程教材给误导了。

软件工程教材说,代码应该有单元测试。这没错,但这话没说完,因为它只描述了一个结果状态。怎么去到这个结果状态的过程,它没有说。什么时候写单元测试?怎么写?单元测试和产品代码之间怎么配合?什么时候运行单元测试?这些每天工作的细节,教材里全都没有。

单元测试通常被认为是编码阶段的附属工作。可以在编码开始之前或源代码生成之后进行单元测试的设计。设计信息的评审可以指导建立测试用例。每个测试用例都应与一组预期结果联系在一起。——《软件工程:实践者的研究方法》(第7版)

实践者们看了这个,能知道怎么动手写单元测试么?于是大家就只好靠猜。想必一定是先写好产品代码再写单元测试来测它吧?一定是这样的!卡桑,我这就可以报效祖国去了吧!

然后一写发现满不是这么回事。因为在写代码的时候并没有考虑这代码要怎么测,所以写完了以后要测发现很难,找不到接缝,测不动。这时候交付压力又紧逼着,唉,要不先放着改天再测吧。当然我们都知道,这个改天再做的事就再也不会做。

我们这个行业里有很多事都类似这样。有一些大师告诉你,这事应该怎么怎么做。但是他其实并没有告诉你“怎么做”,而是告诉你“做成了之后是什么样”。他给你的是一个结果状态,而不是怎么达到这个结果的过程。

http://www.dtcms.com/a/273400.html

相关文章:

  • 关键字前跟空格或首字母, 关键字后跟空格或标点符号; 标点符号后面不是必须跟空格;
  • 无监督光流,unflow, uflow,upflow
  • imx6ull-裸机学习实验14(下)——驱动DDR3和测试
  • 数组和指针回顾,练习与解析
  • OSCP官方靶场-Solstice WP
  • 【第二节】ubuntu server配置静态IP
  • (思维)洛谷 P3081 USACO13MAR Hill Walk 题解
  • 网络安全基础概念以及虚拟环境的搭建
  • alpinelinux的网络配置
  • ZW3D 二次开发-创建六面体方框
  • 力扣面试150题--全排列
  • AOSP自启动拦截框架Intent Firewall
  • 反向传播notes
  • 敏捷测试中的质量闸门如何设置?
  • 位运算算法题
  • 第七讲:C++中的string类
  • 深度学习参数初始化方法详解及代码实现
  • 深度学习×第7卷:参数初始化与网络搭建——她第一次挑好初始的重量
  • ZW3D 二次开发-创建椭球体
  • 灰度发布策略制定方案时可以参考的几个维度
  • 递推+高精度加法 P1255 数楼梯
  • apt -y参数的含义
  • 计算机视觉 之 数字图像处理基础(一)
  • Kubernetes 1.23.6 kube-scheduler 默认打分和排序机制详解
  • 多商户商城系统源码选型指南:开源 vs 定制,哪种更适合?
  • 救回多年未用kubeadm搭建的kubernetes集群
  • 5. isaac sim4.2 教程-Core API-操作机械臂
  • 用黑盒测试与白盒测试,读懂专利审查的 “双重关卡”​​
  • K8S的CNI之calico插件升级至3.30.2
  • 深度学习中的 Seq2Seq 模型与注意力机制