软件测试的信仰与世界观-由苹果IOS8.0.1的漏测Bug想到的

来源:互联网 发布:达内培训 重庆编程 编辑:程序博客网 时间:2024/05/04 05:23

缘起


今天先是看到BI的9月26日十大第六说 Josh Williams, a mid-level manager overseeing quality assurance, is being blamed for Apple's massive error with iOS 8.0.1, which bricked people's phones。然后在一个关注的QA同行的博客里看到对这件事情的看法: Why bad bugs hit good people

在读过以后思绪有点复杂。做为一个从业十多年的测试人员,做过从消费者桌面软件,到互联网再到企业级软件的测试。我在想如果同样的事情(特指这样的公共事件)发生在我身上,特别是BI这样指名道姓的报道,将会是怎么样的一种压力。普通的消费者不是IT从业人员,有这样的认识不奇怪。但是我敢说即使在专业的研发人员中也会有不少同意BI这种论调的人。


夜路走多了总会碰见鬼


我回忆了一下我自己遇到的类似的情况。

曾经在工作早期有一次我负责一个新的软件子系统的测试,在子系统第一次上线的时候发生了很严重的问题。系统是一个报表系统,上线后发现,系统的一个数据源集成接口不对。然后更大的问题在报表的设计不符合需求。结果是马上下线返工。当时组内也有很严肃的讨论,最初的矛头也是指向我这个测试人员。我在给大家的邮件中说出了我当时的想法,整个项目的失败我有责任但是每一个人都有责任。当时还是瀑布模式,从产品经理,到开发,没有一个人真的弄清楚了客户需求,我们有很详细的报表界面设计,开发和测试只能以这个设计文档为基础。没有集成测试环境,没有集成测试数据。最大的问题是貌似没有一个有足够影响力的经理真的对这个项目有期望。

后来在一个互联网公司任职的时候也发生过很多线上出bug 的问题。我记得当时我作为测试团队的领导做过数据统计。在平均两个星期的发布周期下,一半以上的上线都有发布后发现的问题。有部署的,功能的,性能的,集成的等等。不过当时已经是采用了敏捷开发流程,开发团队已经负责了相当大部分的功能测试工作,所以从组织结构上避免了每次让测试团队做替罪羊的现象。

对于刚做测试不久或者想做测试这行的朋友来讲,我能说的就是谁都不能保证自己测试的软件不会出现漏测或者是线上问题。而且保证没有漏测(或者是找出所有的bug)从来都不是软件测试的目的。得有正确的认识以及心理准备。


必须要有信仰


信仰有可能是不全面的,甚至有可能是错的,但是我始终坚信一个优秀的工程师必须要有自己在工程上的信仰,并且实践它,在错误中学习和进化。我算是抛砖引玉跟大家探讨了,说说我的一些信仰:

  • 软件测试的目标应该是在给定的时间和资源下,尽可能快和多的把重要缺陷展示出来。而不是找出所有问题,防止漏测。这两种思维方式是完全相反的

我们对软件研发和测试的总体认识和理解,决定了我们会怎么看待类似的漏测问题。不管是在传统的瀑布开发模型还是敏捷开发里面,单独来看软件测试活动也应该是符合项目管理三要素的规律-范围、时间、资源(成本)。我们把范围看成是测出的目标软件缺陷在所有软件缺陷的百分比。当然这个所以软件缺陷是一个理想换的假设。这个百分比越大,需要的时间或者成本越高,而且成本或者时间的增加不是成线性增长的。这个是软件测试的一个基本规律,就不说了。在实际项目中往往时间和资源都是一定的。而且必须随时根据现有测试结果和其他信息即使调整测试重点,最大限度的有效利用有限的测试资源。
  • 软件质量是整个研发团队的责任
现代软件研发(这里对应Engineering Team,包括开发,测试等)是一项很复杂的团队工作。这个有点像踢足球,守门员是最后一道屏障,但是每个失球是不是就一定是守门员的主要责任呢?我想稍微懂一点职业足球的人都不这样认为。可能绝大多数的情况下是团队的防守先出现漏洞,甚至很多失球都可以追溯到己方进攻的失误。那么软件质量问题的根源(root cause)会出现在软件研发周期的各个环节。把软件质量问题的责任推到测试团队甚至是测试团队的领导身上是不公平的,不利于解决问题。当然对这测IOS的特定问题,我们没有看到具体问题的根源分析,无从得知个中原由。这种情况在拥有独立测试团队的研发组织中很容易发生。

  • 对漏测的首要任务是进行根源分析并改进开发、测试等流程、工具保证同样的问题不在出现。经验和教训应该是给整个团队的,应该尽量淡化个人和小团队的责任
我个人观察到如果团队总是揪住个人和小团队的错误不放,会形成一种不求有功但求无过,互相扯皮推卸责任的文化。这个等于团队自杀。
  • 研发团队的主管应该对以上团队信仰和文化的形成负责
这个不再解释,个人觉得技术管理最重要的是形成正向的团队文化,这个是团队领导的责任,责无旁贷

那么在回到苹果这个事件,我个人觉得很显然在这种严重的公共事件压力下,某位领导扛不住只好把测试团队拿出来顶雷了。不管出于什么原因,对危机公关没有任何好处。当然也从一个侧面让我们看到了苹果内部的问题,还有测试人员的压力。我觉得大家都应该引以为戒。
0 0
原创粉丝点击