读Ainars Galvans的《Testing is like… Medieval battles》有感
来源:互联网 发布:逆战有没有刷枪软件 编辑:程序博客网 时间:2024/06/02 11:01
来自Ainars Galvans的一片文章,他将测试比作中世纪的战斗
Lesson 1: Know your enemy
–Lack of Quality is not your enemy, it’s developers enemy. Your enemy is absence of evidence of it.
一语道破测试的本质:发现bug并且能够重现bug,即有足够的证据证明bug的存在。我们经常在测试发现问题的时候,就记录下来,而不去寻找重现的办法,不去挖掘不正常现象背后隐藏的危机。
Lesson 2: Know your equipment and how to use it
–Armour: standards, guidelines (universal defence against any attacks)
–Shield: test plans, test cases (when used properly may block some attacks by “the enemy” – do you remember who is an enemy?)
为什么我们的测试总是有问题?人员不足?工具落后?都不是!其实是我们的测试方法不行。没有好的测试计划,不设计出完备有效的测试用例,就好像没有铠甲和盾牌的士兵,经不住敌人的猛烈攻击!
–Sword: testing - test execution (use to attack the enemy)
看到这里,我发现西方的中世纪战斗,强调的只是力量,而忽略技巧——剑法。也许,我们应该把测试比作佐罗时代的游侠战斗更合适。
每一个游侠都有一把剑——Testing!但是,决定战斗胜负的并不是剑,而是游侠的剑法——test plans、test cases。
Lesson 3: Choose appropriate equipments
Good armour reduces movement.
Shield decrease offence.
A single soldier may use long sword (knight) or two swords (samurai)…
An army use good armour big shields, normal swords
看到这里,我基本理解了作者的意思。我想说一下自己的版本:
- Enemy:缺少证据和方法证明bug存在;
- Armour:标准和指导方针;
- Shield:测试计划和测试用例;
- Sword:测试
- Swordplay:测试的方法学。例如现在流行的exploring testing。没有高的悟性是很难掌握这样的高超技艺的。一个好剑客,不需要铠甲和盾牌。即便拿一根树枝,他也会运用高超的减法打败敌人的。好的军队,没有铠甲和盾牌,是万万不可以的。
- 读Ainars Galvans的《Testing is like… Medieval battles》有感
- 读51testing论坛"给经理关于测试方案及测试用例的建议"一帖有感
- What is Fuzz Testing?
- Testing is Significant!
- What is Exploratory Testing?
- What is Fuzz Testing?
- What is Fuzz Testing?
- What is regression testing and sanity testing?
- Programming Is Like Sex
- Programming is like sex
- Swift is like Kotlin
- 【原文】What is Fuzz Testing
- OOP编程之is-a、has-a和is-like-a之间的关系
- Life is Like a Boat
- Loneliness is like a rain
- Life Is Like A Boat
- life is like a boat
- Time is like a river
- Datastructure c++ note 3a
- 我们的博客系统
- 磁盘柜双机热备硬件解决方案
- 用Globus Toolkit 4构建WEB服务
- 《UTF-8与GB2312之间的互换》的改进[原创]
- 读Ainars Galvans的《Testing is like… Medieval battles》有感
- ASP.NET中的ViewState
- 一个通用的类的toString()方法
- Route命令使用详解
- 实习才能迅速了解
- 在两个ASP.NET页面之间传递值
- 启动oracle 监听
- ACCESS:跨数据库查询的SQL语句[转]
- beanutils的使用