笔者入行IT从事软件测试有了不少年头,从经历过的同事、业务伙伴来看一名合格的软件测试工程师应该具备怎样的技能,TA的岗位画像应该是怎样,在这里和大家一块探讨。
一重天:对异常的敏锐观察力和技术好奇心
一开始抛出这个观点,可能会打消很多人继续阅读下去的兴趣,因为这特么也太虚无缥缈的一个要求了。确实也是,这里甚至无法给出怎样叫敏锐、怎样叫好奇的定量标准。然而,作为一名软件测试工程师,这个要求却是一个基本的、甚至是决定你能否在这个行业愉快干下去的前置条件。
软件测试需要善于发现产品中存在的不足,也就是产品设计、实现以及部署中的bug。不仅从系统的研发过程正向看产品是否有问题,也需要从用户角度去思考产品的行为是否存在问题。对于一些似是而非的现象,要如猎狗般快速嗅探出其中的“不对劲”。比如,文案描述是否符合业务上下语境;消息传递的字段是否在所有设定场景能够取得对应的值。
软件测试的日常工作是枯燥的,又需要细心的。保持技术的好奇心,可以提高自己工作中的积极性,也能够促使自己用技术的手段提高测试效能。
凭着这份初心,大概入门软件测试行业无忧了吧。
二重天:扎实的技术基础
不可否认国内的软件测试行业入门门槛低,其实和软件测试岗本身技术技能要求高是矛盾的。试想一个技术能力弱的人如何能够指出一个技术能力强的人在设计和开发中的不足呢?
当然,入行门槛低是一个普遍现象,大量的软件测试人员停留在黑盒测试、手工测试层面,很难提升。因此,如果你自认自己技术能力弱,那么多在上面下功夫吧。在日常工作中,多去看设计文档、看开发的代码、看优秀开源项目的代码、甚至自己动手去实现一些工具。如果过不了这个坎,软件测试中的高级岗位基本和你无缘,就等着被后来者顶替你吧。
作为一名合格的软件测试工程师,至少能阅读对应开发的代码,能理清开发代码的设计思路、业务逻辑。对于新增需求会改造到原有哪些模块,会影响哪些地方的回归,这些都能了然于胸。
能自己编写自动化脚本、甚至开发工具进行测试验证,那么你的测试效率和影响力就大大提升了。这样作为一名高级资深的软件测试工程师大概也不成问题了。
三重天:系统性的质量思考能力
软件测试就是要发现产品中的问题,这句话没错,但是却不全对。在软件研发过程中,自然是提前发现问题隐患比产生问题后再去发掘更有效。就如扁鹊三兄弟中的大哥治未病一样,专家级的软件测试工程师往往形成自己的质量体系思路,能够在日常工作中,通过架构设计的优化、设计实现有效的测试工具平台、研发流程优化等等手段去最大限度的降低软件开发过程中的风险。
比如系统实现是否有降级方案、是否有紧急预案、发布中的回滚策略如何制定、是否可以进行影子表验证等等手段,都是在研发过程中常常用到的提升研发质量的手段。一名专家级的软件测试工程师,基本要具备和开发架构对等的能力,可以和开发架构平等对话设计产品的质量能力。
四重天:识别团队技术风险并能落地策略的能力
这是一项软技能,也是软件测试工程师在职场上更进一步的突破点。很多技术能力强的人员,往往在这点上出现瓶颈,更多的体现在善于打点的能力,却没有扫面的全局掌控力。针对团队中遇到的各种问题,如何去粗取精,如何调动资源,如何去落地自己的质量策略。在没有例行政策下,如何施展自己的质量把控能力,这些都在更高层面对软件测试人员的技能提出了要求。
软件测试是一门有着诸多误解,又有诸多挑战的行业。欢迎对软件测试感兴趣、愿意对软件产品质量保驾护航的你加盟!