当前位置: 首页 > 工具软件 > JTest > 使用案例 >

如何使用Parasoft Jtest提高Java测试投资回报率

米承嗣
2023-12-01

在当今的数字经济中,企业必须更快地向市场提供软件,以跟上消费者的需求。为了在不牺牲质量和安全性的情况下实现这一目标,组织必须能够彻底,快速地有效地测试软件代码更改。但是,实现这种彻底的测试可能会成为瓶颈,给软件团队带来压力和风险,延迟交付,并对业务产生直接影响。

软件项目延迟的最大因素之一是在开发过程后期发现的错误,这是因为业务对开发团队施加压力以维护计划,对测试和产品质量产生直接的副作用。为了帮助解决这个问题,开发团队利用单元测试和静态代码分析来揭示周期中的缺陷; 然而,这些做法伴随着时间和成本的缺点,可能导致延迟实现质量。

为了解决交付延迟并帮助团队更加可靠地实现质量和安全性,企业可以利用Parasoft Jtest提高Java开发测试的效率。无论是进行新代码开发还是维护遗留应用程序,Parasoft Jtest都可以生成,扩充,克隆和改变单元测试,同时还可以优化这些测试的执行,从而大大改善与单元测试相关的时间和成本。“方”的好处?一套有意义的可维护单元测试。

此外,Parasoft Jtest可以扫描源文件,以提高开发过程中的应用程序安全性和质量。总的来说,这有助于通过在软件开发过程的早期捕获缺陷来加速交付并提高软件质量。

增加单元测试投资回报率:单元测试创​​建

为了说明如何在单元测试创​​建阶段提高ROI,让我们假设一家主要的金融机构正在实施云迁移策略,并开发新的Java应用程序。开发团队由20名开发人员组成,平均每个开发人员花费100,000美元,因此每年的总开发成本为200万美元。新的应用程序将每季度发布一次,因此每个版本的开发成本为500,000美元。根据我们的研究,普通开发团队花了30%的时间手动编写单元测试,这表明,对于给定的版本,编写单元测试会使业务成本约为15万美元。

(1/4)($ 200万)(。30)= $ 150,000

(季度发布)(每年开发成本)(花费写入单位测试时间的百分比)=成本编写单元测试

使用Parasoft Jtest,用户已经报告写入单元测试可以在一半的时间内完成。除了消除与单元测试相关的许多耗时的手动任务之外,Jtest还通过使用AI在编写代码时自动生成单元测试来增加代码覆盖率。因此,不是花费30%的开发时间来编写单元测试,而是只花费15%,将更多时间集中在测试的业务逻辑部分上。

(1/4)($ 200万)(。30)(。50)= $ 75,000

(季度发布)(每年开发人员成本)(花费时间写入单位测试的百分比)(使用Jtest减少百分比时间)=成本编写单元使用Jtest进行测试

这使得编写单元测试的成本从150,000美元降至75,000美元,每次发布可节省75,000美元,每年可节省300,000美元。

$ 150,000 - $ 75,000 = $ 75,000

单元测试的原始成本 - 单元测试成本与Jtest = Jtest的成本节省

(75,000美元)(4)= 300,000美元

(节省成本)(每年的发布数量)= Jtest每年的总节省量

降低开发成本有助于为企业带来盈利。除了节省成本外,还节省了宝贵的时间。如果公司使用2周的冲刺进行开发(包括10个工作日),则将30%或3天分配给单元测试。对于给定的版本(3个月),总共有6个冲刺(例如:5个用于开发,1个用于最终测试)。使用这些数字,发布的15天用于团队的单元测试。

(5)(10)(。30)= 15天

(开发冲刺的数量)(冲刺中的天数)(花费写入单位测试的时间百分比)=发布时间的单位测试天数

Jtest将此时间缩短为每个sprint的一半到1.5天的单元测试,或者7.5天的发布时间用于团队的单元测试。

(5)(10)(。30)(。50)= 7.5天

(开发冲刺的数量)(Sprint中的天数)(花费写入单位测试的时间百分比)(使用Jtest减少百分比时间)=使用Jtest对发布进行单位测试的天数

如果您在时间紧迫的情况下击败竞争对手进入市场,那么将业务保存7.5天非常有价值。

15 - 7.5 = 7.5天

原始时间单位测试 - 使用Jtest的时间单位测试=使用Jtest节省时间

值得注意的是,在这个例子中,保守的30用于手动编写单元测试的时间,但通常这个数字要高得多,根据组织的单元测试实践高达50%。使用Parasoft Jtest,这些组织将节省更多时间和成本。

增加单元测试ROI:单元测试执行

现在让我们说同一个组织正在构建他们的新应用程序,当他们这样做时,他们正在生成越来越多的单元测试,从单独运行的孤立(隔离)单元测试到社交(集成级)单元测试运行时间要长得多。他们的完整单元测试套件执行时间增长到2小时,并且他们的整体开发构建时间受到影响,因为软件开发团队需要等待2个小时才能获得有关其代码更改的反馈。该组织遵循敏捷方法,因此他们每天多次构建以向其软件团队提供频繁的反馈,但由于2小时的单元测试执行时间,他们每天只能执行3次构建,相当于整个单元的6小时每天测试执行时间,

