提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:郑恭琳|2020-12-24 16:46:07.110|阅读 304 次
概述:Parasoft Jtest的自动单元测试创建技术消除了单元测试的障碍,使单元测试的日常工作自动化,包括创建、隔离、模拟和维护。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
Parasoft Jtest的自动单元测试创建技术消除了单元测试的障碍,使单元测试的日常工作自动化,包括创建、隔离、模拟和维护。
大多数开发团队都会同意,尽管他们不喜欢它,但是单元测试实际上是非常有价值的。尽管有许多有助于手动测试创建的工具,但是在将业务逻辑添加到测试之前,创建和维护单元测试仍然需要大量手动,耗时且经常令人费解的工作。这样,尽管有进行大量单元测试的意图,但是开发团队通常会执行所需的最小数量的单元测试,或者完全跳过它。
最近的一次客户调查表明,在某种程度上可以预料到,测试创建、模拟/隔离和维护是阻碍单元测试成功的关键问题。图1显示了该调查的结果,显示了开发人员正在使用Java进行单元测试时确定的首要问题。
图1:调查结果显示了单元测试引起的关键关注领域(百分比)。
为了解决这些主要问题,我们可以转向自动化软件测试。在此文中,我将向您展示如何使用Parasoft Jtest自动化测试执行和数据收集,以及自动创建单元测试,以节省测试创建时的时间和精力。Parasoft Jtest的自动单元测试创建技术可以建立测试框架,实例化对象,并为适当的对象和被测方法使用的方法调用配置模拟。它创建了常规的JUnit,完成了所有平凡的工作,因此开发人员可以专注于将人类智能和逻辑应用于他们的测试。
单元测试是迭代的,在敏捷过程中,单元测试具有改善项目成果的良好记录。当然,经过充分证明的是,在生命周期的早期进行测试是以后检测并消除昂贵且耗时的系统级错误的最佳方法。更具体地说,以下是单元测试的一些主要优点:
为敏捷过程提供敏捷性:敏捷过程依赖于高效,可重复的自动化测试套件,以确保每次迭代都不会陷入“大爆炸”测试周期。敏捷和DevOps的成功很大程度上取决于开发团队创建可以高效运行的测试套件以及测试尽可能多的功能。
更高的质量和安全性:软件团队了解,测试是确保软件满足要求的唯一方法,但是团队经常无法进行足够的测试,或者在开发生命周期中进行得太晚。特别是安全性,需要在最早的阶段就内置到应用程序中,因此必须尽早进行安全性测试。
从长远来看降低成本:在已发布软件中发现的软件错误修复成本可能是开发期间的1000倍。在单元测试的早期编码阶段发现的错误比后来发现的错误便宜得多。在测试自动化和单元测试基础架构上的短期投资可带来更好的产品质量、安全性和按时交付的回报。
单元测试的好处以及为什么开发人员仍然避免使用它
不幸的是,尽管希望获得更好的结果,但是尽管有这些好处,开发人员仍在努力进行单元测试。上述调查结果也说明了这些斗争,其中包括:
创建测试是额外的工作,而且通常很乏味:可以理解,单元测试是额外的工作,通常被视为编程的最不期望的方面。在尝试维护项目目标和截止日期的同时创建一个全面的测试套件是开发团队面临的两个相互竞争的压力。
测试维护非常昂贵:就像代码一样,单元测试也需要维护。任何代码更改都可能导致相关测试的更改。不仅如此,由于代码库修改而失败的测试似乎无关紧要,从而导致测试套件不稳定。额外的维护在许多开发人员的心中创造了“双重工作”。
模拟和隔离被测单元既困难又耗时:隔离被测单元至关重要,但要模拟依赖关系,这可能是一个耗时的过程。
如果软件开发团队想获得彻底的单元测试的好处,那么他们必须通过创建、隔离和维护测试来解决这些问题,而解决方案就是自动化。Parasoft Jtest的自动单元测试创建工具提供了测试创建和维护所需的帮助,同时在开发人员的IDE中工作并利用现有的测试和模拟框架。
创建单元测试很繁琐,并且将注意力从项目中更有趣的部分转移开来。代码本身是重复的,通常需要与被测代码一样多的工作,最重要的是,单元测试代码本身需要像任何代码一样进行修复和调试。幸运的是,单元测试非常适合自动化,而来自单元测试工具的自动指导可以极大地简化测试的创建,减少调试和修复的数量,并收集结果和指标以提供项目分析。
例如,许多IDE提供了针对JUnit的单元测试创建向导,但没有提供“内容”来完成该过程。断言需要手动定义,并且如果使用模拟框架,则需要大量的手动编码。相反,Parasoft Jtest在开发人员的IDE中提供了上下文相关的实时帮助。通过自动创建单元测试,当您利用单元测试工具执行以下操作时,快速简单地完成了简单骨架单元测试中缺少的“内容”:
创建测试框架,实例化对象,并配置适当的模拟对象和方法
执行测试自动化执行的运行时分析,以突出显示在测试过程中更改的对象值,并建议对这些值进行验证的断言。
标识应该模拟的方法调用,以便更好地隔离测试中的代码
检测已创建但未在测试完成后释放的系统资源,从而可能创建不稳定的测试环境
收集代码覆盖率和其他指标
为了解决这个问题,我们来看一个例子。在这里,用IDE调用Parasoft Jtest的单元测试助手来创建参数化测试:
该工具将创建以下单元测试代码,此时开发人员将根据需要完成参数:
为了为不同的参数值创建测试用例,Parasoft Jtest的单元测试助手提供了一个测试用例向导:
降低模拟复杂度
单元测试意味着隔离被测对象,如果存在许多依赖性,则需要大量工作。即使使用Mockito或PowerMock这样的模拟框架,仍然需要大量的手动编码。使用自动测试助手工具,您可以检测依赖关系并自动填写框架所需的详细信息。
该工具本身会分析被测代码,自动检测依赖关系,并向开发人员提出建议。
例如,在这里我们正在执行IWorkspaceClass类的以下单元测试:
在运行时会检测到依赖关系,该工具建议模拟发现的依赖关系:
使用该工具选择“模拟”将通过单元测试生成必要的模拟代码。生成此代码后,可以对其进行自定义以表示所需的正确逻辑。依赖关系的自动检测和随后的模拟代码创建极大地减少了模拟对象所需的手动编码,并且可能容易出错。
测试套件的维护与创建测试所需的许多工作重叠,例如创建新测试,修改测试以适合基础逻辑、模拟依赖关系、测试执行和验证。在测试维护期间从Parasoft Jtest的单元测试助手获得帮助与在创建过程中一样有价值,因为它可以提供有关在测试执行期间收集的运行时分析结果的更新反馈。例如,在运行时检测到被测对象中的新依赖关系,该工具会提示开发人员如何处理它。
在此阶段同样重要的是,确保断言仍然有效。Parasoft Jtest单元测试助手提供了一些建议,这些建议可以检测代码中的更改并更新断言以反映新的业务逻辑。
已经进行单元测试的Java开发人员可能会使用JUnit,并可能使用其项目的断言框架,例如Mockito或PowerMock。测试自动化工具需要利用这些现有工具,因为替换单元测试中的现有投资将消除任何成本和时间收益。Parasoft Jtest的单元测试助手与这些现有工具无缝集成,这一点至关重要。
单元测试具有明显的好处,尽管大多数开发团队都意识到了这一点,但是许多人却因创建和维护测试而受阻。使用Parasoft Jtest的自动化单元测试技术将帮助用户消除这些障碍,使单元测试的平凡方面自动化,包括创建,隔离,模拟和维护。为了加快采用速度,Parasoft Jtest利用了开发团队在测试和模拟框架上的现有投资,并在为产品带来高品质的同时,还给了开发人员更多的时间。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.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@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