无论硬件研发还是软件研发,都需要测试工程师找出软件缺陷、保障产品质量,以降低项目风险,我们可能听到过由于某一个漏洞导致公司损失多少钱的例子,而测试的价值就是尽可能早的——发现这些会给公司造成损失的问题,在项目交付前反馈到开发修复。所以测试岗位对于企业来说也至关重要。
在做测试时,我一直期望能发挥自己的最大价值,无论是功能性问题还是用户体验问题,我都会一一跟踪,当兼顾项目进度,有些问题来不及修复时,遗留问题我会提醒开发在空挡期间修复,期间也遇到过一些比较难沟通的开发,后面也都慢慢的相信测试,我一直坚信一点,事在人为。
随着工作年限增长,我开始思考以后的职业方向,做测试主要有2个方向,一个是往管理方向,另一个是往专业方向,比如性能测试、自动化测试。当时所在的平台比较大,工资不高,同岗位有一些经验足且资历老的同事,往管理方向在3到5年内,基本看不到希望;当时的测试是偏软件和硬件结合,主要涉及黑盒功能性测试,而自动化测试和性能测试的工具没有使用的空间,正巧当时处在互联网兴盛的时候,招聘测试的很多,后来经过权衡,加入了一家互联网公司继续做软件测试,这个时候算是刚开始接触互联网产品。
互联网公司,主要是围绕商业模式、圈用户展开,产品经理是离商业模式最近的,我在做测试时,pass还是fail的标准来源于产品经理的需求和原型中的描述,而有时会发现,需求中缺乏对异常逻辑的处理,往往开发阶段或测试阶段发现时,需要开发加入处理来避免;也有时会出现,实际编程过程中,开发才意识到功能的复杂度超过需求评审时的难度。
这些问题都有可能导致无法在预估的工期内上线,当然这个时候有很多处理方案,比如加班解决、减掉部分功能、牺牲用户体验、缩减测试时间匆匆忙忙来保证预期上线,而往往,测试是这个工作链中的最后一环,试想,创业公司的人员不多,能预期上线已是欣慰,对质量、对用户体验的把握,从认知上还不是这个阶段的重点。
这个时候,我发现,产品经理处于源头,这个阶段规划好了,定位清晰、流程清晰、交互清晰,才能最大限度的提高产品的质量。测试中有一个理论,问题发现得越早,修复成本越低。
几年的测试经验,对需求、研发、测试已有一定的积累,再加上内心有一股想创造价值的激情,内驱外推,内心特别坚定:由测试转到产品,从源头提高产品的质量,创造性的提升自己的价值。
当你清晰的知道做一件事情的原因时,往往是执行力最强的时候。于是我用了半年时间,开始自学产品方面的工具和知识。
自学了Axure、Viso、Xmind等常用工具,工具的作用是把想法和思路表达出来,仅此而已,不过这是基础;
为了提升自己对产品的理解,我阅读了产品方面的经典书籍,如启示录、用户体验要素、Don’tmake me think,人人都是产品经理、交互设计沉思录等,这些书籍里面包含一些基础的理论方法,能帮助自己建立产品理论体系和思考的准绳,知道别人为什么这么做,同时可以帮助自己决策,宣讲需求时,不是我感觉怎么样,而是我的依据是什么,只有自己专业了才能让同事觉得可以依赖。经常听到有声音说,理论没有用,我认为,在你对一个方向不了解时,从基础的理论架构入手,是搭建自己知识体系最快的方式,之后就是积累经验往这个架构里面填补,然后去调整、去总结,最后得出自己的一套思维体系。
与此同时,我也向身边的产品经理请教他们的一些思路和方法,同时加入一些圈子,不过完全是以潜水的形式存在。
机会总是给有准备的人的,这个阶段不会得到所有公司的认可,但是总会有愿意提供机会的平台,虽然没有工作经验,但是准备充分,后来如愿的找到了产品岗的工作机会,代价是与测试相比工资降低了不少。
产品是一项富有创造性的工作,我们需要结合战略定位,思考事物的内在本质、用户的心理,梳理出一套特有的流程,在这个过程中,会经历很多次决策、很多个坎,而测试经历为我打下了很好的基础。
首先,测试磨练了我的耐心。测试是一项重复性的工作,开发修改过一个地方后,测试需要将涉及到的相关功能再执行一遍,尽管是以前测试通过的功能;开发有时会出现代码回滚的情况,已解决的问题可能会复现,这个过程会很磨练人的耐心。而梳理产品需求没有头绪时,需要耐心的研究行业资料。
测试的经历,让我体会了项目管理、研发、测试、上线发布、再迭代的全软件生命周期,对以后产品需求的管理和上线提供了很好的参考模板。
测试的经历,让我对技术有了基本的认识。产品经理在设计方案时,需要兼顾方案的可执行性,对技术了解,才能更好的将方案落地。以前我在公众号里面发布了一篇文章“产品经理该了解到技术的哪一层面?”,里面涉及的前后端交互也是测试阶段总结的。
一些思绪
写到这里,让我想起了一句话“你现在经历的每一件事,都会在未来某一时刻用上”。
未来还很长,现在才刚刚开始,我无法阻挡时间的流逝,但可以在某个时刻留下值得自己回忆的印记;我无法预测未来,但是可以把握当下。
继续一路向前。