目录
全球各地的企业每天都在发展变化着,以应对市场挑战,满足日益成熟的客户需求。即使是正在进行的技术进步也会使软件测试专家在实践的过程中更加专注和精确。
2023年给软件测试领域带来了新的技术解决方案,以及质量保证和软件测试的实现。与此同时,诸如敏捷、DevOps、DevSecOps和测试自动化等实践继续在整个软件测试周期中保持其相关性和应用。
而2024年软件测试和开发领域的一些强劲趋势主要有以下几个:
《福布斯》的一篇题为《软件测试中的人工智能:机器人会代替你的位置吗?》中提到:“依赖技术完成高重复性任务的趋势,同时使人们能够专注于高价值的活动,如创造收入、建立关系和增长管理,正在加快变化的步伐。因为很多测试空间是重复的,有理由相信人工智能可以很容易地在这些领域中使用。剩下的将留给测试人员,他们的工作将是审查系统,与人工智能一起工作,来彻底改变测试的执行方式。”
这说明了AI在软件测试中的必要性和重要性。随着商业数字化转型的加快,人工智能在软件测试速度和准确性方面的应用必将增加。甚至机器学习也在测试和软件开发过程中取得了长足的进步,特别是在预测分析、日志分析、需求跟踪和缺陷分析方面。
在过去的一年里,有很多关于数字转型的讨论和文章。企业正在经历巨大的数字化变革,这也带来了许多不安全感和挑战。使用诸如Agile和DevOps之类的方法,测试过程变得更加灵活,并且能够响应业务需求。
然而,随着新特性必须以渐进的模式交付,这将增强在启动和运行的应用程序中持续部署和集成的需要。业务转换每天都会遇到新的挑战,这些挑战可能与性能、安全性或功能相关。因此,随着时间的推移,对持续开发和集成的需求只会不断增加。
正如业务专家和技术极客所预估的那样,数据将增强测试人员的业务决策能力,并使有效的决策能力成为可能。而更重要的是测试数据,它可以确保推导出的推论是准确的,并以一种容易理解的形式去传递。测试人员需要验证TB级别的数据是否得到了有效的处理,并被分解为精确的集群,以获得所需的推论。
这种测试数据可以应用到性能测试、功能测试,甚至是安全测试。在大数据测试中,保证数据的质量是非常关键的,大数据测试可以从精度、准确性、一致性、重复性等特征入手进行验证。
根据ResearchAndMarkets的一份报告,“全球智能应用市场在2017年是83.9亿美元,预计到2026年将达到934亿美元,在预测期间的复合年增长率为30.7%。”对先进分析工具的日益渴望,部署新产品技术的进步,以及大数据和分析市场的提升,正在推动智能应用的发展。发展中经济体的接受程度加深为市场扩张提供了重大机遇。
这份报告总结了智能应用的需求,我们可以从未来的趋势中评估,测试需求只会增加。对这些应用程序的准确性、性能、安全性、功能以及任何基于需求的东西进行有效测试的需求也正在增长。
确保你的应用程序或软件在不断变化或具有挑战性的条件下按预期工作始终是需要考虑的一个重要因素。性能测试一直是软件测试的一个关键方面,随着趋势的发展,性能测试将最终转向性能工程。重点将主要集中在所有能够确保性能、安全性、可用性、网络兼容性等的因素上,而这些因素都必须致力于交付高质量的应用程序,以满足客户日益增长的需求。
即使在未来几年,软件测试的需求和作用也只会越来越突出,技术和数字环境方面的挑战必将进一步增加。因此,对软件测试和质量保证的需求在这些变化的环境中保持相关性同样重要。
测试人员通常被视为仅仅是在功能开发完成后对其执行测试用例的人。或者,如果我们谈论自动化测试,测试人员就是编写自动化测试并维护它们的人,并报告发现的问题,仅此而已。
七年前,当我开始质量工程师的职业生涯时,我的理解也同样狭隘。我的日常工作就是根据产品负责人编写的需求创建测试用例,然后在开发完成后执行测试、记录发现的缺陷、验证缺陷修复。
我没有意识到测试工作远不止于此。但后来,我换了工作,加入了全球的各种测试社区,并与来自各行各业的人交流。这让我大开眼界:测试人员在软件开发团队中扮演的角色要比我上面描述的广泛得多。我了解到的这些新信息,开拓了我的视野,并改变了我的工作方式。
在现代企业中,测试人员是团队的积极成员,从开发周期的一开始就参与其中。在需求定义阶段,我们协助去做风险分析。我们研究需求,明确需求中的分歧和不确定性,识别可能威胁产品的风险,并促进产品与开发人员之间的讨论。测试人员从技术和业务两个角度了解产品,这使我们能够带来新的视角。我们经常会提出别人可能不会提出的问题。有时,这样的问题会引起讨论,但其结果对公司有益。
测试人员在需求收集和设计过程中,也会提供帮助。我记得有一天,一个产品负责人提出了一个关于新功能的想法。他发起了一次团队启动会议。开发人员很喜欢这个想法,并开始着手解决方案。幸运的是,团队中的测试人员主张先调查再行动。这个测试人员,曾在公司的不同团队中工作过,并且很清晰之前做过的那些工作,他指出,类似的功能在我们的某个产品中已经存在了,也许可以与负责的团队协商,并复用相关的实现方案。事实上,我们就是这样做的。
通过这种方式,我们大大降低了成本。新功能不需要新的设计或编码,我们成功地保证了SaaS解决方案中用户体验的一致。
人们可能认为测试会减慢开发速度。测试意味着再实施过程中需要做更多的工作,当开发人员说:“已经完成了,可以部署到生产环境了!”却听到还有问题需要修复才能发布时,这肯定很烦人。测试人员执行他们的脚本并进行检查,找到越来越多的问题,并要求修复这些问题。然后,开发人员需要投入时间和精力来解决发现的问题,而不是“直接发布”。
与普遍观念相反,测试推动着整个流程向前发展。从探索性测试到运行自动化脚本,测试人员在开展不同活动的过程中会识别到不同的问题,并及时与相关人员沟通。测试人员不仅提高了对产品开发状况的认识,还会倡导修复发现的问题,并常常加速开发过程。
尽管发布新功能可能看起来比其他任何事情都更有价值,但实际上,如果一个错误被发布出去,客户会抱怨新功能中的错误,开发人员在已发布的功能和新功能之间来回切换的心理成本,实际上会减缓新项目的进度。
终于,产品发布了。开发和测试执行工作已经完成,该功能可以供客户使用了。耶!人们可能会说,测试人员的工作到此为止了,现在是专注于新功能的时候了。然而,事实并非如此。
新功能发布后,我们会分析相关的指标:它的速度和可靠性如何,新功能对整体产品的性能和稳定性的影响如何。这对于识别软件的关键部分和未来工作的优先级非常重要。我们还会关注新功能的使用情况:客户是如何使用它的,他们提出了哪些问题,以及他们主要遇到了哪些困难。
在去年的一次会议上,我分享了用户体验数据对制定测试策略的重要性,并解释了测试人员需要了解这些才能高效地完成工作。如果我们知道客户在某个地方遇到了困难或陷入了困境,我们会大声表达出来,以便我们的团队能解决这些问题,并提倡高优解决。在另一种常见情况下,如果某个功能没有被广泛使用,那么在修复内部发现的小缺陷上投入时间和精力可能就没有太多意义了。
我们的工作永无止境。我们是团队的纽带,我们从开发人员、产品经理、设计师、客户支持工程师和其他利益相关者那里积累知识,我们还能纵观全局。在测试人员的工作中,所有这些关于产品的观点都很重要,而在公司中几乎找不到其他角色拥有这种知识。
这种独特的技能和知识的结合,使我们在遇到任何有关 “现在如何工作 “的问题时,都能成为最合适的人选。我们了解当前的状态,并能协助弥合愿景与现实之间的差距,从而极大地简化开发工作。
以我自身为例子,刚开始被裁其实还是有些开心的,毕竟工作不是特别舒服,n+2的赔偿还不缴税,挺香的。
从15年开始做软件测试工作至今也快八年了,也没怎么好好休过假给过自己空间。
六月底裁员,七月份忙着考驾照,八月份忙着提车,慢悠悠开始更新简历,投简历。
结果现实给了我一个惨烈的教训,知道今年求职市场艰难,但当自己真正开始找工作才知道有多惨烈。
相比于去年跳槽时候的面试邀约不断offer不断,今年完全就是断崖式暴跌的现状。
求职网站如boss直聘之类的,上面的岗位大多只是挂着,而且绝大多数都是猎头的岗位。
很多都是发了消息没人回复,好不容易有人回复你,也是需要等待评估。
当前的求职市场,对于刚踏出校园的萌新和已婚有房贷车贷的同学来说,真的很残酷。
当然,今年如此惨烈的市场有很多因素,战争、国际关系、监管政策、全球经济衰退等各种原因。
最近市场稍微好点了,但乐观估计,整体好转可能要到春节前后。
面对裁员,我个人的感触,最大的挑战其实是个人的心态问题。
从裁员到现在将近四个月里,我自己也经历了放松、乐观、焦虑、失眠到现在心态渐渐平稳。
现在市场上但凡稍微有个好点的岗位,竞争激烈程度超过想象。
而且很多岗位的薪资待遇以及对候选人的要求,都有了不同程度的变化。
很直观的一点是:总包降了,要求多了,竞争对手更多,企业对于招聘也没那么急切了。
对于一些现金流比较紧张的同学来说,经历几次很容易被搞崩心态,甚至陷入自我怀疑状态。
我个人觉得,这种心态的经历是正常的,从某种角度来说,也有好处。
和朋友聊天时候,我说我最近挺喜欢一句话:低谷的时候,你看到的听到的感受到的,才是最真实的。
也许曾经我们在大平台,好企业,核心岗位,觉得自己的市场竞争力很强。
但真正的竞争力,永远是剥离了平台行业岗位等光环后,你自己的价值。
高峰的时候人容易看不清自己,这种错觉还具备反应迟钝的某种特质。
其实无论心态怎么变化,市场环境是无法改变的。
作为一个普通人和求职者,我个人目前的看法,是调整自己的预期,以更踏实的态度来对待。
有面试就好好准备好好面试,多争取面试的机会。
没有面试就学习,也可以复盘下自己的不足之处,毕竟失业只是暂时的。
长久来看,只有不断提升自己的能力才能在未来市场好转时抓住更好的机会。
最近我自己的心态也慢慢平稳了下来,开始克服焦虑重新找到了之前的节奏。
一方面找认识的朋友和业内大佬问问有没有内推机会,另一方面反思自己的不足之处,学习提升。
就像我和朋友聊天说的,我现在就是四保持:保持状态,保持学习,保持思考,保持耐心。
保持状态,不断调整心态,以更加积极的态度面对现状。
保持学习,每天上午看技术文章和课程,下午实践+复盘温习,写一篇总结文章,晚上看一些哲学心理学书籍。
保持思考,在技术群看大家讨论工作和技术问题,反思易地而处自己该如何处理,最近的面试还有哪里可以提升的。
保持耐心,一方面理性分析和认可自己的核心竞争力,另一方面我才30岁,人生真正的巅峰才刚刚开始,未来可期。
我一直觉得30岁是人生的下半场,30岁之前是为了上战场做准备,30岁后才是真正的战场。
目前的这个过程是煎熬的,需要时间去渡过低谷。
但如果不提前做一些准备,那等到再次爬坡,很容易后继无力而彻底沉沦。
个人的看法,目前也许我们是遇到了一次求职危机,甚至是全球性的经济危机。
但早点经历,在还能承受得住和熬过去的时间去经历,才有机会等到下一次起风。
当下是低谷,低谷可以更容易看清现实,也更能找到未来新的可能性。
前面10年是互联网相关的行业起飞,后面十年,不妨理智冷静的找找新的机会。
半导体芯片、新汽车座舱智能驾驶甚至传统企业的数字化转型、智能制造,这些也许都蕴含机会。
对技术同学来说,换行和迁移成本,相对来说还是比较低的。
除了职业生涯发展,当下或许也是个人认知体系的重塑机会。
除了按部就班的上班赚取薪水,不妨尝试开辟第二条收入曲线,副业斜杠,开源节流。
按部就班的做技术工作可以看作是收入的第一曲线,副业斜杠是第二曲线。
第一曲线和第二曲线是经济学上的术语,大意是:
世界上任何事物的产生与发展,都有一个生命周期,并形成一条曲线。在这条曲线上,有起始期、成长期、成就期、高成就期、下滑期、衰败期,整个过程犹如登山活动。为了保持成就期的生命力,就要在高成就到来或消失之前,开始另外一条新的曲线,即第二曲线。
每个人的职场都会面临第一曲线的衰败和周期调整,在衰败和周期调整的危机来临时,不断加强自己的核心竞争力和可迁移的能力,这不仅可以保障你较为稳定的度过周期调整阶段,还能让你以更好的姿态迎来第二曲线的发展。
熟悉我的朋友都知道我的两句口头禅:
保持耐心;
不断寻找新的可能性;
无论是看书、学习、写文章,还是我近几年的几次职业选择,看似鲁莽的背后,一方面是为了加强自己的可迁移能力,另一方面则是我在不断寻找第二曲线的可能性。
延长第一曲线生涯,培养可迁移能力,这个过程中去寻找第二曲线的切入点。
这样在危机来临时,才能尽量做到心态平稳,积极去面对一些黑天鹅和灰犀牛。
这一切的前提,都需要保持耐心,长期去做一些事。
最后我邀请你进入我们的【软件测试学习交流群:1150305204】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路
作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。