为了加强发布周期,团队可以使用Parasoft Jtest优化单元测试执行。Jtest减少了使用支持AI的测试自动化执行单元测试所需的时间,执行优化基于已更改的代码的单元测试集,而不是运行全套测试。在签入代码之前以及CI构建期间,此优化发生在开发人员的IDE中,而完整的测试套件将继续每晚执行。通过优化运行哪些测试,整体构建时间大大缩短,并为软件团队提供更快的反馈。组织每天可以获得更多的构建,从而优化了团队在当天活动期间的工作效率,从而缩短了交付时间。在利用Jtest的测试技术时,可以看到节省时间和成本。

增加静态代码分析ROI:自动扫描

让我们继续在这个场景中使用相同的组织,当他们正在测试时,他们发现了几个晚期周期缺陷。使用卡内基梅隆大学软件工程研究所的“撰写有效的软件安全保障工作流程”中的每缺陷成本度量标准,发现和修复早期周期成本平均1小时的缺陷,而不是找到的那些在周期较晚,往往花费7倍以上,7小时。根据10万美元的平均工资,早期发现和修复缺陷的成本约为48美元,而寻找和修复后期缺陷的成本约为336美元。该公司确定了20个晚期周期缺陷,总计6,720美元和140个开发时间(约18个工作日)需要解决。通过这些数据,可以清楚地看到后期周期缺陷对发布的时间和成本的影响。

($ 48)(7)(20)= $ 6,720

(每小时开发人员成本)(查找和修复延迟周期缺陷的小时数)(晚期周期缺陷数)=总缺陷修复成本

[(7)(20)] / 8 = ~18个工作日

[(查找和修复延迟周期缺陷的小时数)(周期性缺陷数量)] /(典型工作日的小时数)=总缺陷修复时间

为了减少出现在后期循环中的缺陷数量,Parasoft Jtest使团队能够进行自动静态代码分析和安全测试,提供1000多条规则,用于在开发时(早期循环)识别代码中的潜在漏洞和问题。如果Jtest保守地检测到25%的晚期周期缺陷,导致5个早期周期缺陷并且留下15个晚期周期,则需要花费5,280美元和110个开发小时(~14个工作日)才能找到并修复早期和晚期循环缺陷。这样可以将发布的缺陷修复时间和成本降低大约25%。

(48美元)(1)(5)= 240美元

(每小时开发人员成本)(查找和修复早期周期缺陷的小时数)(早期周期缺陷数)=早期周期缺陷修复成本

($ 48)(7)(15)= $ 5,040

(每小时开发人员成本)(查找和修复延迟周期缺陷的小时数)(周期末期缺陷数)=周期末期缺陷修复成本

240美元+ 5,040美元= 5,280美元

早期补救费用+晚期补救费用= Jtest的总缺陷补救费用

($ 6,720 - $ 5,040)/ $ 6,720 =约25%使用Jtest节省成本

(原始修复成本 - 具有Jtest的修复成本)/原始修复成本=使用Jtest节省成本的百分比

[(1)(5)] / 8 = ~1天

(查找和修复早期周期缺陷的小时数)(早期周期缺陷数)/(典型工作日中的小时数)=早期周期缺陷修复时间

[(7)(15)] / 8 = ~13天

(查找和修复延迟周期缺陷的小时数)(周期末期缺陷数)/(典型工作日中的小时数)=周期末期缺陷修复时间

1 + 13 = 14天

早期修复时间+晚期修复时间=总缺陷修复时间

(18 - 14)/ 18 =〜使用Jtest节省22%的时间

(原始修复时间 - 具有Jtest的修复时间)/原始修复时间=使用Jtest节省的时间百分比

为了进一步改变问题的识别,Jtest使用户能够在IDE中进行“即时”或连续分析,同时进行开发。这允许开发人员在引入缺陷时正在积极使用代码时修复问题。这进一步减少了与缺陷修复相关的时间和成本,并大大提高了质量。

结论

Parasoft Jtest是提供高质量服务的关键推动因素。通过更好的单元测试和自动静态代码分析,开发人员能够更好地减少后期周期缺陷,使他们能够将更多时间集中在业务的新功能开发上,这些开发人员也可以从即时反馈中受益,能够快速识别他们的代码更改是否会破坏应用程序中的功能并快速解决它。Parasoft Jtest使开发团队能够在不牺牲质量的情况下实现敏捷和快速交付,从而使业务取得成功。

另外本人从事在线教育多年,将自己的资料整合建了一个公众号,对于有兴趣一起交流学习java可以微信搜索:“程序员文明”,里面有大神会给予解答,也会有许多的资源可以供大家学习分享,欢迎大家前来一起学习进步!

 类似资料: