测试员就是知道事情会有所不同的人。
这是Jerry Weinberg对于世界级测试员的描述,提醒我们测试与批判性思维与想象力有关。不相信任何的表面价值,而是维持一个调查的心态。
测试是为了评估一个产品而质疑它。
这个关于软件测试活动的定义来自于James Bach, 包括测试的多个重要方面之一:发现和传递信息。软件测试会揭露未知。
如果质量对某人有价值,那么测试就是发现任何威胁这个价值的服务。为了提供这种服务,测试员需要做许多不同的事情,例如问一些好的问题,在需求上注释,用一种使产品产生有用信息的方法与产品交互。
我对于一个世界级测试员的定义是:可以快速发现与产品高度相关信息,最大程度使用资源,并且拥有项目相关人员的尊重。这个人是可以信赖的。
那么,成为一个世界级的测试员,需要拥有什么技能和心态呢?使你避免被描述为“点鼠标的猴子”,有哪些方面需要做好呢?
技术熟练
在管理的更高层次,软件测试通常只被视为一种技术学科。他们认为你做为一个测试员的效力取决于你开发测试代码的能力。但软件测试还有许多方面是不能自动化。人类非常擅长思考和适应基于上下文新出现的信息。因为软件是一个不停改变功能与状态的系统,有时候做探索来的更有效率。自动化是与之相反的,因为它牵涉到脚本的过程。
然而,自动化可以释放测试人员的时间做更多的探索发现。任何重复性或枯燥性高的工作都适合自动化。自动化在这些领域非常有价值。
开发强大和可维护的自动化是困难的。我相信一个平庸的软件开发人员是不能够达到这样一个工作的要求。如果你想做有用的自动化,你最好除了其他测试技巧之外,还拥有优秀的开发技巧。
以下我认为可以帮助你的更多的技能和心态:
调查性的好奇心
如果你认为测试是必要之恶--阻拦您做出很cool东西的事情--你可能会错过很重要的问题。世界级的测试员不断地探索他们产品的可能性和限制。同时对他们产品的能力保持一个健康的怀疑态度。
如果你想给自己一个花哨的头衔,把自己想象为“强迫性庸医”,被不可抑制的探寻真相的冲动所引导。世界级的测试意味着遵循弄清事情真相的冲动,直到有足够的经验价值才停止。当你看到一个测试人员回避未经证实的假设,这是他们认真对待工作的标志。
观察的技巧
如果你想观察某样东西,你首先需要注意它。观察是注意重要或者有意义细节的能力。测试时,你需要能够观察到不寻常的状况。
在你观察的领域,谁会是一个好的老师呢?跟一个五岁的小孩一起走,看看什么会抓住他的注意:人行道上的小裂纹,花园里美丽的花,在墙上慢慢爬的蜗牛。小孩是天生的观察家,他们对任何发生在周围的事情都感兴趣。他们的频道是敞开的,他们快乐的观察。
把你的频道打开,模仿孩子般的行为。训练自己的注意力,更近的看,慢慢地,观察。
沟通技巧
你会碰到不得不保护你的发现的情况。你必须说服人们采取行动,所以你要解释为什么你的发现是相关的。世界级的测试员联系描述他们的测试。他们知道他们的解释必须超越“我测试过了,相信我”。如果你能够描述您的测试,那么人们会相信你是知道自己在做什么的那种人。有一个方法,就是使用启发式测试战略模型来描述你在做的东西。或者,你可以提出你自己的模型。
当你将你的故事时,记得沟通是双行道。世界级的测试人员跟进他们提出问题的答案,他们对从谈话中得到的新信息很警醒。
写作技巧和bug宣传
最丰富的沟通发生在你能够面对面交谈的时候。你观察面部表情,你可以对混淆和误解立马澄清。写作则不行。这个通道很窄,更容易引起误会。澄清需要时间和精力。
Bug宣传通常伴随着写作技巧。你描述问题准确和可理解的能力影响正确的bug得到fix的可能性。不是每个报告的bug都会被fix,但那些应该被fix的最好不要因为贫乏的措辞而被忽略。
一个bug报告是一个有说服力的文档需要影响正确的人去行动。把不相关的信息从bug报告中删除,也别向小报头条一样在读者眼前尖叫。
你可能想要保存你过去的bug报告的记录。哪一个产生了混淆?你可以写得不一样么?措辞的修改是不是会更容易理解?
领域知识
作为一个测试员,你不只是比较规格说明与实现。还有许多不同的指标,例如:用户体验,与同类产品的一致性,或者你的产品的历史,你可以用来识别问题。领域知识也是你可以开发的一个指标。与客户交谈。与市场人员交谈,花一天做客户支持。你对于你的生意来说什么最重要知道的越多,你可以做更好的判断。
学习的愿望
你是一个知识工作者。知识不是静态的,尤其对于技术领域。不断地学习是为了变得更好。人类与软件交互的情况是一个软件与人交互的情况。理解双方如何工作是非常有好处的。我推荐探索社会科学(认知心理学、社会互动理论等)以及增加你的技术教育。
我认为,每个想做的真正好的测试员会从参加优秀的BBST(Black Box Software Testing)课程中受益。然后是RST(Rapid Software Testing)课程。。。。
交际技巧
测试员经常抱怨他们的工作以及如何可怕的其他人都让我热血沸腾。自我受难是有毒的。有时候你必须放下。如果你不能做到,你就会被人觉得牢骚满腹。如果人们周五晚上喝啤酒,你没有被邀请,想像一下人们跟你合作的意愿吧。
幽默
幽默可以帮助维持你的理智。作为一个测试员,你经常生活在压力的环境中,微笑和大笑减少了压力荷尔蒙的危害。他帮助你专注于你所做的事情:测试。
练习
首先,你需要练习你的技巧。如果你不练习,你不能达到熟练。当你练习的时候,观察自己,找到需要提高的领域,深思熟虑和自我反省你的行动。
结论
成为一个世界级的测试员的目标不意味着一个目的地,而是到达新的领域的持续旅行。这个探索从无止境,使人愉快,并且使软件测试如此有意义!
快乐的测试吧!
原文:
http://www.ebaytechblog.com/2013/01/31/becoming-a-world-class-tester/
相关推荐
程序员和测试员通常都不宜作可用性测试员。 安装/卸载测试:对软件的全部、部分或升级安装/卸载处理过程的测试。 恢复测试:测试一个系统从如下灾难中能否很好地恢复,如遇到系统崩溃、硬件损坏或其他灾难性问题...
总之,世纪前线网络质量测试工具以其全面的测试功能,成为个人用户和企业网络管理员的得力助手。无论是在家办公还是娱乐,它都能帮助确保网络连接的优质体验,让用户在网络世界中畅通无阻。只需运行压缩包中的"世纪...
- **并发测试**:trap能够设置多个并发用户线程,模拟真实世界中的多用户同时访问,从而测试系统的并发处理能力。 - **负载模式**:提供不同的负载模式,如恒定负载、逐步增加负载、随机负载等,以适应不同测试...
一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存储结构。 顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储...
Apache JMeter是一款强大的开源性能测试工具,主要用于评估...总的来说,Apache JMeter是一款强大的、灵活的性能测试工具,对于软件开发者、测试人员以及系统管理员来说,是评估和优化应用程序性能的不可或缺的工具。
### ADAS研发与测试的模拟仿真技术 #### 一、汽车智能化模拟仿真技术的背景 在当前汽车产业快速发展的背景下,高级驾驶辅助系统(ADAS)和自动驾驶技术的研发日益成为业界关注的重点。为了确保这些新技术的安全性和...
这些测试车在城市、高速路等各种实际道路状况下进行测试,确保自动驾驶汽车可以在复杂的现实世界中安全运行。测试过程中,英伟达与多家汽车制造商合作,例如宝马、本田和大众等,这些合作伙伴在教导英伟达如何为汽车...
目前,虽然国内大部分自动驾驶产品还处于2级或以下,但随着技术的发展,更高级别的自动驾驶汽车即将进入市场,网络安全测试将成为确保其安全运行的关键环节。 仿真测试与实际路试的结合,能够有效减少实际道路测试...
总结,HammerDB-3.3-Win是数据库管理员和开发者的得力助手,它能提供全面、深度的压力测试,助力数据库性能的优化,提升整个IT系统的效率和可靠性。无论是商业数据库还是开源数据库,都可以借助HammerDB进行细致的...
这些测试不仅适用于个人用户,也适用于企业网络管理员,帮助他们更好地管理和优化网络资源。值得注意的是,无线网络的速度受到多种因素的影响,包括但不限于硬件配置、软件设置以及外部环境条件等。因此,在进行测试...
【HSPM内审员培训教材】主要涵盖了与国际公认的质量和环保标准——QC080000 IECQ HSPM相关的知识。QC080000标准是针对电子电气产品...同时,通过实施这一标准,企业还可以展示其致力于成为世界级企业和正确行事的决心。
这些功能使得Navicat高级版成为数据库管理员和开发者的得力工具,能够提高他们的工作效率,简化数据库管理工作,同时也能帮助他们更好地理解和优化数据库性能。 综上所述,Navicat高级版凭借其全面的数据库支持和...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,用于存储和管理数据。在“mysql高级配置和管理”这个主题中,我们将深入探讨MySQL的高级特性和管理...深入理解和掌握这些内容,将使你成为一位出色的MySQL管理员。
10. **持续集成与自动化测试**:介绍Jenkins、Travis CI等工具,结合Python编写持续集成脚本,实现自动化测试。 11. **Docker与Kubernetes**:理解容器化技术,学习使用Python与Docker API交互,以及Kubernetes的...
由于JUnit是由这两位世界级软件大师开发的,因此在设计和实现上采用了多种设计模式,非常值得深入研究。 #### 2. JUnit体系架构 JUnit的设计采用了一种称为“从零开始应用设计模式”的方法。这是一种逐步构建系统...
Predoo 是一个专门针对深度学习操作员的模糊测试框架,旨在帮助检测并减少模型的精度误差。模糊测试,又称Fuzzing,是一种软件测试技术,通过生成随机或半随机的数据输入来探测程序中的错误、漏洞或者不稳定之处。在...
在IT领域,Linux系统分析与高级编程技术是专业开发者和系统管理员的重要技能。Linux作为一款开源的操作系统,其内核的可定制性和丰富的工具库使其成为服务器、嵌入式设备和开发环境的首选。本资料集主要针对那些希望...
在元宇宙世界中,人机互动的具体应用包括:生成式对抗性网络(GAN)智能画笔、AI 配音、2D 快 3D 或由 AI 代替人类测试员对元宇宙世界进行安全、Bug 等漏洞检测等。 新一轮互联网变革带来的巨大冲击,主要表现在两...