首页 > 其他分享 >做软件测试需要懂代码吗?

做软件测试需要懂代码吗?

时间:2024-06-03 11:35:48浏览次数:15  
标签:需要 开发人员 代码 测试人员 测试 自动化 软件测试

随着大数据、机器学习时代的到来,不少人有了“测试不需要懂代码,那我就试试”的想法。这就引发了一系列疑问:不懂代码可以做测试吗?测试人员到底需不需要懂代码?测试人员需要写代码吗?

其实,在软件测试初级阶段,测试人员确实不需要懂代码。但如果想要追求月薪20k、30k,接口、自动化等是避免不了的,这就必然涉及到了代码层面。

正如《mob编程指南》的作者Llewellyn Falco回应“QA工程师应该学习编码吗”这个问题时,曾说:“每个人都应该知道如何编写代码,这就像阅读和写作。你可能没有写过书,但你应该知道如何阅读和写作。”

 

一、软件测试的Q&A

作为测试人员,我们可以一起考虑几个问题。

问题一:哪些测试需要懂代码?

软件测试人员会使用各种测试技术来执行此操作,包括手动测试、自动测试等。不同的测试策略要求不同的测试技术,我列举了一部分:

 

 

问题二:软件测试的门槛高吗?

近年来,经济下行加速功能测试转向自动化测试,软件测试的求职门槛确确实在提高。

研发流行敏捷开发,运维部署逐渐自动化,版本高速迭代。这意味着过去“点点点”的手动测试已经跟不上互联网行业产品的更新迭代速度,已经逐渐被自动化测试技术接管。原本手动测试需要10个人完成的工作量,现在的自动化测试团队只需要不到5个人就能完成。

当前各企业正在想尽办法建设自动化测试体系,实现手动测试到自动化测试的升级,通过提高测试流程的有效性和效率来消除测试瓶颈。因此,企业对测试人员的要求已经基本上过渡到了自动化测试要求。除了要懂功能测试,还需要懂代码、接口自动化、UI自动化等。

在求职门槛大大提高的情况下,测试人员仅凭借手动测试的技能,很难找到工作,也很难晋升。

 

问题三:不懂代码在实际工作中会出问题吗?

有一定的代码知识可以帮助测试人员更好地理解软件的内部逻辑,进而设计更有效的测试用例,但并非所有测试工作都需要深入理解代码。如果测试人员看不懂代码,实际工作会出现哪些问题?

(1)当测试人员无法准确解析代码时,报告的Bug描述可能含糊不清,导致开发人员难以复现问题或误解问题的严重性。即便是较为表面的错误,也可能被测试人员误判为关键缺陷。

(2)如果测试人员对开发知识掌握不足,可能会将有争议的问题错误地标记为Bug,或者提出的改进建议难以实施,且无法提供切实可行的解决方案。、

(3)在发现Bug时,若测试人员无法精确定位其根源,可能会导致与开发团队沟通成本增加。频繁的交流不仅浪费时间,过多的沟通也可能引发其他问题。因此,测试人员对开发知识的掌握显得尤为重要。

(4)缺乏开发知识可能会使测试人员在讨论Bug时处于劣势,面对开发人员的解释,如果测试人员不了解背后的技术细节,可能无法有效回应。

(5)在自动化测试、性能测试和项目管理等领域,对软件开发有深入的理解是必不可少的。设计高效的自动化测试框架、性能测试案例,或管理开发团队,都需要对软件开发有一定的掌握。

 

问题四:软件测试人员需要掌握什么技能?

除了沟通技巧、分析思维、团队协作等必备的软技能,软件测试人员又需要具备哪些硬技能:

(1)全面了解软件开发生命周期 (SDLC)
随着软件项目的复杂性不断增加,测试人员必须精通从规划和设计到部署和维护的每个阶段。这些知识使我们能够预测潜在问题,设计有效的测试策略,并确保测试活动与总体项目目标保持一致。

