软件测试实际上是在专业项目上完成的吗?


25

我从事过多家公司的许多项目,因为我从事开发工作很长一段时间,而且还是承包商。

我估计只有不到20%的项目经过系统的测试。有条理的测试是指除临时无计划测试之外的所有测试。

我还估计,只有不到10%的项目得到了系统的,有条不紊的测试,他们有专门的测试人员作为团队的一部分,测试计划文档,开发人员在其中编写自动化测试,然后他们还跟踪测试范围并衡量结果。

两个问题

  1. 您对此问题的估计百分比是多少?
  2. 您在软件测试方面的专业经验是什么?

附加说明

由于有条不紊的测试问题可能会得到非常有偏见的答案(人们喜欢吹嘘自己要优于别人),我鼓励其他开发人员(那些没有受到有条理的测试的人)也提供他们的答案,因为否则,看起来测试就像是到处都可以完成...除了在您的公司。


很好的问题,感谢您抽出宝贵的时间重新制定!

@马克·特拉普:谢谢。我有点认为这是非常基本的,但我可能还要问更多(基于先前的问题)
Robert Koritnik 2010年

Answers:


8

我在职业生涯中的测试中看到的模式显示出与项目失败风险的强烈对应。大型项目比小型项目更有可能受到测试,关键任务应用程序比非营销网站更容易受到测试,在内部系统中,面向公众的项目不太可能受到测试。

那就是说,仍然有一些项目经过了过多的测试,而那些项目还没有经过足够的测试,但这只是少数。


我已对问题稍作编辑。您能否提供您的估算值?
罗伯特·科里特尼克

我参与的几乎所有项目(超过80%)都经过了系统的测试,但是后来我几乎排他地完成了公司任务关键型应用程序。
马丁·布朗

我在制药公司工作。我想说80%的应用程序都是由专业测试人员和开发人员测试的。这20%是低风险应用,例如iPad上的促销演示。但是即使有人对此进行了专案检查。
yoosiba 2011年

5

我们生产的所有产品均经过全面测试。如果我们内部的质量检查团队超负荷工作,我们将有一个离岸团队来测试项目。他们不如我们的内部团队好,但这是一个不同的话题。


我已对问题稍作编辑。您能否提供对发展专业市场的估计。因为您的项目受到审查。您的测试是否自动化?
罗伯特·科里特尼克

这个离岸团队是谁?你会给他们推荐吗?
马丁·布朗

大公司通常在其他国家(主要在亚洲)设有研发中心。离岸开发完成的地方。离岸开发的目的是降低开发成本(部分成本)。
Nipuna 2011年

2

我在过去15年中工作过的三家公司均具有自动运行的单元测试。

在其中的两家公司中,我力求介绍他们。


我稍微编辑了我的问题。您还能提供有关专业市场上软件测试的估计吗?
罗伯特·科里特尼克

@罗伯特:我还没有足够的工作机会来进行总体估计。据我所知,情况正在好转。但是后来,正是我在我告诉过的三个案例中,有两个推动了自动单元测试……
sbi 2010年

但是您确实要与其他公司的其他开发人员交谈,不是吗?
罗伯特·科里特尼克


2

是。

测试的数量与应用程序所需的可靠性以及程序员文化的成熟度成正比。

网站经常出现漏洞(断开的链接一个缺陷)。

电子游戏通常是越野车。

Windows(最终)是相当可靠的。

路由器非常可靠

医院监护仪“不要破”

请注意,故障的财务成本也与可靠性相关。


2
我强烈不同意您-您从未见过路由器出现故障吗?Xbox,Playstation和Wii游戏是否锁定?在Windows中是否曾经出现过蓝屏或“应用程序无响应”?
JBR威尔金森

@JBRWilkinson我认为您想念他的严重性修改器,以及可能使绝大多数PC游戏陷入困境,正如Paul所说,这些游戏经常是越野车。无论如何,该清单可能会有所改进,但这种观点是正确的:可靠性通常与与故障相关的财务损失相关。
杰伊·卡尔

