目录:导读
前言
10年来测试行业发生了什么变化
在过去的十年里,我们见证了技术的大幅提升–无人驾驶汽车、人工智能、AR / VR、区块链、无人机和机器人。许多测试和测试自动化从桌面转移到网络和移动设备上。
从编写自动化测试的大型和昂贵的工具,我们已经转移到小型,灵活,最重要的是 - 免费的库和工具。现在我们有智能报告系统和Docker容器中的测试。现在在云端并行运行成千上万的测试用例并其实不那么昂贵。
但与此同时,许多事情和声明仍然没有改变。
以下是一些在测试人员中不断肆虐的无尽话题:
手工测试已死!
让我们把一切都自动化吧! 通过UI–这才是最好的!。
SDET是测试工程师进化的高峰! 我想成为像谷歌一样的人!
我在开发领域找不到工作,所以我将做一年左右的测试,然后再尝试转行。
测试人员的工资都在底部!
测试工程是一份低技能专业人士的工作!
但为什么行业中会出现这样的情况?问题会不会是别的原因呢?我看到了哪些问题?
现代测试的问题
1、对技术的追求
寻找银弹。一些工程师为一个项目(和一个背景)创建了一个成功的框架,然后开始把它拉到所有其他的项目中作为一个 “完美的解决方案”。这不是可重用性,它只是将一把锤子怼所有的钉子和螺栓。
面向框架的自动化。在一些项目中,工程师们急于编写完美的框架,而忘记了测试本身。结果是,我们有3-6个月的开发时间没有测试!。但是对于客户来说,没有测试是自动化应用不充分的的直接指标。
专注于流水线通过的崇拜者。在这种情况下,已经成功地将测试纳入CICD管道的测试工程师开始迷恋于使测试一直保持绿色。这种痴迷往往导致忽略甚至删除不稳定的测试(这导致忽略了被忽略的测试背后的问题)。
简历驱动的开发。许多测试人员只考虑工作和项目,作为在简历中获得一个花哨的新行的方式。没有任何关于深化技能和用测试和自动化解决业务问题的内容。
只专注于短期目标。许多工程师只喜欢快速的解决方案。这种对自动化测试的态度是很普遍的。工程师们很快就写出了 “东西”,而没有考虑到可维护性,就跑去做新项目了。
2、技能和知识水平不足
知识的缺乏可以有多种形式。
技术知识:
在面试中,资深候选人往往能迅速回答任何关于测试的问题。他们可以为你画一个 “测试金字塔或任何你想要的数字”,告诉你世界上所有的测试设计技术,并写出完美的测试报告。但是,当你问及基本技术方面的问题(如HTTP或网络如何工作),候选人很快就会失去信心。
你可以告诉我,不是每个项目都需要特定的知识。这倒是真的。但测试工程师应该知道(或至少知道)基本的技术知识。理想情况下,比谷歌搜索中的第一个链接更深入一点。
90%的现代系统以这种或那种方式与网络一起工作,发送消息或请求,并使用数据库或分布式存储。多层的抽象可以覆盖它–但总的来说–它的工作原理都是类似的。
编程和架构:
一些测试工程师仍然认为,学习编程是复杂和不必要的。让程序员来写代码吧!
另一部分是那些已经学会了一点代码,但只集中精力于UI测试的人。这些测试之外的世界似乎并不存在。
在测试工程师中,关于系统结构和它们如何工作的知识是一种稀缺的技能。所有这些都被认为是有经验的 "大胡子 "架构师的工作,或者只有有十几年经验的高级开发人员才能做。
但是,如果不知道系统的内部和相互之间是如何工作的,就很容易错过很多关键的错误。另一方面,缺乏技术知识将使我们很难在测试报告中描述这些问题。
对业务和产品的了解:
当然,这一切都取决于项目的情况。有一些项目,测试团队就像在工厂生产线上工作一样:开始构建,测试,然后传递给下一个环节(不问任何问题)。
测试工程师明显缺乏产品知识。很少有工程师与用户或客户支持一起工作。但是那些人可以提供关于应用中最危险的部分的有用信息,或者对可用性系统进行反馈。
甚至更少的测试和自动化工程师思考他们的工作如何影响业务。那些自动化测试是否为公司节省了资金?或者比人工测试更快地提供问题反馈?
测试工程师的个人发展:
关于个人发展,有两个重要的工程师群体存在。
“我为什么要学习编程(任何其他技能)?那会使我成为一个不太熟练的测试工程师!”
“据说我想学习,但我在等待一年后的反馈。我的经理或测试负责人会来告诉我需要学习什么。”
但这里有最关键的一点。只有你对个人的技能、知识和职业生涯的发展负责!你的经理只(或其他任何一个人)对你的工作负责。
你的经理(或互联网上的任何其他人)将无法为你创建一个技能地图。只有你知道自己的优势和劣势。只有你知道(或猜测)你在知识方面有哪些差距。只有你能了解如何获得这些知识并达到一个新的水平(并获得梦想的提升)。
你的上级只能调整你的计划并指出公司的资源投入情况:比如说参加会议或其他发展的预算。
如何改变这种状况
为你的职业发展准备一个计划。掌握什么技能,学习什么,以及如何在工作中使用这些技能。如果你能在公司获得知识和技能–那就很好! 如果不能–寻找另一个项目或公司。总有一个选择–它就在你的手中。
学习编程。我不是在谈论高级开发人员水平的技能。但是写脚本的能力可以从部署或配置中去除很多单调的工作。阅读和理解别人的代码,可以更好地了解系统的总体工作原理,以及哪些情况还没有被涉及到。
加深你对应用程序和系统架构的了解。从你现在正在测试的系统开始,分解它。拆解架构图。思考一个单独的组件如何和在哪里 "挂掉 "以及系统将如何反应。和架构师们聊一聊吧。
如果你正在编写脚本或自动化测试,总是问自己:谁将使用我的代码,他们如何使用我的代码(测试)?它写得够清楚吗?是否有详细的报告?一个新的工程师会有多容易理解这些代码?
接口自动化测试方向:Python+requests+pytest+yaml+alluer+Jenkins;
web自动化测试方向:Python+selenium4+pytest+POM+allure+Jenkins;
app自动化测试方向:Python+appium+POM+pytest+allure+Jenkins;
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
只有不甘平凡的心,才能点燃奋斗的火焰;只有拼搏坚持的力量,才能书写辉煌的篇章;在困境中挣扎,才能收获成长的果实。相信自己,勇敢追逐梦想,努力绽放耀眼光芒!
生命只有一次,不要将宝贵的时间浪费在后悔与犹豫上,勇敢追逐自己的梦想,超越困难与挑战,用汗水和努力铸就辉煌,让每一天都成为你奋斗的见证。
只有经历重重困难,才能看到光明的彼岸;只有追逐梦想,才能收获辉煌的未来;只有坚持不懈,才能成就非凡的自己。奋斗不止,胜利必将属于你!