(2)熟练掌握自动化测试工具
自动化继续改变测试领域的游戏规则,熟练掌握自动化测试工具是我们测试人员的一项关键技能。掌握 Selenium、Appium、Jenkins、禅道ZTF等工具可让测试人员自动执行重复任务、增加测试覆盖率并提高效率。随着越来越多的组织采用 DevOps 和持续集成/持续部署 (CI/CD) 实践,能够将自动化测试集成到 CI/CD 管道中的测试人员将在加速产品发布并保持质量标准方面发挥重要作用。

(3)测试设计和执行方面的专业知识
测试设计和执行方面的专业知识仍然是软件测试人员的一项基本技能。在 2024 年,制定全面的测试计划、编写清晰简洁的测试用例并有效执行测试的能力比以往任何时候都更加重要。测试人员必须确保他们的测试是稳健的、可扩展的,并且能够有效地识别缺陷。那些擅长设计和执行模拟真实场景的测试的人将为开发可靠且用户友好的软件产品做出重大贡献。

(4)编程和脚本语言知识

熟悉Java、Python、PHP等语言使测试人员能够编写自动化测试、了解代码库并与开发人员更有效地协作。随着开发人员和测试人员之间的界限越来越模糊,具有编程技能的人可以参与单元测试、审查代码以查找潜在问题,甚至修复错误,从而提高软件的整体质量。

 

 

二、软件测试人员懂代码的好处

1. 可视化和测试

测试人员可以更好地可视化和理解应用程序背后的代码,从而帮助测试人员识别更多有用的测试用例。例如,软件测试人员知道某个页面元素正在使用 if/then 逻辑,他们能够确保测试该算法的两条路径。对于循环也是如此,众所周知,循环的终点通常是发生错误的地方,因此通过了解循环构造的逻辑,软件测试人员可以更准确地查看边界条件。

如今,随着越来越多的开发团队执行单元测试,白盒测试的实践变得越来越不重要;但测试人员仍然可以通过对代码的理解来了解应用程序的更细微的方面,并创建测试来提高测试覆盖率。

 

2. 自动化测试

懂代码的测试人员更容易创建自动化测试脚本。这是持续集成 (CI) 的必需品,甚至 UI、API 和性能测试都可以自动化。这有助于加快测试周期,并使测试人员能够专注于探索性测试以发现新问题。

使用 Selenium IDE等软件测试工具可以轻松执行自动化测试。这类软件测试工具所提供的GUI录制回放功能,能够达到提高测试用例复用率的目的。但这些好处是有限,它们无法自动执行某些测试的步骤,并且在应用程序更新时很容易崩溃,如Selenium默认不提供测试报告和错误恢复机制。 

3. 与开发人员更好地沟通

懂代码的测试人员能够与开发人员更好地沟通,因为他们能够理解开发人员的思维方式和代码逻辑。这有助于他们更精确地报告Bug,深入讨论问题的解决方案,并减少误解和沟通障碍。同时,懂代码的测试人员能够更快地理解新功能或变更,设计出有效的测试用例,提高测试效率。

 

三、软件测试人员共勉

自动化测试是趋势,只会做手动测试的人未来会逐渐失去竞争力。测试专家陈霁在《测试人员路在何方》中也提到了“做测试必须会写代码。如果不懂编程,从事测试工作是非常吃亏的。”具体内容,我就不多讲了,大家有兴趣可以看一下这个视频。

最后,我们测试人员共勉:
大多数人都会觉得你那么努力或做这些稀奇古怪的事情干什么,他们都觉得你像个“异类”。请耐住寂寞往前走,然后你会在路上碰到跟你志同道合的这些“异类”,当你们在一起一握手,你会发觉,原来我终于走到了别人走不到的路。

 

 

*参考资料:Brian Borg: Should QA Testers Be Able to Read Code?

标签:需要,开发人员,代码,测试人员,测试,自动化,软件测试
From: https://www.cnblogs.com/chenqiAaron/p/18228441

