测试人员对软件的看法与开发人员的看法有何不同?

软件测试 QA 开发人员 面试 文化 资质
2022-01-13 13:52:16

正如有些开发人员的生产力和创造力比其他开发人员高出几个数量级一样,也有同样出色的测试人员。对于什么是优秀的测试人员,我们都有自己的看法。我相信一个促成因素是视角问题,即优秀的测试人员以不同于开发人员的方式处理软件。

这并不是说一个人不能同时拥有两种观点,或者说一个人优于另一个人。

我问是因为有时测试人员会使用我从未考虑过的用例发现错误,我想知道这个想法是从哪里来的。或者一个测试人员设计了一种测试方法,它是非正统的、聪明的,并且非常适合手头的工作,我再次想知道是什么导致他们到达那里。

开发人员的观点与测试人员的观点有何不同?我相信这个问题与面试有关,也许与继续教育和组织文化有关。

4个回答

我认为测试人员和开发人员之间的根本区别在于综合和分析之间的区别。开发人员合成代码。他构建事物,将碎片组合在一起,并找出有趣且独特的方式将这些不同的小片段组合在一起,从而做出奇妙而令人惊奇的事情。

测试人员都是关于分析的。一旦所有的东西都放在一起,测试者喜欢把它拆开,一块一块的,这一次寻找那些隐藏在那些奇怪和奇怪的交互中的小角落、边缘和不协调,这些奇怪和奇怪的交互来自那些新的和令人惊奇的方式把碎片放在一起。

测试人员和开发人员都喜欢弄清楚事情是如何工作的,但不同之处在于,开发人员专注于将事物放在一起以使它们以某种方式工作,而测试人员则专注于将事物拆开以找出所有这些意想不到的后果。

“我相信一个促成因素是视角问题,即优秀的测试人员以不同于开发人员的方式处理软件。”

我同意!我认为这是允许测试人员增加重要价值的主要因素之一。

这是我不久前写的东西:

根据我的经验,开发人员往往是乐观的人,而测试人员往往更悲观。

  • 开发人员是创造者,对创造新事物和解决难题有着天生的乐观态度。
  • 测试人员是故障发现者,具有必要的怀疑和怀疑。
  • 如果开发人员是阴,测试人员是阳。

我相信这是一件好事,一种制衡的张力,可以制造更好的软件。

但它确实导致了一些有趣的对比......

乐观的开发者 悲观测试者
杯子是半满的 玻璃是需要的两倍大
此代码尚未经过测试。不知道有没有bug 此代码尚未经过测试。不知道它是否真的有效
我们完成了 90% 我们不知道什么时候完成,如果有的话
我们将重构代码以使其更好 他们正在扔掉工作代码并用未知数量替换它
我只改了一行代码 必须重新测试整个系统
代码就是设计 没有设计
我们稍后会在有时间的时候修复这些错误 我们从来没有足够的时间来修复错误
此版本功能完整 特征存在;有些完全坏了
只要有足够的时间,一切皆有可能 一切都有缺陷,只要有足够的时间,我可以证明这一点
当然会起作用 它可能有效,但可能不会
最后一个错误修复,我们明天可以发货 修复这个错误可能会导致另外两个
停止寻找错误,否则我们永远不会完成 停止制造错误,这样我就可以找到它们
无需进行更多测试 让我们再运行几个测试来确定
TEAM里没有我 没有U我们不能拼出BUGS
这是一个“未记录的功能” 这是一个错误
我喜欢建造东西 我喜欢破坏东西
当然,我们可以在生产环境中使用这个组件的 Beta 版本 我们应该等到2.1版本
愿意打赌没有更多的错误 愿意接受这个赌注
让我们现在把这些改动放进去,因为我明天就要开始我的假期了 不要吧
这在生产中永远不会发生 从来都不是很长的时间
它适用于我的机器 也许您的机器是唯一可以工作的机器?
太阳出来了,明天... 雨滴不停地落在我的头上……
我是现实主义者 我是现实主义者

这是一个幻灯片版本,以备不时之需: http ://strazzere.blogspot.com/2010/05/slideshow-optimistic-developers.html

尽管我完全同意 Tristaan​​Ogre 的回答,但我确实还有一点要补充。

开发人员经常(即使他们没有意识到)对他们的代码有情感上的依恋。他们花费了数小时/数天/数周,有时甚至数年时间将它们放在一起。他们已经接受了某人想要的东西,并且(通常)将这些要求制作成一个有效的、通常是优雅的创作。正如 Tristaan​​Ogre 所指出的,他们具有创造者的心态。

另一方面,测试人员没有思维定势,他们有很多。我不知道任何只戴一顶帽子的测试人员在盐分上的重量。相反,他们戴着多顶帽子。他们分析需求寻找漏洞。他们(有时)将其视为另一个开发人员,想知道是否有更有效的方法来开发它。

我是一名测试人员,以下是我在测试时使用的主要思维方式:

  • 订购软件的客户希望它如何工作?
  • 开发人员如何构建它以供使用(想想轮胎摆动)?
  • 最终用户将如何使用它?
  • 高级用户将如何使用它?
  • 心怀不满的员工将如何使用它?
  • 心怀不满的最终用户将如何使用它?
  • 不熟悉产品的人将如何使用它?
  • 想要破坏它的人将如何使用它?
  • 其他应用程序将如何使用它?

测试人员不同的其他方式之一是,开发人员同样关心构建软件并教其他人如何使用它。尽管测试人员喜欢向开发人员学习,但他们也喜欢向软件学习。有好几次,我向开发人员展示了他们的软件可以做到的事情,他们从未期望它能够做到,与任何想要的东西完全不同,但仍然有用。测试人员利用他们学到的知识并思考更多的东西来测试。

我喜欢谈论在我的测试过程中,我如何看到闪亮的东西(看起来不寻常的东西)。一旦我完成了我的会话,我就会去看看那个闪亮的东西,希望它是一根银线,可以引导我穿过迷宫找到宝藏(一只虫子)。

我不想在这里写小说,但我认为这可以基本了解开发人员的心态和测试人员的心态有何不同。

测试人员不仅不同于开发人员,也不同于软件组织中的其他所有人,因为他们是唯一的主要任务是弄清楚产品如何失败,而不是如何让产品成功。

开发人员会在空闲时间试图弄清楚如何将代码重构为更简洁或以优雅的方式组织对象层次结构以使产品运行良好,但测试人员将考虑新的方法来应对威胁性的竞争条件或新的可能无法正确处理的意外输出,可能导致产品失败(至少有一点)。没有其他人如此专注于避免失败,或者在软件倾向于破坏的所有方面都如此专家。