专栏首页IT测试前沿软件测试工程师承受的压力(二)

软件测试工程师承受的压力(二)

上回软件测试工程师承受的压力(一)给大家分享了软件测试工程师需要面对的压力:

1. 项目压力最后传导的压力。

2. 容易背锅的压力。

3. 技术人员职场情商的压力。

其他两点:4.收入的压力 5.家庭的压力,因为所有职场人都会有遇到,暂时不说了。

今天主要介绍一下软件测试工程师要面对的技术更新、学习的压力。

测试是一门技术,入行容易,但是得持续地学习,学习的内容很多很广。

如果你花时间静下心来仔细想一下,很可能会把自己吓一大跳,需要了解掌握的非测试知识实在是太多了,是一个 mini 版的系统架构师!

小到 Linux/Unix/Windows 操作系统的基础知识,Oracle/MySQL 等传统关系型数据库技术, NoSQL 非关系型数据库技术,中间件技术,Shell/Python 脚本开发,版本管理工具与策略, CI/CD 流水线设计,F5 负载均衡技术, Fiddler/Wireshark/Tcpdump 等抓包工具,浏览器Developer Tool 等;大到网站架构设计,容器技术,微服务架构,服务网格(Service Mesh),DevOps,云计算,大数据, 人工智能和区块链技术等。

软件测试工程师面临的问题?

觉得测试工程师涉及的太广了,然后就很迷茫,觉得什么都要会,什么都不精,然后就不知道职业发展需要往哪个方向走。感觉在日常工作中被各种杂事淹没了,没有个清晰的职责,这样就很难找到方向。

之所以很多的测试会感觉到迷茫,或者找不到自己的核心价值,是因为测试的核心价值的得到和提高,并没有太多具体的书和文献可看,一切都需要测试人员自己一直保持主动去思考,去总结,在不断实践中潜移默化地完成升华。这种能力每个人都有,但并不是很容易做到。另一方面,测试确实经常处于大量繁杂琐碎的任务中,还有很多重复性的工作,比如一遍遍的回归测试。越不思考和总结,就越是在按部就班地劳动,能力和价值难以提升,最终产生迷茫和对测试价值的怀疑。

那么测试人员需要具备哪些基本素养呢?

传统测试工程师师应该具备的核心竞争力 这部分内容,按照一项能力对测试工程师的重要程度的顺序,依次归纳了测试工程师要具备的七项核心竞争力,包括:测试策略设计能力、测试用例设计能力、快速学习能力、探索性测试思维、缺陷分析能力、自动化测试技术和良好的沟通能力

第一项核心竞争力,测试策略设计能力

测试策略设计能力是指:对于各种不同的被测软件,能够快速准确地理解需求,并在有限的时间和资源下,明确测试重点以及最适合的测试方法的能力。

具备出色的测试策略设计能力,你可以非常明确地回答出测试过程中遇到的这些关键问题:

1.测试要具体执行到什么程度;

2.测试需要借助于什么工具;

3.如何运用自动化测试及自动化测试框架以及如何选型;

4.测试人员资源如何合理分配;

5.测试进度如何安排;

6.测试风险如何应对;

培养出色的测试策略设计能力,不是一朝一夕的事情,通常需要经过大量项目的实际历练,并且你还要保持持续思考,主动去提炼共性的内容。

第二项核心竞争力,测试用例设计能力

测试用例设计能力是指,无论对于什么类型的测试,都能设计出高效地发现缺陷、保证产品质量的优秀测试用例。

要做好测试用例设计,不仅需要深入理解被测软件的业务需求和目标用户的使用习惯,还要熟悉软件的具体设计和运行环境,包括技术架构、缓存机制、中间件技术、第三方服务集成等等。

测试用例设计能力要求你不仅仅局限于熟悉业务领域的测试用例设计,而是能够融会贯通,熟练地把系统性的测试设计方法和具体业务有机结合,对任何被测软件都可以输出出色的测试用例。