相关文章

  • vue 代码块
    一、代码块vue2.0安装依赖$npminstallvue-highlightjshighlight.js--save配置导入main.jsimportVueHighlightJSfrom'vue-highlightjs';import'highlight.js/styles/default.css';//选择你想要的样式//使用插件Vue.use(VueHighlightJS);具体使用<t......
  • 低代码平台的双刃剑,优势与不足之处
    在数字化转型的大潮中,低代码开发平台(Low-Code)以其独特的优势迅速成为企业IT战略的一部分。作为一名资深的IT技术员,我对低代码平台的发展趋势和行业应用有着深刻的理解。本文将探讨低代码平台的优势与不足之处,以期为读者提供一个全面的视角。gitee下载:yduibuilder:快速开发UI......
  • 【代码+详解】算法题 : 菲波那契数列
    ❗❗❗必看:下列题我全部都使用Java语言写的,并且均可以提交成功,获得Accepted结果的.如果代码和详解看了之后,对答案有任何疑问,都可以在评论区提出来,我都会一个一个回答.❗❗❗感谢大家的支持,如果喜欢我的博客,关注点赞收藏评论一波,非常感谢!!!文章目录......
  • 个体工商户核定征收需要年报吗企业缺成本无票收入几个知识点
    个体工商户在采用核定征收方式的情况下,仍需要进行年度报告(年报),并且需要遵守国家和地方的税务规定。以下是一些详细的解释和应对策略:一、个体工商户年报1.年报要求年度报告:所有个体工商户都必须每年提交年度报告,报告内容通常包括营业状况、人员变动等。提交方式:可以通过......
  • .Net 中间件 - 新开源代码生成器 -ReZero
    ReZeroAPReZero是一款.NET中间件:全网唯一界面操作就能生成API, 可以集成到任何.NET6+API项目,无破坏性,也可让非.NET用户使用exe文件ReZero生成器功能简介1、表文档导出:支持目录导航2、在线创建表、在线建库3、一键导入现有表4、模版在线调试 5、自研模版引擎比Razo......
  • JINGWHALE ART 年度流行色,用代码创造色彩斑斓的数字世界!
    JINGWHALEART年度流行色(智能色彩生产官方平台)是由JINGWHALE每年发布的年度流行色,于每年的1月1日发布次年的流行色。JINGWHALEART年度流行色依据中国古典文化思想(如中国传统正五色、金木水火土、十二生肖等文化思想)、以及年度流行指数,确定年度流行色。基于年度流行......
  • python 执行js 代码 一些库
    在Python中执行JavaScript代码,有几种常见的方法和库可以使用:PyExecJS:这是一个直接在Python中执行JavaScript代码的库。它支持多个JavaScript运行时(如Node.js、PhantomJS、JScript等)。importexecjsjs_code="""functionhello(){return'Hello,World......
  • 数据结构-单链表操作及代码实现(C语言)
    (一)单链表与线性表支持随机访问的特点相比,单链表的特点是适合插入与删除。结构体定义typedefintElementType;//数据元素类型定义typedefstructLNode//单链表结构体定义{ElementTypedata;//数据域structLNode*next;//存储下一个结点的地址}LNode,*L......
  • Java中的依赖注入:提高代码的可维护性和可测试性
            依赖注入(DI)是一种软件设计模式,旨在实现控制反转(IoC),通过这种方式,对象的依赖项(通常是服务)不由对象本身创建,而是由外部容器动态提供。在Java中,依赖注入是实现松耦合和增强代码可维护性的有效手段。本文将探讨Java中的依赖注入概念、其优势以及如何利用现有的框架......
  • 带交互的卡尔曼滤滤波|一维滤波|源代码
    背景一维卡尔曼滤波的MATLAB例程,​背景为温度估计。代码介绍运行程序后,可以自己输入温度真实值:以20℃为例,得到如下的估计值​:滤波前的值和滤波后的值分别于期望值(真实值)作差,可以得到​误差​曲线图:​误差统计特性源代码程序源码下载:https://download.csdn.net/......