拙见/ 检验检验¶
Checking Check
这是大妈在 ZoomQuiet 的第063篇原创
背景¶
检验是科学名词,指用工具,仪器或其它分析方法检查各种原材料,半成品,成品是否符合特定的技术标准,规格的工作过程.
现象¶
具体到编程领域, 对代码质量的检验, 贯穿软件这个概念诞生以来的所有编程实践瞬间.
特别是微软重新发明了软件之后, 甚至于创造性发明了软件测试这一行业.
将检验变成了真正的岗位.
直至 DevOps 概念叕一次被创造出来, 开发者不得重新自己检验自己的代码.
问题¶
最流行的检验方法就是 TDD
~ 测试驱动开发/Test-Driven Development;
这其中最大的艺术行为就是 Mock ,各种 Mock, 为了在业务代码形成之前, 可以写出测试代码来, 不得不用各种模拟手段来隔离真实环境, 以便让测试可以跑起来.
那么, 一个简单的逻辑推导:
在 TDD 场景中, 谁来确保 测试代码以及依赖的 Mock 工具自身的品质?
分析¶
其实字面含义总是可行的
检验 行为之所以成立, 其实包含一组前提条件的:
首先, 对检验目标有足够透彻的理解, 并能对其中我们需要的关键指标, 有公认的标准;
然后, 对应标准也有客观指标来加以衡量, 否则无法明确好/坏的阀值;
最后, 也是最关键的, 检验是一定要基于可靠数据/工具/仪器的; 纯粹感性的数据是无法作为检验依据的.
所以, 检验行为本身的检验嘦明确:
- 0: 是否有公认的标准
- 1: 是否标准对应的数值可以客观反复目标品质
- 2: 是否指标测量可信/可重复/可检验
如果按照这几点偏见去观察 TDD 行为就有点儿囧了:
单说狭义TDD -> UTDD(单元测试驱动开发/Unit Test Driven Development),
都不用扩展到其它 *TDD
;
测试用例是根据当前业务功能理解分解出来的, 是否分解拿合理, 并无标准;
测试案例是否通过, 其指标是开发人员自己给出来的;
测试结果随着 Mock 或是业务系统的变化, 而变化, 根本无法确保绝对可信.
更加囧的是:
TDD 整个儿过程, 就象脱裤子放屁; 任何一个功能点, 要先反过来想象如果完成了, 如何检验是否完成并对应记录为测试代码; 然后再去写功能代码, 如果中间哪儿出现别扭的感觉, 整个儿过程就得立即重新来过;
也就是说, 将一个功能是否完成的真实运行直觉检验过程, 打碎为反复的前后正反说话过程, 花费5~10倍的精力和时间, 获得原先相似的质量结果;
唯一优势就是能将系统开发过程中团队内隐知识的一部分(很可能是最不重要的一部分), 固化为临时性测试代码, 可以帮助新人快速进入岗位, 而难以制造出大量 bug.
软件工程中有很多断言, 多数都是无法检验, 又非常正确的经验, 比如:
没有银弹
若无必要/勿增实体
任何问题都可以通过
增加一个虚拟层
来解决
那么, 有关代码检验行为本身的检验; 其实就是一种无限循环的自指问题, 千万别多想;
检验的检验本身在工程上其实, 就是个架构问题;
就象备份一般要求3份, NERV 主电脑/MAGI 是三贤人系统, Paxos算法中最少需要三个主机...
因为冗余三份儿时, 同时出错的概率已经可以忽略不计了.
所以, 编程过程中, 检验行为, 无论用哪种工具/形式, 检验三次就好:
- 刚完成时
- 被迫修改后
- 发布前
...
其实, 这类行为的反思以及标准化, 都是编程思维的结构化习惯, 想真正实用化到日常各种行为/活动/实践/编程/...过程中?
说不得, 当然还是得参加: 蟒营®编程思维提高班 Python版/
refer.¶
愿上苍保佑吃饱了饭的人民...
文中链接感谢"文章助手"的助手 的支持, (来自 LINUX中国 的小应用)
- 点击, 将自动跳入小应用, 并复制链接到剪贴板
- 然后, 打开浏览器, 复制到地址栏, 就能访问了
- 好处, 避开了微信内置特殊浏览器的有关屏蔽策略
- 问题, 操作复杂了, 要打开手机上的浏览器, 如果在桌面微信则无法使用
本人公号所刊载原创内容之知识产权为本人所有, 未经许可, 禁止进行转载/摘编/复制及建立镜像等任何使用. 欢迎读者沟通交流, 请留言, 或通过邮件交流->
投稿/反馈邮箱:
askdama@googlegroups.com
(邮件列表地址, 当成正常邮件发送邮件就好, 不用订阅, 不用翻越...)
ZoomQuiet/大妈
就是四处 是也乎,( ̄▽ ̄)
的那个大妈:
私自嗯哼: ZoomQuiet (订阅号: ZoomQuiet42)
原创课程: 蟒营 (订阅号: Mainium)
过往吐糟: Chaos42 (订阅号 PythoniCamp)
as 核心组织者:
PyChina (订阅号: PyChinaOrg)
本地社区:
GDG珠海 (订阅号: GDG-ZhuHai)
TFUG珠海 (订阅号: ZH_TFUG)
好文笔,感叹号年度配额: 1/3
NN 4127
自怼圈/年度番新
关于 ~ DebugUself with DAMA ;-)
点击注册~> 获得 100$ 体验券:
订阅 substack 体验古早写作:
关注公众号, 持续获得相关各种嗯哼:
蟒营®编程思维提高班Python版
**2021.01.11** 因大妈再次创业暂停定期开设, 转换为预约触发:- + 扫描预约入群, 学员每满 42 人即启动新一期训练营 ;-)
-
+ 任何问题, 随时邮件提问可也:
askdama@googlegroups.com