提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|行业资讯|编辑:郑恭琳|2021-02-03 15:40:03.487|阅读 132 次
概述:在软件开发人员抱怨单元测试的众多原因中,处理嘈杂的测试套件是最大的原因之一。而且,某个软件存在的时间越长,它的噪音就越大。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
在软件开发人员抱怨单元测试的众多原因中,处理嘈杂的测试套件是最大的原因之一。而且,某个软件存在的时间越长,它的噪音就越大。
为了明确起见,“噪音”是指不断失败的测试,但是无论如何您都知道(认为)还可以,所以就顺其自然。或有时会失败且有时会起作用的测试,但没有人曾费心找出或修复它们。然后,由于代码已更改并且需要更新测试,因此某些测试确实失败了。所有这些噪音只是为了引起我们的注意而尖叫,但要注意的是,噪音越大,我们对它所做的任何有意义的事情就越不可能。
但猜猜怎么了?那些“失败但可以通过”的测试中的某个地方是您希望知道的一些实际问题。认为它就像尝试使用拼写检查器一样。如果您不坚持下去,将会得到您不关心的所有东西,例如特殊的行业用语,名称等,这些都不是真正的拼写问题。但是,隐藏在混乱中的某个地方却是您实际上犯下的令人尴尬的错误-您想要从那里出来的愚蠢的拼写错误的单词。当然,全球存在大量错误的拼写错误-但是与您的软件不同,那里并没有很多内在的风险,只是有些尴尬。
但是,单元测试套件通常处于相同状态。我们习惯于看到和忽略很多嘈杂的结果,不幸的是隐藏了我们需要知道和理解的真实结果。在许多组织中,要解决此问题,有人会不时安排一次冲刺以清理测试套件,时间间隔从几个月到几年。花费大量时间使套件尽可能人性化,但不可避免地问题很快就会回来,而且比您预期的要快。这会形成一个负面的反馈循环——没有人希望清理测试,因为他们认为下次会再次变得嘈杂。
答案是采用一种更实用的方法-从一开始就消除乏味,无用的清理冲刺,并避免使用嘈杂的测试套件。
为此,重要的是要了解单元测试失败时的含义。它归结为三个原因,并提供了简单的修复程序:
代码已损坏。因此,请修复代码。(理想情况下,这是干净的测试套件告诉您的内容。)
代码已正确更改,现在测试已中断。因此,请修复测试以匹配新代码。(如果您的代码正在更改,则可以预期会发生这种情况。在处理代码时,有充分的理由进行测试。)
测试是错误的,代码很好。因此,请修复测试。(或者删除它。但是关键是–不要忽略测试。)
尽量减少嘈杂的测试套件
现在。您可能在想–如果我的大量测试用例适合该第三类呢?这有什么帮助?因此,让我们分解一下。
产生噪声的原因通常归结为一些基本问题:不良测试,脆弱测试或不良主张。不良测试是指无法正常工作的测试。他们正在进行比他们应有的测试更多的东西,或者他们悬挂的数据不一致或可能因外部条件而发生变化。
为了将噪音降到最低,请确保对于每一个给您带来问题的测试(或者更好的是所有测试),您都能很好地回答以下两个简单问题:
测试通过意味着什么?
测试失败意味着什么?
如果对于任何测试,您对这两个问题都没有合理的答案,则需要改进。
易碎测试是那些容易打破的测试。同样,这通常是懒惰断言的征兆-仅检查事物(因为可以对其进行检查)并不意味着应该对其进行检查。每个断言应具有与要测试的代码满足的要求有关的真实含义。常见的罪魁祸首包括对日期/时间敏感的断言,操作系统依赖性,文件名/路径依赖性,第三方软件安装,合作伙伴API等。请确保您仅断言为进行良好测试所需的最低要求,并确保测试所需的一切都是源代码控制和构建系统的一部分。
其他错误的断言要么是持续处于故障状态,要么您不介意放开(“噢,别无所求,不要担心”),或者处于不断变化的状态(“以前很好,昨天失败了,但是今天很好!”)如果代码不断变化,可以在短时间内获得不断变化的结果,但是从长远来看,这是不可接受的。您需要了解为什么测试结果一直在变化,或者肯定为什么您认为可以失败并仍然可以发布。对单元测试(包括断言)进行同行评审将大大有助于永久解决此问题。(同行评审的另一个好处是?如果您处于合规环境中,测试是强制性监督的一部分,那么生存起来就容易得多。)
评估损坏的测试确实是进行大多数清理工作的好地方。我想请您认真检查失败了几个月甚至几年的测试。问问自己,他们是否真的在增值。记住,您还是会忽略结果,所以说实话它们有什么用?删除您忽略的测试将使您可以将精力集中在重要的测试上,并实际上提高了总体质量。
因此,它变得相当简单(尽管可能需要花费最初的时间)。要进行清理,只需遵循以下最佳实践:
定期运行测试,以确保它们不会过时——使用代码进行测试。
删除始终失败的测试,或对其进行修复。
删除不断翻转状态(通过/失败)或拧紧测试的测试。
同行评审单元测试。
当然,不要忘记使用自动化来完成繁琐的工作,从而使您花在编写测试上的时间更有效率,从而使您可以创建噪音较小的测试。
利用自动化软件测试的优势,可以减少单元测试的工作量。如果您可以让自动化完成简单繁琐的部分(计算机擅长的部分),那么您就可以腾出时间来做需要实际的人类智慧(您擅长的事情)的事情。例如,让自动化创建您的xUnit测试用例的第一个工作通过(做起来非常繁琐的简单代码)。如果让工具自动生成吸气剂/装甲剂测试方法,则可以节省大量时间,可用于其他更有趣的事情。
当我们对测试自动化变得更加复杂时,工具可以提供更多的帮助,进行单元测试中一些棘手的部分,例如创建和配置存根和模拟。您利用自动化的机会越多,单元测试所花费的时间就越少,也将减少很多乏味。如果您使用的是Java,请查看集成在Parasoft Jtest中的新的单元测试助手。它可以做所有这些事情,甚至更多,这使得单元测试不仅更加容易,而且更加令人愉悦。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
通过提供强大的3D CAD数据访问工具并适用于桌面、移动和Web的高级环境3D可视化发动机,HOOPS在提升造船设计和制造流程的效率方面发挥了重要作用。
HOOPS Luminate在汽车行业中的应用具有广泛的潜力和深远的影响。它通过提供高效的3D可视化、虚拟装配与拆解、性能分析、客户定制等功能,帮助汽车制造商在设计、生产和销售过程中提升效率、降低成本并提高产品质量。
在不断发展的软件开发世界中,使工具和框架与最新的平台版本保持同步至关重要,欢迎查阅~
全球航运业对国际贸易至关重要,全球 90% 以上的商品通过海运运输。准确监控和控制这些集装箱的移动对于维持高效的供应链至关重要。手动输入集装箱号码是这一程序的关键部分,它带来了相当大的挑战,例如人为错误和效率低下。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