下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.如何让人们找回对单元测试缺失的爱让我们面对现实吧。没有人真正喜欢做单元测试。许多人曾经在会议上向我描述他们是多么的厌恶单元测试。确实有一些人很擅长做单元测试,但对于大多数人来说单元测试就是无法避免的灾难,即便对于非常聪明的人来说也是如此。今天我要讲一些我们不喜欢单元测试的原因,以及如何通过自动化软件克服这些障碍。那么,为什么要进行单元测试呢"大多数开发团队都会承认,尽管他们不喜欢,但是单元测试实际上是有价值的。它帮助开发人员真正理解他们正在开发的代码,并为持续测试金字塔提供坚实的基础,正如右图所示。这反过来又能加速团队的敏捷开发,同时减少了缺陷的风险,从而使产品顺利进入了持续交付管
2、道的后期阶段。进一步来说,创建单元测试的过程本身就是有益的,它帮助开发人员通过不同的视角来查看他们的代码,本质上是在进行补充的代码审查。当你进行单元测试时,可以从外部的角度查看功能接口,并从相应的问题中获益,例如,我的代码将如何运行.(带来接口的简化以及更低的代码维护成本)或者,如果我得到了无效的数据,会发生什么.(生成更健壮和可重用的代码)。为什么单元测试被搁置.通常,开发团队只做很少的单元测试,或者完全跳过,这主要是由于(1)压力和时间,在有限的时间中交付越来越多的功能(2)创建有价值的单元测试的复杂性和耗时的特性。开发人员指出,将单元测试作为开发的核心实践有以下限制:· 很难理
3、解、初始化以及隔离被测单元的依赖关系。· 确定要验证什么,并定义适当的断言是非常耗时的,并且常常需要“猜测”。· 涉及到大量的手工代码,通常比实现特定功能或优化代码所做的要多。· 这并不有趣,开发人员不想让人感觉像一个测试人员,他们想要将时间用于交付更多的功能。为了解除这些限制,有一些现成的工具可以帮助我们进行单元测试。单元测试以及断言框架提供了标准化的执行方式(如Junit),以便无缝地集成到持续集成中(例如Jenkins, Bamboo, TeamCity)。IDE有助于创建测试代码(如Eclipse、IntelliJ)。Mock框架将代码从其依赖中分离出来(
4、例如,Mockito, PowerMock)。代码覆盖工具为代码的执行提供了可见性(例如,Emma, Cobertura, Clover)。调试器允许开发人员监视和单步调试。不幸的是,所有这些工具都有局限性,开发人员仍然会发现许多痛苦点,比如:· IDE有助于为单元测试创建一个框架,但不提供“内容”。开发人员还需要添加大量代码来创建执行测试:· 断言需要手动定义,并且必须执行测试,以确定断言的正确性· Mock框架需要大量的手工编码来实例化和配置,还需要正确地使用这些框架的知识。· 覆盖率工具提供了对执行测试所覆盖代码的展示,但是它们没有提供测试运行时行
5、为的观察。· 调试器可以用于单独的测试,但不能作为监控整个测试运行的方式。总之,在开始将业务逻辑添加到测试之前,单元测试的创建仍然需要大量的手工、耗时和常常让人麻木的工作。我们通过单元测试助手解决这一切为了帮助你解决这些痛点,我们使用自动化测试软件,Parasoft Jtest的单元测试助手(UTA)现在可以帮助你通过点击一次按钮来创建一个功能齐全的单元测试。用UTA(单元测试助手)创建的测试只是一般的Junit测试用例,所有常规的测试工作都是为你完成。UTA设置测试框架,实例化对象,并为被测试的方法所使用的对象和方法调用配置环境。这些单元测试可以作为你的标准持续集成工作流的一部分,
6、就像你现有的测试一样。而且当通过UTA执行测试时,包括您现有的测试时,测试就会以一种提供分析的方式进行监控,而不仅仅是提供代码覆盖率数据。通过分析运行中的测试,UTA能够提供一系列的建议,其中很多都提供了快速的修复,可以帮助你在一次点击时完成修复,比如:· 突出显示已更改的对象值,并建议对该对象做断言· 识别方法调用,以便更好地隔离正在测试的代码· 查找那些不做资源释放的测试,并创建一个潜在的不稳定的测试环境(例如,由于使用了线程、外部文件、静态字段或系统属性)。我们创建UTA是为了解决单元测试的痛点,因为作为一个专门从事软件开发测试工作的组织,我们知道单元测试是创建安全、稳定、可靠和高质量软件的关键一步。因此,我希望
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 48323-2026电动道路车辆用镍氢动力蓄电池包和系统电性能试验方法
- T/ZPMA 0002-2024RFID技术物联网应用与数据安全技术规范
- T/JSCTS 87-2025地铁车站高效通风空调系统设计技术规范
- T/CNFAGS 20-2025液体肥料塑料包装容器
- T/CC 16-2026跨境商品交易所国际协作指南
- T/CSPSTC 187-2025板桁(板梁)组合体系钢-混凝土组合桥面板设计技术规程
- GB/T 48286-2026运载火箭和航天器地面分离试验要求
- 2025~2026学年广东省深圳市罗湖区北师大版三年级上册阳光评价数学试卷【附答案】
- 人工智能在证据整 理与案情分析中的应用
- AI农产品品质检测分级分拣技术
- 2026年研发人员薪酬考核方案
- 天津市南开区2025-2026学年九年级上学期期中质量检测历史试题(含答案)
- 剪叉式升降平台操作规程
- 2025年国家电网考试历年真题库(附参考答案)
- 2026届江西重点中学协作体高三第二次联考政治试卷
- 塑料模具用热轧钢板宣贯
- 2026年学前教育法幼儿园培训
- 小学生对自然观察活动的参与体验与科学素养培养课题报告教学研究课题报告
- 2026年江苏南京公开国企招聘真题试题及答案
- 2026年5月29日税务总局系统升级税收分类编码-财务人员开票培训课件
- 2026年湖北黄冈高三二模语文作文写作指导及范文(长征胜利90周年)
评论
0/150
提交评论