1.8 测试进行式

坐下来自己专研整个产品不是明智之举。更便捷的是了解每日构建的版本发生了什么变化?比如增删该查了什么代码,是由谁修改的代码,涉及到哪些功能需要我们去验证 等。这些问题可以帮助我们把重点放在发生改变的地方,使工作安排等更有效率。


测试是开发过程里工程师能涉及最远的地方。那么多技术任务如何组织?如何高效的进行自动化测试?如何保持敏捷但又不操之过急?测试是软件工程领域最有意思的部分,而且有非常好的职业发展的机会。你不再只能管软件中的一小块大妈,你能测试HTML5站点的GPU加速能力,你能验证是不是为多核CPU做了足够多的优化以达到最佳的性能,你能确保沙盒是真正安全的。可以为了让测试更加科学化和技术化,去探讨理解相关技术和问题。这些东西都可以让测试热血沸腾,为解决具挑战性的问题而努力。

当接手一个新项目的时候,需要思考:对被测系统来说,什么是最为重要的东西? 对搜索来说是性能,对新闻来说是时效性,对地图来说是综合性和完整性。每个应用都有其最重要的属性。类似的,在对系统基础架构来说,数据完整性对存储最为重要,可扩展性对网络系统最为重要,利用率对任务管理系统最为关键。当了解了待测试的特定产品的关键因素之后,就要把大部分精力集中在检验系统的核心能力是不是恩哥哥满足这些关键属性要求上。
当这些搞定以后,再去关心简单的事情。(用户界面问题是锦上添花的东西)
另外还要关注河西的不容易改动的方面(比如性能设计),而不对容易改动的方面花费太多精力。

来源:Google软件测试之道

1、熟悉对应功能的需求,因为经常有些问题自己也不确认是不是问题。熟悉了需求,了解了为什么需要这个功能,给客户带来的价值是什么。
2、看研发的设计文档,学习里面的业务逻辑,这样发现一个bug后就能过大概判断是怎样产生的,然后也能够更快的复现以及必现这个bug。
3、自己发现的每个问题都尝试去定位,并且对自己的定位过程全部记录下来。定位不下去了再去找对应的开发(已经有了上面的一些排查和重现问题的基础),开发也很乐意(因为节省了开发定位问题的时间)。一边看着开发定位,一边跟开发去请教(虚心的请教大部分开发也是很乐意赐教的 )。然后将开发的定位过程同时记录下来,等开发确认原因后。再跑过去跟开发一起回顾下整个定位过程,看看自己因为缺失什么技能而没有定位出来。
4、缺失的技能就主动去学习,其实无非就是对业务更加熟悉,然后掌握对应开发的一些调试方法。同时也跟着开发一起去看代码(庆幸的是测试能够去看开发的代码,以及跟开发的关系搞好了)。
5、下次碰到类似的问题就将以前总结的一些方法用上;
6、定期的梳理和总结自己的定位问题方法,形成自己的一套完善的定位问题过程,并且增加熟练度。
7.提取一些共性的问题,然后思考如何去避免和及时的发现这样的问题。

来源:知乎 https://www.zhihu.com/question/26644707/answer/54303164



原文地址:https://www.cnblogs.com/ericazy/p/5859931.html