提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:郑恭琳|2020-06-12 13:45:39.887|阅读 258 次
概述:测试影响分析意味着将测试重点放在每次迭代期间所做的更改上,并自动准确地测试需要测试的内容。利用此技术的团队可以通过即时反馈有关需要完成的工作来优化开发中的测试工作。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
测试影响分析意味着将测试重点放在每次迭代期间所做的更改上,并自动准确地测试需要测试的内容。利用此技术的团队可以通过即时反馈有关需要完成的工作来优化开发中的测试工作。
经过行业调查和报告的频繁确认,即使在实施了敏捷Agile、DevOps和持续集成/部署等现代开发流程之后,软件测试仍然是瓶颈。在某些情况下,软件团队的测试能力不足,并且不得不在开发周期的后期阶段处理bug和安全漏洞,这错误地假设这些新流程无法兑现其承诺。某些问题的一种解决方案是右移测试,该测试依赖于在生产环境中监视应用程序,但是它需要坚如磐石的基础架构才能在出现严重缺陷时回滚新的更改。
结果,组织仍然无法按时完成任务,质量和安全性也在遭受损失。但是有更好的方法!为了进行更明智的测试,组织正在使用一种称为“测试影响分析”的技术来准确了解要测试的内容。这种数据驱动的方法支持左右移位测试。
任何迭代过程中的测试都是在有限的循环时间内可以进行多少测试的折衷方案。在大多数项目中,不可能对每个迭代都进行完全回归。取而代之的是,执行一组有限的测试,而测试的内容正是基于最佳猜测。由于通常没有足够完整的新功能来进行测试,因此测试也被循环加载。最终的工作量与时间的关系图就像锯齿一样结束,如图1所示。在每个循环中,仅执行有限的一组测试,直到执行完整回归测试的最后一个循环为止。
图1:敏捷Agile过程导致测试活动“锯齿”。只有完整的回归周期才能进行“完整”测试。
不幸的是,没有一个项目能够以零错误和零安全漏洞到达最后一个周期。由于已修复并重新测试了错误,因此在此阶段发现缺陷会增加延迟。即使存在所有这些延迟,仍然存在许多错误,如下所示。
图2:集成和全面回归测试永远不会出错。后期缺陷会导致进度计划和成本超支。
这种情况导致采用了所谓的“右移测试”,即组织继续在部署阶段测试其应用程序。右移测试的目的是扩大和扩展测试工作,在部署阶段最适合测试,例如API监视,切换生产中的功能,从实际操作中获取反馈。
在重现现实的测试环境以及在测试中使用真实的数据和流量的困难导致团队不得不使用生产环境来监视和测试其应用程序。这样做有很多好处,例如,能够使用实时生产流量测试应用程序,从而支持容错和性能改进。一个常见的用例是所谓的canary版本,其中首先将软件的新版本发布给一小部分客户,然后在报告和修复错误时将其发布到越来越多的客户群中。例如,Roku这样做是为了更新其设备固件。
右移测试依赖于开发基础架构,该基础架构可以在发生严重缺陷时回滚发布。例如,金丝雀版本中存在严重的安全漏洞,这意味着回滚该版本,直到准备好新的更新版本为止,如您在此处的插图中所见:
图3:转移权利测试依赖于可靠的开发运营基础架构来在面对关键缺陷时回滚发布。
但是使用生产环境来监视和测试软件存在风险,当然,右移测试的目的绝不是在部署之前替换单元、API和UI测试实践!右移测试是一种补充实践,将连续测试的理念扩展到生产中。尽管如此,组织可以轻松地滥用该概念来证明在开发期间进行更少的单元和API测试是合理的。为了防止这种情况,我们需要在开发阶段进行测试,以使其更容易,更具生产力并生产质量更高的软件。
大多数软件尚未经过全面测试,而测试内容的决定基本上是基于开发人员对关键功能的最佳猜测。在SCRUM冲刺或其他过程的迭代过程中,很难确定要测试的内容,因为“测试所有内容”当然不是一种选择。由于时间很短,因此只能测试通过最新功能更新的软件部分,但是确切地知道受影响的代码通常是未知的。测试自动化会有所帮助,但是如果不确切了解要在哪里进行测试,则测试覆盖率是不够的。
这些缺点可以通过使用测试影响分析来克服,这是对测试覆盖率,代码更改和相关性的多变量分析,可准确指出需要测试的代码。此外,可以将这些确切的测试安排为自动执行。
测试影响分析在IDE中的开发人员级别上进行,收集有关哪些测试执行哪些代码的信息,并在开发人员更改代码时在开发人员的IDE中应用该信息,从而使开发人员能够轻松地识别和执行特定的测试,需要运行以验证更改后的代码不会破坏任何测试。同样,跟踪哪些受影响的测试已经运行,通过了哪些以及失败了,这使开发人员可以轻松地确定哪些测试仍然需要运行,或者哪些测试失败了并且需要解决。一旦所有测试运行并通过,开发人员就会知道提交代码并继续进行是安全的。
通过无缝集成到项目的构建系统(例如Maven或Gradle)中,测试影响分析可在CI/CD流程中进行,以获取有关更改的即时反馈。测试影响分析可确定自基线构建以来(即最近的夜间构建)更改了哪些代码,确定需要运行哪些测试以执行该代码,然后仅运行该测试的子集。通过此工作流程,团队可以设置仅基于最新代码更改运行测试的CI作业,从而将运行CI作业所需的时间从数小时缩短至数分钟。
测试影响分析具有以下主要优点:
为了大大减少开发中的测试瓶颈,并提高测试人员在每次迭代中投入的“锯齿”工作效率,开发团队可以从测试影响分析技术中受益。具有测试影响分析的测试自动化意味着将测试重点放在每次迭代期间所做的更改上,并自动准确地测试需要测试的内容。这些团队通过对需要完成的工作,哪些代码无法通过测试以及哪些其他代码受到新更改的影响的即时反馈,来优化其开发中的测试工作。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