一个软件测试领域的新人经常会问的一个问题是……测试人员需要编写代码吗??
在回答这个问题之前,我们需要对软件测试的各种角色有一个全面的了解。
软件质量保证(QA)通常分为两类:
-
质量分析师(Quality Analyst):QA负责测试验证系统的功能和完整性。QA仅在开发阶段之后验证软件。QA的角色不如开发人员那样技术性强,可能不需要编码。
-
测试中的软件设计工程师(SDET,Software Design Engineer in Test):另一方面,SDET了解产品的内部工作原理。他们了解数据库概念、编程语言等,并参与产品设计、数据设计和用户界面设计。SDET需要在开发阶段工作,并需要掌握编码知识。因此,SDET的角色更具挑战性,它结合了开发人员和测试人员的工作。自动化测试人员(使用QTP、Selenium等工具)也可以归类为SDET。
因此,根据测试人员的角色,可以确定测试人员是否需要掌握编码知识吗?让我们来回答一些与之相关的问题。
在本文中,我们将了解以下内容:
- 成为一名优秀的测试人员需要具备哪些技能组合?
- 测试人员应该了解什么?
- 成为一名优秀的测试人员需要多少编码知识?
优秀测试人员的特质
软件测试方法因软件产品的需求和规格而不同,一名优秀的QA或软件测试人员在完成产品测试过程中扮演着重要角色。
优秀测试人员的特质包括:
- 良好的业务领域知识
- 良好的逻辑思维能力
- 良好的编程技能知识
测试人员需要多少编码知识
编写代码和调试是开发人员的工作。
那么问题就来了,为什么测试人员需要了解编码知识?
让我们来看看为什么了解编码对测试人员变得必要的几个原因:
软件测试基本上包括两种方法:手动测试和自动化测试。在高级别上,测试可以分为白盒测试、黑盒测试或灰盒测试。不同的测试技术需要测试人员具备不同的技能组合。
- 在进行黑盒测试时,测试人员不需要了解编码知识。测试人员只需通过输入数据来测试软件,然后检查输出结果是否满足预期。
- 白盒测试或代码驱动测试则需要了解代码知识。了解各种编程概念,如C、C#、C++、RDBMS概念等,可能会有所帮助。
-
当测试人员进行自动化测试或白盒测试时,他们需要良好的编码知识。这是因为自动化测试涉及语句覆盖率、代码覆盖率、圈复杂度等概念,所有这些都需要良好的编程技能和数据库知识。
-
SQL(结构化查询语言)- 有时测试需要进行数据库验证。因此,测试人员需要掌握SQL命令的基本知识,如“select”、“create”、“update”等。
- SQL注入 - “SQL注入”是通过插入不必要的命令来进行数据库黑客攻击的一种技术。良好的JavaScript和SQL命令知识有助于测试人员发现此类软件安全威胁。
- 敏捷测试 - 在敏捷测试中,整个团队都对软件的质量负责。在整个敏捷过程中,测试人员将与一个或多个程序员合作编写测试。因此,为了创建可自动化的测试,测试人员了解代码是至关重要的。
对软件QA分析师的一些重要建议
- 掌握手动测试、JavaScript等脚本语言的知识将为你的测试技能增添光彩。
- 作为一名测试人员,你应该建立对Java、VBScript等编程语言的基础知识。这不是必须的,但它是必要的。了解SQL概念、DBMS概念对你来说是一种很好的实践。
除了这些之外,还有一些一般性的建议可以帮助软件QA分析师:
- 沟通技巧
- 分析思维
- 资质
因此,在软件测试中了解编码对QA分析师或测试人员的整个职业生涯都有很大帮助。
总结
软件QA通常分为两类:
- QA测试员:不需要编码知识
- SDET(软件开发测试工程师):需要编码知识
优秀测试员的特质包括:
- 良好的领域知识
- 良好的逻辑思维能力
- 良好的编程技能知识
当测试人员从事自动化测试时,他们需要良好的编码知识。