一、前二天在写一份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、不过,如果一个人坚持理性主义,那么他本身就是有非理性主义因素的。