首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >谁是测试人员?

谁是测试人员?
EN

Software Engineering用户
提问于 2014-09-22 11:53:36
回答 4查看 607关注 0票数 2

我不太明白测试员的概念。我刚毕业,在加入职场之前,我想我应该和测试人员一起编程,并使用TDD,他们将编写测试,我将通过测试或类似的东西。然而,事实并非如此。显然,我所见过的人都不知道如何编码。他们中的一些人知道如何使用脚本语言的基础知识,但这几乎就是全部。

所以,从本质上讲,当我完成代码时,我会编写测试(单元、集成等)。然后把我的代码放进去。我告诉测试人员它是什么以及它所做的,然后测试它的功能,并批准或请求进一步讨论。我真的看不出这有什么用。我希望我能告诉他们我编码了什么,他们只会写测试。

我还见过一些优秀的软件开发人员是科技公司(谷歌、微软等)的测试人员。为什么这些开发人员想成为测试人员?他们的开发人员技能真的被使用了吗?如果是的话,怎么做?

很抱歉,我真的对这个测试者的概念感到困惑(是的,它不是在大学里教的)。我也读过Are programmers bad testers?这个问题,但是它提到程序员参与了手工测试。虽然我毫不怀疑测试人员很擅长测试一个项目,但我发现他们没有必要测试一些功能(即这个按钮向xyz端点提交一个post请求并发送这些值)。

EN

回答 4

Software Engineering用户

发布于 2014-09-22 12:52:42

“测试人员”一词适用于所有从事略有不同工作的各种职业。测试人员的共同点是他们

  • 试着破解你刚刚写好的漂亮代码。
  • 查找边缘情况和需求之间的意外交互
  • 提供自己的、独立的、不受影响的需求解释。
  • 注意系统的意外和/或不舒服的反应。

一些测试人员是:

  • 测试自动化工程师是测试人员之下的“程序员”。他们通常用各种语言编写脚本,以便在系统上执行自动化测试。通常,系统作为一个整体被测试为一个黑匣子,但是有时测试脚本更多的是在一个集成或单元测试级别上与一个白盒系统。
  • 测试工程师编写的“测试脚本”意味着手工执行,或者由自己或者手动测试人员执行。这些脚本应该基于以前报告的需求和/或问题。
  • 手动测试人员主要执行(手动)测试脚本,并作为一种强大的用户在系统中进行操作。

传统上,测试人员不需要编程知识,任何需要它的测试(例如单元测试或集成测试)都属于程序员的范围,只有当您不需要编程工具与被测试的系统交互时,测试人员才会出现。

有了测试自动化,测试人员可能会深入到代码中,但他们不太可能开始与程序员一起工作,因为这会过多地损害他们对需求的独立看法。这种独立的观点是重要的,因为它将带来毫无根据的假设和不明确或不明确的要求更早地被揭露。

票数 6
EN

Software Engineering用户

发布于 2014-09-22 12:57:34

我真的看不出这有什么用。我希望我能告诉他们我编码了什么,他们只会写测试。

那可不是你所生活的世界。此外,并不是所有的事情都可以在自动化测试中完成。此外,“手动测试人员”通常比开发人员拥有更好的领域知识。听他们的话,你可能会学到一些关于为什么你的系统有你要实现的需求的东西。

我还见过一些优秀的软件开发人员是科技公司(谷歌、微软等)的测试人员。为什么这些开发人员想成为测试人员?他们的开发人员技能真的被使用了吗?如果是的话,怎么做?

他们通常有“软件工程师在测试”或类似的职称。是的,他们的开发人员技能被用于编写测试,就像您在编写应用程序时一样。为大规模系统建立测试基础结构本身就会导致复杂的测试系统。

票数 3
EN

Software Engineering用户

发布于 2014-09-23 02:27:34

我认为这里的问题是,您混淆了特定的测试子集“单元测试”和被普遍接受为“测试”的大得多的测试集。

单元测试通常由编程团队自己完成。它可以是手动的,但通常使用自动化测试框架(如Junit )。

一般来说,测试团队并不关心单元测试,唯一的工作就是测试系统是否符合规范。他们不需要知道它是如何构建的,哪些语言框架是使用etc.etc的。以确定它是否有效。

除了单元测试之外,测试分为几类:

  • 烟雾测试--启动系统,看看它是否能持续运行一天。
  • 功能测试--程序是否按照规范的要求执行。
  • 集成测试--程序在更大的环境中与其他组件一起运行良好吗?
  • 非功能需求--程序是否满足规范中的任何NFR(响应时间、吞吐量、硬件要求、内存足迹等)
  • 用户接受测试--让真正的用户使用它,确认系统是可用的,并做业务发起人真正想做的事情。

几乎不可能在不引入bug的情况下编写代码。更糟糕的是,正确指定模块几乎是不可能的。

所以,除非你的名字是“比尔喜悦”,否则你将在编码时引入bug。即使您的代码精确地用于规范完成的模块,也可能是错误的。

我所认识的所有优秀程序员都相信程序中充满了未被发现的bug,并知道在那些心里知道他们有多小心,他们就会做错事。边缘情况可能是正确编码的噩梦(如果循环执行n次或n-1次)。接口规范可以是完整的和模棱两可的;您可以读取文档,但是您真的不知道调用API时会发生什么。

测试是软件开发过程的基础,如果50%的项目时间没有用于各种类型的测试,那么代码在部署后很快就会失败。失败可能是微不足道的,可能是令人尴尬的,也可能是灾难性的。

所以要学会爱你的测试员!当他们发现窃听器时要高兴,他们刚刚救了你的命!

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/256940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档