我是一名正在寻找 QA 职位的开发人员。我知道开发人员和测试人员的思维方式根本不同。除了在 QA 环境中的实践经验之外,还有其他方法可以确定我是否具备成为熟练测试人员所需的条件吗?
10 回答
确定您是否是优秀测试人员的最佳方法:
1)你有条不紊。您是否可以每次都重复相同的步骤而略有不同,以执行不同的逻辑路径。
2)你是不是非常顽固。
这两个都很好,两个都很棒。
扩展 GWLlosa 的出色响应。
1耐心
你必须拥有几乎无限的耐心,因为你将要做的大部分事情都令人难以置信地令人沮丧(因为它被破坏了)并且也令人难以置信的无聊。假设应用程序具有选项和状态,您将一遍又一遍地执行大致相同的事件序列。
2彻底
关于开发人员的一件事是,他们通常(希望)在签入之前测试自己的东西。在大多数情况下,这意味着应用程序可能在(或)正常情况下工作。但是,这通常是在开发人员的机器上,他们通常一遍又一遍地使用相同的测试用例。你的工作是测试各种看似完全正常的测试用例,然后测试所有边缘用例,然后测试所有不可接受的用例。然后,如果应用程序有不同的状态,您可能需要再次检查所有这些看似无关的差异(IE 更改了计算器上的配色方案,现在“+”按钮不起作用)。
3有组织
你必须能够记下你的每一个动作。没有什么比有人报告错误但不知道它是如何发生的或如何重现它更令人沮丧的了。可重现的问题更容易解决 1000 倍,因为它们可以被追踪。复杂的应用程序,具有许多交织的状态和屏幕,使得修复晦涩的错误非常困难,除非程序员首先知道如何生成错误。
4创造力/同理心
程序员通常是超级用户。一般的计算机,特别是它们的程序。他们知道文件功能一般都在文件菜单下,按钮只需要按一次,然后你就等着了。用户不知道这些事情。假设用户是愚蠢的不是你的工作,因为他们不是,但他们没有接受过你所接受的培训。所以你需要能够理解他们在想什么,然后尽可能快地点击一个按钮 100 次。在许多应用程序中,这将产生 100 个结果,这通常是不好的。
我知道一个应用程序,其中的指令是按“Shift-Enter”,我按 L-Shift 而不是 R-Shift。它爆炸了。普通用户会用一只手打字,所以他们 99.9% 会使用 L-Shift,任何人都没有想到要绑定另一个 shift。这就是为什么你也需要创造力。您需要能够让自己适应几个不同的角色,并问问自己他们将如何使用该软件。然后过度使用该用例的每个部分。
最终,这些只是所需的一些技能。但是大家也看到了,这些都是好技能,所以修炼也不是坏事。
干杯。
您可以尝试测试一个开源项目:它们处于开发的所有阶段(成熟与否),并且还应该有规范。这将使您有机会与真正的开发人员、测试人员、错误跟踪系统等一起从事真正的项目。
我同意其他人的说法,“喜欢破坏事物”。
背景的多样性对测试团队也有好处。以前的开发人员经常帮助团队实现自动化,以前的客户支持人员可能是用户使用可用 UI 权利的激烈捍卫者,等等。
Bret Pettichord的文章Testers and Developers Think Different对比了对每个角色都有帮助的心态和特征。例如,它详细阐述了以下主题:
- 优秀的测试人员
- 经验
- 观察到了什么
- 怀疑论者
- 优秀的开发者
- 理论
- 它是如何设计的
- 信徒
以下是Cem Kaner的测试计算机软件中关于对测试人员有用的一些属性和技能的注释:
- 诚信,对质量的承诺
- 经验参考框架与理论。测试作为微型实验。
- 教育
- 一些编程背景。有用的,不是必需的。
- 使用多台计算机和许多软件包的经验
- 组合学知识。全面评估程序的某些方面需要多少测试用例?
- 出色的口头和书面交流。
- 善于猜错。
- 快速的抽象能力。
- 擅长拼图。
- 非常注重效率。
- 能够兼顾许多任务。
- 善于调度
- 细心的观察者,耐心,关注细节。
- 角色扮演的想象力。
- 能够读写规范。
我认为 devinb 对一些倾向于成为优秀测试人员的技能/素质给出了很好的答案。我要补充的另一个是:
强沟通
测试人员经常在利益相关者的非技术需求和编码人员的技术实现细节之间进行转换。能够双向翻译非常方便。同样,测试人员生成的主要产品是测试报告(包括错误和更广泛的,通常是书面和口头的)。能够有效地传达我们报告的(多个)消费者需要听到的内容是有效的关键。这包括清晰和有帮助/不带偏见的语气,以促进合作关系。
确定方法
查看您的问题“还有其他方法可以确定我是否具备成为熟练测试人员所需的条件吗?” 以测试的心态,我注意到我们的大多数答案都解决了您问题的“成为熟练的测试人员需要什么”部分。我还想花一分钟时间讨论“确定方法”。
- 与您尊敬的测试人员(或您尊敬的公司)进行的信息访谈。这可以让您提出更具体的问题 - 并进行后续跟进 - 并针对您感兴趣的特定上下文给出答案。(上面提到的大部分 devinb 都普遍适用,但是测试商业网络应用程序与嵌入式、生命关键软件与视频游戏——所有这些都会给你不同的答案。
- 测试开源软件。我总是很惊讶很少有人试图闯入测试这样做。它将帮助您更多地了解测试是什么,并构建您可以链接到的公共错误报告组合。选择您喜欢的任何积极开发中的操作系统项目,然后潜入!
- 学习测试那里有很棒的书籍、博客和课程。不同的测试员会为您指出不同的测试员,但在我看来,Cem Kaner 和 James Bach 的著作(书籍或博客)是一个很好的开始。在课程作业方面,软件测试协会的年度会员可以免费访问黑盒软件测试系列,这是一套由 Kaner 及其同事设计的高质量、讲师指导的课程。
祝你好运!
在成为一名优秀的软件测试员之前,你真的不知道自己是否会成为一名优秀的软件测试员。没有一种态度、一种背景、一种技能可以定义一个 QAer。
这与成为一名优秀的开发人员没有什么不同。你可以想象你会成为一个好人,因为你已经尝试了很多开发者的东西。但在你完成之前,你永远不会知道。
问问自己为什么要转换角色?是什么吸引您担任 QA 角色?
如果你认为这会更容易,或者你认为你的工作时间会更短,或者你认为你会得到更多的报酬,或者你认为每个人都会爱你——那么 QA 角色可能不适合你。
如果您因为作为开发人员不太成功而正在考虑转向 QA,那么 QA 角色可能不适合您。
或者,它可能一切都解决了,你永远不知道!我认识来自各种不同背景的 QA 人员。
正如建议的那样,让自己参与一个可以担任该角色的项目(无偿或有偿)。然后,只有到那时,你才会知道你是否喜欢它,是否擅长它。
祝你好运!
在我看来,除了注重细节等通常的东西之外,拥有脚本知识和对业务领域的深刻理解可以让你成为一名出色的软件测试人员,特别是如果该软件是针对狭窄领域中训练有素的专业人士的。一些示例可能是监控患者心率的程序或与战区中的自主移动机器人通信的程序等。受过训练的医疗专业人员的用例可能与没有训练的医疗专业人员不同。
沟通是关键。知道如何编写有效的错误报告是必不可少的。
明确的标题
重现问题的最少、可量化的步骤
图片
预期和观察到的结果(我喜欢没有得到预期结果的时候!!!!)
这是一篇很棒的文章:
http://itscommonsensestupid.blogspot.com/2008/07/tips-to-write-good-bug-report.html
你觉得测试是关键还是必须要做的事情?您目前是否为自己的代码编写测试?当您编写测试时,您是否难以考虑新的测试?当你查看别人的代码时,你能看到那里的错误吗?您是否能够确定一组测试(有或没有完全覆盖)是否真正测试了所有可能的路径和行为?您是否愿意比您已经知道的更多地了解测试?你是否愿意被那些仅仅容忍测试而不接受它的人暗中鄙视甚至害怕?你最喜欢什么颜色:绿色还是红色?(提示:正确答案是绿色!)
简单的事情是“消极思考”
永远打破一切