一、前二天在写一份PPT,看到波普尔哲学:

  卡尔.波普尔的哲学:科学理论和人类所掌握到的一切知识,都不过是推测和假想,人在解决问题的过程中不可避免地掺入了想象力和创造性,人们只能依靠仅有的数据来证明一条科学理论。这一“可错性”原则所推演出的“真伪不对称性”(真不能被证明,只有伪可以被证明)。

  二、软件测试是一份非理性的职业

  1、软件测试能证明软件存在Bug,不能证明软件不存在Bug。

  2、软件测试无止境,但测试周期有严格限制。

  3、软件质量是一步一步积累、提高的。

  4、《软件测试的艺术》,虽然当前还是很苦逼的职业。

  三、举例个人经历过的3个不同行业的故障

  ● 故障:

  1、2008年,同一个版本,上海、成都同时割接(通信行业专有说法)新版本,成都用户投诉,手机不能访问网站,上海正常。

  2、2011年,新版本(金融行业)上线后,4个用户扣款失败。

  3、2012年,版本(团购)发布后商品价格设置为19.9,显示变成18.89。

  ● 原因:

  1、成都的无线信号比上海的差,网络大量重发包,导致句柄耗尽。

  2、新版本部署过程中,有4个正在扣款的任务;部署完成后,补偿处理扣款任务失败。接口有一个备注参数调整(英文->中文),支付方校验前后参数不一致,扣款失败。

  3、19.9?>18.99,Java的浮点计算精度丢失。

  ● 总结:特定环境、特定用户、特定场景下发生的bug,测试人束手无策。

  四、如何让测试更理性

  ● 系统实现透明?>代码质量提高

  1、告别黑盒。

  2、学习代码、框架,理解实现(一个月)。

  3、code review开发代码(长期)。

  4、充分了解与外部的交付细节。

  5、促进代码质量(长期)

  ● 测试设计更全面?>自动化持续积累

  1、拥有:测试理论 + 业务知识 + 系统实现。

  2、用少的用例达到业务覆盖。

  3、用多的思考,追求场景的丰富。

  4、长期积累,如果实现自动化更佳。

  五、做到什么程度才理性

  1、本身是一个非理性的职业,没有答案。

  2、测试覆盖率要多少?缺陷密度要多少?转测试标准要如何?code review要多少?自动化率要多少?探索性测试多少?没有答案。

  3、根据公司、产品、团队情况,做到当前的理性可以,慢慢积累向更理性努力。

  4、不过,如果一个人坚持理性主义,那么他本身是有非理性主义因素的。