软件测试不是寻找Bug的游戏
作者:网络转载 发布时间:[ 2012/7/18 11:03:24 ] 推荐标签:
敏捷宣言创始人、全球知名讲师、过程教练及咨询师James Grenning与参会者分享了主题为“测试不是寻找Bug的游戏”的精彩演讲。
他表示软件是非常脆弱的,新开发的程序代码可能会引入25%的Bug,修复了某个Bug也可能会引入其他更多的Bug,所以要伴随着开发进行不断的测试。如果在项目的后再进行测试,结
果可能会很糟。
James Grenning的演讲实录如下:
大家好,谢谢。非常高兴能够跟大家进行交流,谢谢大家。在我开始之前,我昨天在酒吧碰到一些人,主要是一些嵌入式工程师,他们说为什么敏捷是不可能?特别从一个嵌入式角度来
说是可能的。所以,我要做一些不同的做法。
敏捷可以说,或者说我们不可以使用敏捷,我们没有硬件,硬件是这样一个形象,他是混乱一团,它的内存比较小,像一个小的手表一样。其实另外一个来说呢,我的这个嵌入式系统
内存比较大,像一个IPhone,或者是一个开关一样,我们不能够使用敏捷,我们有限制,有一些死的限制,我们不能够满足这些需求,满足这些时间后的期限。我们也不能够特别是用嵌入
式的角度来做,那么IO是专业化,像一个洗衣机,或者一个IPhone,或者像一个机器人,选择器一样,有特定的问题。类型也是各不一样,而且比较昂贵,还有一些Bug,但是这些Bug是谁
的问题呢?大家互相指责。
我们有特定的UI,剩下IPhone你的TDD是怎么样用于起搏器,或者监测器里面。所以,这个软件必须得到检测,只有人才能进行这些测试。有很多人他没有时间,我们在这里的话,也要在
实验室里面见到这个软件在运行它,那么我们要去考虑机器人,或者是开关,或者是起搏器,我们不能够使用这些故事,没有一些选择性的这种选择,都是第一位,然后我们迟到了,我们
没做到。我们需要规格,这些规格必须要被写的很清楚,我们不能够用迭代,你怎么样能够提交一个洗衣机呢?或者是一个电机系统,或者是一个起搏器。
那么通过一个增量来提交这些东西,那什么是敏捷呢?这个Agile是一个小A还是一个大A,我们使用了一个Agile,但是它不行,不能起作用?我们应该怎么做?我们都已经非常敏捷了,
但是我们应该怎么去做?你们是做了两周的迭代吗?你是做了这种基于测试的开发了吗?你做了这种自动化的检测了吗?你有一个发布的计划吗?你有没有一个对等的项目?有没有把你的编
码进行处理?那么,有你的客户吗,你是不是不断在整合,是不是在分享这个编码的所有权,你怎么来回答这些问题?你是否用了一个编码的标准,你做了什么?
我们并没有写了任何文献,现在我理解了,这是极限,但并不是一个极限的项目。我们为什么需要敏捷呢?实际上一切都是正常没有问题,一切都好,我们不要去注意这方面的火了,因
为像我说的一切都好,我们已经90%都完成我们的工作了,可能只有一点存在的Bug。是的,可能我完全不同意你的意见。所以,我们没有时间在开玩笑了,我们谢谢大家。
当我在高中的时候,电脑当时比较糟糕,一个同学高中开始编程,他向我展示了他打洞的卡,给我显示机器的工作,我认为计算机非常糟糕不应该碰它,我几年之内没有碰他,我开始
学习工程学,在我们计算机当中必须要使用电脑,否则没有办法完成任务。当时我想作为一个年轻人要赶日程不得不去熬夜做一些编程,实际上我开始喜欢上这个专业。现在我不再年轻了
,但是我依然做这方面工作,可以说我在生活中获得很多有益事件,我和参加这个会议有很多敏捷大师们进行了沟通,我得到很多。
我告诉大家很多秘密,我当时是去滑雪,那是一个在美国的滑雪圣地,在美国这是一个佳的滑雪圣地,是在那里进行一个软件开发的会议。但是,软件确实有了很大的变化,我们看
一下时间很短,这些软件现在到了一个什么程度?如果回到15年前我看到我自己的这些电子作品,可能大家都意识不到这些,左边它是一个把CD放到播放器里面去。现在我们可以直接嵌入到
你手机里面去,大约6年时间非常短暂,我们现在有了iPod,iPod确实是非常疯狂的,还有成千上万的东西取决于你的下载。那么,计算机还在你的洗衣机里面,还有很多电子工件里面。实际
上我们还不用自动吸尘器手动,我们可以把机器人定好可以自己使用,还有心脏起搏器人类也都使用这些工具软件,可以说在整个宇宙里面都在采用我们的软件,这个软件无处不在。
那么,25年前,30年前电信是什么样子?现在我们有很多各种各样的磁开关,电话里面这些系统也都是一样的,过去我们在中国打球打高尔夫。美国我们会称为它是一个针对目标的活动
,现在我们有很多人同时参与,我们在玩这种线上游戏。过去我们用纸来记录各种各样数据,现在我们有各种各样的电子数据。
我们再看一个例子,当时有很多飞机上,航空航天也用到电脑,可以说有很多工程师参与进来设计飞机和软件,可以说这是一个新急性,也有很多高科技。大约80%的努力都在开发这些
软件,可以说具有巨大不同,我们现在不是硬件,针对于软件,而且对于我们来说都是比较激动人心的消息。但是也让人非常可怕,因为这些软件他也是会出问题的,一切都会出现问题,出
现故障。
那么一个软件可以对任何一个系统进行毁灭,这是第一个电脑的Bug,实际上不是一个真正的Bug,实际上是一个Modes(音译)的,他使转换器出现问题,比如IPhone里面有多少软件,
可以说有10-20个缺陷会导致故障。可以说,在大家这里讲个故事,在80年代的时候,我和一个实验室的人吃饭,他是一个科学家,是在航空航天业工作。这是一个飞行器,对不起我现在有
些激动了,我都无法讲话了,我慢一点吧。我请你举起那个牌子让我慢一点,我太激动了。
那次我和一个科学家去吃了吃饭,他是从事航空设备,Voyager还在发挥作用,他们要确保他们发的指令,这个编码是能够起作用,和他们在实验室进行测试一样的。那么,这个飞行
器的任务之一,是去到那个土星,也是说在太阳系里进行旅行,他们也访问了各种各样有趣目标,他们还有一个飞行器机器,也去很多地方进行访问,比如木星和其他的一些星球。他们
要把这个软件发到Voyager确保没有缺陷,这个要按光速的速度去进行发射,要持续几个小时,甚至几天进行一个信号传输。
当他们去发这个软件荷载的时候,他还要去获得一些数据反馈。比如说气侯变冷了,飞行器告诉这些控制台,出现什么问题了,软件怎么样了,他们在内存里面也发现一些问题。那么
,里面有一个催化剂,如果他要是缺少这个催化剂一切都完了,所以终他们发现这些问题,他们后来改正这个问题,挽救了这个飞行器。这个时候的话,他们要把编码发到一些飞行器上
去。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11