要想提高测试用例设计能力,你平时就要多积累,对常见的缺陷模式、典型的错误类型以及遇到过的缺陷,要不断地总结、归纳,才能逐渐形成体系化的用例设计思维。

同时,你还可以阅读一些好的测试用例设计实例开阔思路,日后遇到类似的被测系统时,可以做到融会贯通和举一反三。

第三项核心竞争力,快速学习能力

1.对不同业务需求和功能的快速学习与理解能力;

2.对于测试新技术和新方法的学习与应用能力。

当你学习一个新的开源工具时,建议你直接看官方文档:一来,这里的内容是最新而且是最权威的;二来,可以避免的参差不齐。知识输入源头是单一,而且权威的话,你的学习曲线也必然会比较平滑。

当学习新内容时,你一定要做到理解其原理,而不是只停留在表面的、简单的操作和使用,长期保持这种学习状态,可以在很大程度上提高逻辑思维和理解能力。这样,当你再面对其他新鲜事物时候,也会更容易理解,形成良性循环。

第四项核心竞争力,探索性测试思维

探索性测试是指,测试工程师在执行测试的过程中不断学习被测系统,同时结合基于自己经验的错误猜测和逻辑推理,整理和分析出更多的有针对性的测试关注点。

本质上,探索测试思维是“测试用例设计能力”和“快速学习能力”有机结合的必然结果。优秀的探索性测试思维可以帮助你实现低成本的“精准测试”,精准测试最通俗的理解可以概括为针对开发代码的变更,目标明确并且有针对性地对变更点以及变更关联点做测试,这也是目前敏捷测试主推的测试实践之一。

第五项核心竞争力,缺陷分析能力

缺陷分析能力,通常包含三个层面的含义:

对于已经发现的缺陷,结合发生错误的上下文以及后台日志,可以预测或者定位缺陷的发生原因,甚至可以明确指出具体出错的代码行,由此可以大幅缩短缺陷的修复周期,并提高开发工程师对于测试工程师的认可以及信任度。

根据已经发现的缺陷,结合探索性测试思维,推断同类缺陷存在的可能性,并由此找出所有相关的潜在缺陷;

可以对一段时间内所发生的缺陷类型和趋势进行合理分析,由点到面预估整体质量的健康状态,并能够对高频缺陷类型提供系统性的发现和预防措施,并以此来调整后续的测试策略。

这三个层面是一次递进的关系,越往后越能体现出测试工程师的核心竞争力。

第六项核心竞争力,自动化测试技术

掌握自动化测试技术,可以把你从大量的重复性手工劳动中解放出来,这样你可以把更多的时间花在更多类型的测试上。

一方面,自动化测试技术本身不绑定被测对象,比如说你掌握了GUI的自动化测试技术,那么你就可以基于这个技术去做任何GUI系统的界面功能测试了。

另一方面,自动化测试技术需要测试工程师具备一定的写代码的能力,这通常与测试工程师职业发展的诉求不谋而合,所以你会看到很多测试工程师非常热衷做自动化测试。

但是切记,自动化测试的核心价值还是“测试”本身,“自动化”仅仅是手段,实际工作中千万不要本末倒置,把大量的精力放在“自动化”上,一味追求自动化而把本质的“测试”弱化了。

第七项核心竞争力,良好的沟通能力

测试工程师在软件项目中作用,有点像“润滑剂”:

一方面,你需要对接产品经理和项目经理,以确保需求的正确实现和项目整体质量的达标;另一方面,你还要和开发人员不断地沟通、协调,确保缺陷的及时修复与验证。

所以,测试工程师的沟通能力会直接影响事务开展的效率。良好清晰的沟通能力,是一个技术优秀的测试工程师能否获得更大发展的“敲门砖”,也是资深测试工程师或者测试主管的核心竞争力。

再聊聊测试开发工程师的核心竞争力是什么?

首先既然是测试开发工程师,那么代码开发能力是最基本的要求。可以说,一个合格的测试开发工程师一定可以成为一个合格的开发工程师,但是一个合格的开发工程师不一定可以成为合格的测试开发工程师。

