09 | 软件测试工程师的核心竞争力是什么?
传统测试工程师师应该具备的核心竞争力
第一项核心竞争力,测试策略设计能力
测试策略设计能力是指,对于各种不同的被测软件,能够快速准确地理解需求,并在有限的时间和资源下,明确测试重点以及最适合的测试方法的能力。
具备出色的测试策略设计能力,你可以非常明确地回答出测试过程中遇到的这些关键问题:
测试要具体执行到什么程度;
测试需要借助于什么工具;
如何运用自动化测试以及自动化测试框架,以及如何选型;
测试人员资源如何合理分配;
测试进度如何安排;
测试风险如何应对。
如何培养测试策略设计能力?
培养出色的测试策略设计能力,不是一朝一夕的事情,通常需要经过大量项目的实际历练,并且你还要保持持续思考,主动去提炼共性的内容。
不像测试技术,你可以通过培训或者网上资料的学习而有快速的提升,测试策略设计能力一定是需要你在大量实践的基础上潜移默化形成的。
第二项核心竞争力,测试用例设计能力
测试用例设计能力是指,无论对于什么类型的测试,都能设计出高效地发现缺陷,保证产品质量的优秀测试用例。
要做好测试用例设计,不仅需要深入理解被测软件的业务需求和目标用户的使用习惯,还要熟悉软件的具体设计和运行环境,包括技术架构、缓存机制、中间件技术、第三方服务集成等等。
测试用例设计能力要求你不仅仅局限于熟悉业务领域的测试用例设计,而是能够融会贯通,熟练地把系统性的测试设计方法和具体业务有机结合,对任何被测软件都可以输出出色的测试用例。
如何培养测试用例设计能力?
要想提高测试用例设计能力,你平时就要多积累,对常见的缺陷模式、典型的错误类型以及遇到过的缺陷,要不断地总结、归纳,才能逐渐形成体系化的用例设计思维。
同时,你还可以阅读一些好的测试用例设计实例开阔思路,日后遇到类似的被测系统时,可以做到融会贯通和举一反三。
第三项核心竞争力,快速学习能力
快速学习能力,包含两个层面的含义:
对不同业务需求和功能的快速学习与理解能力;
对于测试新技术和新方法的学习与应用能力。
培养快速学习能力的小窍门?
当你学习一个新的开源工具时,建议你直接看官方文档。
当学习新内容时,你一定要做到理解其原理,而不是只停留在表面的、简单的操作和使用。
第四项核心竞争力,探索性测试思维
探索性测试是指,测试工程师在执行测试的过程中不断学习被测系统,同时结合基于自己经验的错误猜测和逻辑推理,整理和分析出更多的有针对性的测试关注点。
第五项核心竞争力,缺陷分析能力
缺陷分析能力,通常包含三个层面的含义:
对于已经发现的缺陷,结合发生错误的上下文以及后台日志,可以预测或者定位缺陷的发生原因,甚至可以明确指出具体出错的代码行,由此可以大幅缩短缺陷的修复周期,并提高开发工程师对于测试工程师的认可以及信任度;
根据已经发现的缺陷,结合探索性测试思维,推断同类缺陷存在的可能性,并由此找出所有相关的潜在缺陷;
可以对一段时间内所发生的缺陷类型和趋势进行合理分析,由点到面预估整体质量的健康状态,并能够对高频缺陷类型提供系统性的发现和预防措施,并以此来调整后续的测试策略。
第六项核心竞争力,自动化测试技术
掌握自动化测试技术,可以把你从大量的重复性手工劳动中解放出来,这样你可以把更多的时间花在更多类型的测试上。
第七项核心竞争力,良好的沟通能力
测试工程师在软件项目中作用,有点像“润滑剂”:
一方面,你需要对接产品经理和项目经理,以确保需求的正确实现和项目整体质量的达标;
另一方面,你还要和开发人员不断地沟通、协调,确保缺陷的及时修复与验证。
测试开发工程师的核心竞争力
首先既然是测试开发工程师,那么代码开发能力是最基本的要求。
第一项核心竞争力,测试系统需求分析能力
除了代码开发能力,测试开发工程师更要具备测试系统需求分析的能力。你要能够站在测试架构师的高度,识别出测试基础架构的需求和提高效率的应用场景。从这个角度说,你更像个产品经理,只不过你这个产品是为了软件测试服务的。
第二项核心竞争力,更宽广的知识体系
测试开发工程师需要具备非常宽广的知识体系,你不仅需要和传统的测试开发工程师打交道,因为他们是你构建的测试工具或者平台的用户;而且还要和 CI/CD、和运维工程师们有紧密的联系,因为你构建的测试工具或者平台,需要接入到 CI/CD 的流水线以及运维的监控系统中去。
除此之外,你还要了解更高级别的测试架构部署和生产架构部署、你还必须对开发采用的各种技术非常熟悉。
来源于:极客时间 茹炳晟 软件测试52讲