1

在10年中,我从未从事过带有正式代码测试的项目。

在我目前的工作中,我们仅进行功能测试。

问题在于,管理层中没有人甚至不知道代码测试。测试部门甚至不了解代码测试,他们只是遵循高级规范并从行为/功能的角度验证我们是否遵守。

我们没有合格的软件主管来强迫我们进行良好的编码。结果是意大利面条代码,大量回归,错过了时间表等等。


谢谢您的诚实回答。您的估算值是多少(请检查我编辑过的问题)?
罗伯特·科里特尼克

我对意大利的估算不到正式代码测试的10%。也许几乎只有关键任务代码。
Wizard79 2010年

我曾在爱尔兰,英国,苏格兰和斯洛文尼亚工作,看来意大利似乎没有什么不同。
罗伯特·科里特尼克

1

我们是南亚的一家中型离岸公司。但是,我们总是做基于美国的项目,并直接与美国公司的要求一起工作。

我们对我们构建的每个应用程序进行系统的测试。也许,测试质量没有达到标准,但我们确实采用了它们。


这些测试是自动的还是手动的?我已对问题稍作编辑。您能否提供专业市场中软件测试的估计?
罗伯特·科里特尼克

我们的大多数测试都是手动完成的。
Shamim Hafiz 2010年

1

尽管我内心的纯粹主义者不愿接受这样的决定,那就是在决策中必须内置一些风险管理,以决定测试的严格程度或是否进行正式的测试。对于我怀疑占编程项目很大比例的内部应用程序,发布漏洞然后在发现漏洞后立即对其进行修补的成本有时可能会超过整个测试团队的成本。当然,这取决于应用程序和潜在的故障成本。

话虽如此,我认为风险管理计划不是缺乏正式测试的原因。我认为这更多是由于非技术经理不了解其提供的价值而只看到成本。


2
我听到你在说什么,但是很难证明。研究表明,漏洞被忽视的时间越长,其代价就成倍增加。向客户提供bug的代价是巨大的,并且如果没有适当的单元测试框架(存在这种“修补和修复”思路的可能情况),修补它们通常会导致新的bug。因此,可以证明,明智地使用测试工具和方法要比修补和修复便宜得多。
罗伯特·哈维

3
我对这种教条越来越持怀疑态度,尤其是它如何普遍应用。我敢肯定,有时候确实是这样,但是并非所有bug都是一样创建的,也不是所有应用程序都一样。我发现很难吞噬一个10人使用的内部应用程序中的错误,如果在单元测试期间发现该错误,则要比在补丁程序发布中发现的错误要昂贵得多。除非您忽略测试人员花在寻找错误上的时间的实际花费,否则它可能会成倍增加尴尬,但代价不会更高。
JohnFx 2010年

2
我还想知道这些统计信息是否更不适用于它们所创建的大型项目(例如,操作系统),并且不会转化为我们大多数人赖以生存的CRUD类型的应用程序。
JohnFx 2010年

我同意你们两个人的观点,并且都看过这两种情况。但是我似乎肯定是我在罗伯特描述的指数成本中所占的份额,特别是当软件中存在一个错误的时间如此之久,以至于如果修复该错误,其他功能实际上将开始崩溃。如果人们对问题的处理时间不够充沛,并且人们在漏洞中停留的时间足够长,那么1 + 1就不会是2。这是7。如果不是7,那么一切都会崩溃。

1

我的样本很小,无法从中推算出百分比,但是无论如何,这里都是这样。

其中一家是无晶圆厂的芯片+固件公司,它进行了狂热的测试。在数十个装置上进行24/7自动测试,每个装置并行测试数十个单元。致力于开发测试软件的软件团队。专门用于构建测试平台的硬件团队。针对数十家竞争对手的兼容性测试。哎呀,他们甚至购买了价值数百万美元的芯片测试仪安装程序,以开发和调试芯片出厂时运行的一些测试。