第一项核心竞争力,测试系统需求分析能力

除了代码开发能力,测试开发工程师更要具备测试系统需求分析的能力。

你要能够站在测试架构师的高度,识别出测试基础架构的需求和提高效率的应用场景。

从这个角度说,你更像个产品经理,只不过你这个产品是为了软件测试服务的。

第二项核心竞争力,更宽广的知识体系

测试开发工程师需要具备非常宽广的知识体系,你不仅需要和的测试开发工程师打交道,因为他们是你构建的测试工具或者平台的用户;而且还要和CI/CD、和运维工程师们有紧密的联系,因为你构建的测试工具或者平台,需要接入到 CI/CD 的流水线以及运维的监控系统中去。

除此之外,你还要了解更高级别的测试架构部署和生产架构部署、你还必须对开发采用的各种技术非常熟悉。可见,对于测试开发工程师的核心竞争力要求是非常高的,这也就是为什么现今市场上资深的测试开发工程师的价格会高于资深的开发工程师的原因。

最后特别感谢测试大佬茹炳胜老师的课程,本章节很多内容由茹老师的课程引申开来,谢谢大家关注。

本文分享自微信公众号 - IT测试前沿(gh_a3e0fe8fdded),作者:muntainyang

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 敏捷测试项目实施后小结

    敏捷的原则:尽早地给客户持续交付 有价值的 成果物。不断地反省调整、最有效的解决方案是面对面沟通。

    muntainyang
  • Win10事件思考

    这是一个有代表性的事件,它关系到软件的测试策略问题。近些年来,随着敏捷开发,持续集成,自动化测试,DevOps等理念的不断普及和深入,软件的测试策略也随之发生改...

    muntainyang
  • 软件测试人员的初心是什么?(一)

    现在的技术发展令我们眼花缭乱,java、doceker、jira、sonar、微服务、jmeter、功能、性能、安全性、自动化测试、渗透性测试、探索性测试、BD...

    muntainyang
  • 中台技术解析之微服务架构下的测试实践

    随着技术的发展,软件开发方法不断演进,测试一直都是不可或缺的一步。作为提升用户体验、保障软件质量的关键环节,软件测试至关重要。特别是面对多样化的测试需求、不断加...

    深度学习与Python
  • 《软件测试52讲》读书笔记 —— 软测的核心竞争力

    测试工程的价值不能仅仅体现在特定的产品业务上,一旦离开这个业务领域,若你的经验积累很难被有效重用的话,那你的竞争力就会下降

    小菠萝测试笔记
  • 一分钟读懂兼容测试报告(一):概况篇

    ? WeTest 导读 在WeTest深度兼容测试上线之后,为大量手游及应用挖掘了兼容问题,为测试开发同学提供了极大的便利。为了能够让测试开发同学能够迅速的了...

    WeTest质量开放平台团队
  • 为什么自动化测试在敏捷开发中很重要

    软件开发技术一直在不断进步,在谈论软件开发方法时,人们越来越重视测试在软件开发中所扮演的角色。因此,为了跟上最新的软件开发技术的步伐,测试也必须紧跟技术前行的脚...

    FunTester
  • Python自动化之unittest框架

    在软件架构的层面来讲,测试最重要的步骤之一是发生在软件开发的时候。而软件最终的功能是软件实现细节实现的产物。在金字塔模型的测试理论体系中,单元测试是最...

    无涯WuYa
  • 主流原型工具可用性测试横向比较

    可用性测试是指通过观察用户使用产品(或原型)的过程,记录和分析用户的行为和感受,以改善产品可用性的一系列方法。可用性测试适用于产品前期设计开发,中期改进和后期...

    奔跑的小鹿
  • 应用宝基于Robotium自动化测试(下)

    基于Robotium自动化测试(上)》一文中小编介绍了框架选择、测试环境搭建、用例编写、跨应用处理等等内容,本文将承接上文,继续介绍测试报告生成、持续集成等等相...

    腾讯移动品质中心TMQ

扫码关注云+社区

领取腾讯云代金券