为什么要了解软件测试工程师的核心竞争力?
因为只有当你真正明白了自己的核心竞争力,你才能理清“应该做什么”和“应该怎么做”这两个问题,才能朝着正确的方向前行。
●作为测试人员,必须要深入理解业务,但是业务知识不能等同于测试能力。
●测试开发岗位的核心其实是“测试”,“开发”的目的是更好地服务于测试,我们看重的是对测试的理解,以及在此基础上设计、开发帮助测试人员提高效率并解决实际问题的工具,而不是一个按部就班、纯粹意义上的开发人员。
目前的测试工程师分为两大类别,一类是做业务功能测试的,另一类是做测试开发的,二者的核心竞争力有很大差别的。
那么功能测试和测试开发工程师的核心竞争力分别是什么?
传统测试工程师应该具备的核心竞争力:测试策略设计能力、测试用例设计能力、快速学习能力、探索性测试思维、缺陷分析能力、自动化测试技术和良好的沟通能力。
第一项核心竞争力,测试策略设计能力:对于各种不同的被测软件,能够快速准确地理解需求,并在有限的时间和资源下,明确测试重点以及最适合的测试方法的能力。
具备出色的测试策略设计能力,你可以非常明确地回答出测试过程中遇到的这些关键问题:
①测试要具体执行到什么程度;
②测试需要借助于什么工具;
③如何运用自动化测试以及自动化测试框架,以及如何选型;
④测试人员资源如何合理分配;
⑤测试进度如何安排;
⑥测试风险如何应对。
不像测试技术,你可以通过培训或者网上资料的学习而有快速的提升,测试策略设计能力一定是需要你在大量实践的基础上潜移默化形成的。是最难培养的一种核心竞争力。
第二项核心竞争力,测试用例设计能力:测试用例设计能力是指,无论对于什么类型的测试,都能设计出高效地发现缺陷,保证产品质量的优秀测试用例。
要做好测试用例设计,不仅需要深入理解被测软件的业务需求和目标用户的使用习惯,还要熟悉软件的具体设计和运行环境,包括技术架构、缓存机制、中间件技术、第三方服务集成等等。
要想提高测试用例设计能力,你平时就要多积累,对常见的缺陷模式、典型的错误类型以及遇到过的缺陷,要不断地总结、归纳,才能逐渐形成体系化的用例设计思维。
同时,你还可以阅读一些好的测试用例设计实例开阔思路,日后遇到类似的被测系统时,可以做到融会贯通和举一反三。
第三项核心竞争力,快速学习能力。
快速学习能力,包含两个层面的含义:
●对不同业务需求和功能的快速学习与理解能力;
●对于测试新技术和新方法的学习与应用能力。
快速学习能力,乍一看是比较难培养的,但其实也有一些小窍门。
比如,当你学习一个新的开源工具时,建议你直接看官方文档:一来,这里的内容是最新而且是最权威的;二来,可以避免网上信息质量的参差不齐。知识输入源头是单一,而且权威的话,你的学习曲线也必然会比较平滑。
另外,当学习新内容时,你一定要做到理解其原理,而不是只停留在表面的、简单的操作和使用,长期保持这种学习状态,可以在很大程度上提高逻辑思维和理解能力。这样,当你再面对其他新鲜事物时候,也会更容易理解,形成良性循环。
第四项核心竞争力,探索性测试思维:测试工程师在执行测试的过程中不断学习被测系统,同时结合基于自己经验的错误猜测和逻辑推理,整理和分析出更多的有针对性的测试关注点。
第五项核心竞争力,缺陷分析能力。
①对于已经发现的缺陷,结合发生错误的上下文以及后台日志,可以预测或者定位缺陷的发生原因,甚至可以明确指出具体出错的代码行,由此可以大幅缩短缺陷的修复周期,并提高开发工程师对于测试工程师的认可以及信任度;
②根据已经发现的缺陷,结合探索性测试思维,推断同类缺陷存在的可能性,并由此找出所有相关的潜在缺陷;
③可以对一段时间内所发生的缺陷类型和趋势进行合理分析,由点到面预估整体质量的健康状态,并能够对高频缺陷类型提供系统性的发现和预防措施,并以此来调整后续的测试策略。
第六项核心竞争力,自动化测试技术:掌握自动化测试技术,可以把你从大量的重复性手工劳动中解放出来,这样你可以把更多的时间花在更多类型的测试上。
但是切记,自动化测试的核心价值还是“测试”本身,“自动化”仅仅是手段,实际工作中千万不要本末倒置,把大量的精力放在“自动化”上,一味追求自动化而把本质的“测试”弱化了。
第七项核心竞争力,良好的沟通能力。
测试工程师在软件项目中作用,有点像“润滑剂”:
一方面,你需要对接产品经理和项目经理,以确保需求的正确实现和项目整体质量的达标;
另一方面,你还要和开发人员不断地沟通、协调,确保缺陷的及时修复与验证。
所以,测试工程师的沟通能力会直接影响事务开展的效率。良好清晰的沟通能力,是一个技术优秀的测试工程师能否获得更大发展的“敲门砖”,也是资深测试工程师或者测试主管的核心竞争力。
《软件测试52讲》学习笔记Day5