另一个是银行。这是一个完全不同的环境:没有产品发布,但是有很多内部软件可以保持连续运行。这些人测试了他们所做的每个更改中的cr * p。他们对DEV / QA / PROD环境进行了非常严格的分离,自动回归测试,最终用户在发布到生产环境之前签署的强制性QA测试等。

是的,人们确实进行了系统的测试。但是正如您所知,我从未在为典型计算机用户提供典型GUI软件的地方工作过。


1

我目前为一家生产无线医疗设备的小型创业公司编写嵌入式固件。我们需要进行严格的测试,并拥有一个完全独立的质量部门,由直接向首席执行官报告的人员领导。我从来没有像以前那样由单独的测试人员对代码进行过彻底的测试(唯一的比较是大约15年前我在卫星电视系统上工作的时间。)

我们的测试结果已提交给FDA(到目前为止,我们已经获得了FDA的两次批准-每次提交大约500页长)。我们的开发和测试方法均需接受定期审核。

因此,不仅大型公司要进行大量的正式测试。

注意-在过去25多年的合同编程/咨询工作中,我还为几乎没有进行正式测试的许多公司工作。他们中的大多数已经不在了。


我也在一家医疗设备公司工作,对GMP(良好制造规范,FDA称其为受控设计/测试过程的代言)的介绍对我来说是大开眼界的。它使我成为了一名更好的工程师(不幸的是,还是docbook专家)
Bill Gribble 2012年

0

我几乎每家公司都进行过系统的测试。我目前的公司有一些基本的单元样式测试,但这还不够。因此,我们遇到了一些质量问题。我强烈建议对除您以外的任何人使用的任何项目进行独立的彻底测试。花的钱是值得的。不起作用的应用程序不会被使用。这既适用于内部,也适用于外部。


我已对问题稍作编辑。您能否提供专业市场中软件测试的估计?
罗伯特·科里特尼克

@Robert:我不理解您的问题“软件测试的评估”。您问我对多少家公司进行测试的看法吗?根据我亲眼所见,我的估计可能是90%或更高。测试是专业发展的常见部分。
布莱恩·奥克利

0

在大约八家公司的职业生涯的最后二十年中,我从未从事过没有测试的项目。每个公司的测试量都不同,但是我曾经从事过的每个专业开发项目都进行了正式测试。这同样适用于中小型公司(“小”表示少于10名员工,“中型”表示不超过2,000名员工)。

有些公司没有太多的自动化测试,有些公司没有太多的手动测试,但是至少有一家。


0

这取决于客户的需求。在合同情况下,可能会有验收测试。内部通常是经过很少测试的打testing者。消费类产品通常在频繁的功能中被高度覆盖,但边缘却很粗糙。


0

简短答案:是

长答案:

  1. 我对第一个类别没有很好的估计(可能是零距离,但有多少?),但我的经验实际上与您的第二个估计相符。很难给出有意义的百分比,因为测试的数量和类型取决于正在开发的应用程序的类型,可用的时间范围,开发人员的技能以及项目的运行方式。实际上,对于开发人员而言,最重要的障碍是验收测试,因为这是计费目的的重要里程碑。但这也是发生意外情况(更多需求)的时间,并且开发人员可能会承受压力,除了进行故障排除和克服所需的时间以外,还必须及时且可行地进行任何临时测试(在此阶段)意想不到的。

  2. 我已经完成了多个项目,这些项目具有上述不同的因素:

    • 没有正式的单元测试,只有集成测试,主要是临时测试

    • 非常正式的形式,从单元测试到详细的测试计划,涉及专用的QA资源,自动化测试(由测试人员使用自己的工具集进行)和代码覆盖率报告。但是这些对于开发人员和管理人员而言并不总是有意义的

在个人层面上,我试图保持对我的选择的理解,以编写适合于我所使用的技术的适当测试,并自行决定行使这些选择。基本上,那些对我的工作有意义且有益的事情,而不是大量地计算数字。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.