JAVA开发的单元测试最新王牌工具-Agitator
The Value of Healthy
Software.健康的软件比带有缺陷的软件更有优越性,它们有更好的结构和设计、扩展性、可重用性,健壮性和可测试性,能够开发健康软件的组织,他们
能更快响映新的需求和需求的变化,更能够满足好客户的需要,操作的成本比起他们的竞争对手更低,他们能看到对软件质量的关注会以他们的商业成果的提高来回
报。
2.The Role of Developer Testing
.很多方案都被提议去帮助提升软件的质量,但是没有那一种方案象开发者测试那样对对软件的质量产生巨大的影响,开发人员创建了代码。这些代码包含了具体的
设计,也同时隐含了缺陷,使开发人员在编写他们代码的时候就去验证他们代码的正确性,这是一种积极的影响,它会对软件质量的提升带来极大的好处。因为:
l 开发人员能够以很低的代价去修复那些简单的代码错误。
l 他们也能修复那些导致错误的设计缺陷,不也正好删除了对错误代码的维护。
l 他们使测试和代码一致,并经常去运行他们,任何改变所产生的错误都会马上被识别,并很容易去修复。
l 测试开发人员创建实施规格,从测试规格中,其他的开发人员就能理解每个开发人员的软件模块做的是什么,从而更有利于合理的设计。
当软件开发人员递交他们的软件产品的时候,也同时提供执行单元测试的资料,单元测试它覆盖所有的代码、分之和输出结果。开发人员将更加信任软件质量,
更快的地依照确定的事情作出改变,以满足需求的变化。团队使用开发测试能够保证在整个开发周期中软件的健康,他们的项目将更早完成,有更高的可信度和更少
的压力,最终的产品将有更高的重用性、可扩展性,对企业带来更多的价值和产品的健康。
3. What is Software Agitation?.Software Agitation
是一个自动的运行软件代码并提供软件代码行为观察报告的一种方法,它帮助开发人员单元测试他们的代码,而不用手动编写测试代码,使用该方法,开发人员将创
造出更好、更容易维护和健康的软件,产生很少的bug,具有更高的生产效率,因为他们花了很少的时间去分析失败和改写他们的代码
4.Exercising the Code—Leave No Code Behind为了真正实现单元测试代码,每一
行、每个分之、每个输出都必须进行测试,这是一个让人畏惧的组合问题,人工去创建如此多的测试是不实际的,测试代码大大长于被测代码,并且在花费在写测试
代码的时间和花费在实现必要的软件特性的时间要作出一种权衡。Agitator创建被测试类的实例,仔细调用每一个方法,动态创建一些输入数据并分析结
果。当对象依赖其他对象时,Agitator也自动构造这些对象,使得代码的可能的行为都作全面的分析,即使他们依赖第三方的库。
5.Observations—“Just the Facts” About the
Code.当Agitator执行代码的时候,它跟踪所有的测量变量,以及他们之间的关系,执行前和执行后的值,Agitator使用这些信息去创建一系
列的观察报告,观察报告告诉开发者代码真正做了什么?不管这个软件规格和设计文档怎么说的,也不管开发者是否意识到,观察报告以Java表达式的方式去呈
现代码所做的真正工作。
二.Agitar Management Dashboard
1.Detailed Metrics Across the Project.当开发者使用Agitator去创建测试资产的时候,Agitator
Management目Dashboard
为项目的健康和团队开发测试的努力提供一个综合的视图,这使得开发团队可以基于风险去设定优先级,为团队和个体的开发人员确立目标、测量过程和适当的分配
资源.
2.Outsourcing and Offshoring Agitar’s solution
.使得对于软件外包管理非常容易和对于交付物具有更高的可信性,因为它对外包过程提供了空前的透明性、可视性和可信性。在你和你的商业伙伴之间,使用
Agitar Management
Dashboard去制定一个绑定的质量级别的协议。为每一个项目、Java包或者类指定语句行和条件覆盖的级别,有多少个测试被要求以及这些测试的质
量.
3.Know Your Code, Trust Your
Code.产品软件从来都不是一层不变的,在竞争的压力下,客户的需求、归并和许多其它条件要求产品具有新的特性和功能,Management
Dashboard提供的可见度允许团队从第一时间去真正了解和信任他们的代码,并以高度的自信去修改它们与需求保持一致。
1.Summary of Project Data . 项目汇总信息包括核心的数据,比如类、方法和测试的数量以及整个时间里测试趋势图
2.Test Targets. Management Dashboard使得开发团队去定义目标和检查不同的过程,比如全面的测试质量、项目测试的总的数量、以及已经测试的类和方法所占的百分比。
3. Reports by Package, Class, and
Developer. 当进行单元测试时,是很难去知道系统的那一部分已经被充分测试了,Agitar Management
Dashboard对项目提供了空前的可视性,在一个非常详细的级别上提供了对于项目质量的全面控制。随着单元测试的数量和质量不断增加,对于新产生的
bug去逃避检查,也变得越来越难。
4.Code Rules—Check for Standards
Compliance. 代码规则就是让你为你的项目指定和强制代码标准,这种定制能力检查数百条已经定义好的代码标准和代码相容性问题,通过检查那些普
遍导致错误或难以维护的代码模式,很多错误可能被预防。这种可扩展的能力很容易配置代码标准去支持公司或者团队的代码标准,允许开发人员去快速识别和解决
问题。
5. Assertions—That’s What the Code Is Supposed to
Do.只要轻轻一点鼠标,开发人员就能构造一个观测,它描述了断言(assertion)想要的行为,断言就是持久耐用的回归测试,好的断言描述了代码的
行为,这些行为应当在所有情况下都发生,当代码随着时间在改变的时候,这些断言也应当能继续通过。
6.Bugs—That’s Not What the Code Is Supposed to
Do. 当观测报告论证了有些行为不该发生时,开发者就能去修复代码,纠正这个问题,同样地,断言失败就可能暗示bug就在代码中,agitator提供
多种方法帮助开发人员去跟踪这些问题源(see “Snapshots and Stack Traces”)
7. Outcome Partitions—Divide and Conquer.输出是一个方法调用的结果。一个正常的输出是没有异常抛出的结果。一个不正常的输出是有异常抛出的结果。
当在Agitaton时,Agitator尽力去使得所有的输出发生(100%的输出覆盖),Agitator为每一个输出提供隔离的关于代码行为的观察报告,通过分割输出,可以让开发人员获取粒度更小的观察报告。
Each outcome partition is defined by the conditions that cause that outcome to occur
8.Factories—Extend the
Solution.在没有用户干预的情况下,Agtator以大量的时间,使用自动生成过程成功生成所有的必要的测试输入数据,开发者也可以使用
factories去扩展这种能力,它指定怎样为特定的对象类型生成测试输入数据。
Agitator包括一个扩展的超过200个factories的库,这些库不需要写任何java代码就可以使用,开发者能够配置这些factories
的实例去告诉agitator怎样去按要求的格式输入数据,Factoeies可以被重用,也可以被其他开发团队所共享,.这样开发人员重用其他开发人员
已经创建好的 test scenarios,而不用再去创建而减少时间。
9.JUnit Support—Incorporate Existing Unit Tests.
Agitator完全支持以junit创建的测试,它能运行它们作为每个agitation的主要部分,报告输出和覆盖率,在junit测试类里观察测试
方案,提供更进一步的探测测试的线索。如果使用Agile methodologies、the combination of test-first
approaches和agitation一起使用,就能导致极低的缺陷率.
10.Snapshots and Stack Traces—Find Out What
Happened. 当对软件进行agitation的时候,Agitator收集一系列快照,它们显示了采样值,这些采样值是在进行单元测试时发生
的,Agitator也为每一个输出和断言失败存储快照,比如对于异常输出,Agitaor能显示相应快照的堆栈跟踪信息,这种方法非常容易跟踪bug或
者可疑的行为,从而找出问题的原因。
Developers can use the stack trace to facilitate debugging when exceptions occur.
11. Source Control and Configuration Management—Share Test Assets.
Agitator以XML文件格式存储所有的信息,这使得非常容易配置标准的源码控制和配置管理系统去管理这些文件,就如同管理他们的源代码文件一样,这
也使得开发团队更容易去控制他们的测试资产,这也使得团队领导能够去集成每个开发人员的测试去构建过程和创建一个基于项目应用质量的视图.
12.IDE Integration—Make Agitation Part of the
Routine. Agitator能够和流行的Java IDE开发环境联合使用,比如Eclipse, JBuilder, WebSphere
Application Developer, and IntelliJ
IDEA,作为一个基于Eclipse的应用程序,Agitator是完全集成Eclipse开发环境,这种集成增加了开发者的开发效率和eases
adoption by providing a familiar look and
feel.Agitator的信息,比如断言的失败或者代码规则的违规,自动使用标准机制出现,例如代码标记和问题视图,开发人员在不用离开开发环境的情
况下,就能很容易修复在代码中已经识别的问题和再次运行测试
三.Agitator Features
1、Test Automation
l 自动生成测试数据
l 强有力的观察引擎汇总了代码在测试时的行为。
l 自动创建智能的Mock 对象,提供尽可能多的代码覆盖
l 只需轻点鼠标,观察资料就变成断言(耐用的测试)。
l Java兼容的语法容许用户去制定关键的表达式去观察和(或者)断言
2.overage Analysis
l 测试的时候,自动跟踪代码覆盖率
l 报告方法、输出、语句行和条件覆盖率
l 与Management Dashboard集成
3、Outcome Partitions(输出分割)
l 自动识别基于代码行为的观察和断言的输出
l 用户定义等同的分割集
4、Factories
l 控制输入数据和转化数据格式
l Factory库包含超过200个不同的factory 类型
l 用户配置通过简单的GUI配置。
l 通过简单的Java API 延伸factory
5、Management Dashboard
l 标准的HTML表现形式使得易于使用和广泛存取。
l 一眼就可以看出软件的健康和测试努力的状态
l 项目汇总复杂、使用、风险、测试质量、覆盖、测试通过/失败的状态。
l 风险评估找出为更好测试具有更高价值的候选方案。
l 所有权的分配识别谁正在那个问题上工作
l 分等级的视图提供包和类的细节信息,只需一瞥,就一目了然。
l 检测点跟踪开发和测试活动的过程。
6、Agile, XP, and JUnit Friendly
l 自动关联Junit 测试和适当的项目代码
l 执行和监视Junit测试
l 为XP和Agile development methodologies 支持测试驱动开发(TDD)。
l Enhances TDD with exploratory testing, increasing coverage and uncovering unanticipated scenarios
l Keeps tests current as code evolves
7、Easy Adoption
l 存储信息在XML文件里
l 集成所有的流行的版本控制系统
l 并不需要数据库或者中央服务器
8、Regression Testing Support
l 在任何时候可再运行测试。
l Automatically detect test and code changes to streamline development
l 带Ant task和脚本支持的自动构建过程
l 使用详细的结果数据去跟踪失败
l 为项目状态跟踪设置检查点。
9、Powerful Code Rules
l 自动检测代码标准违规
l 易于配置自己的项目
l 易于配置规则去支持项目
l 在IDE和Management Dashboard里查看结果
分享到:
相关推荐
- **Discharge Agitator(搅拌器系统)**:由Agitator Drive(搅拌器电机)和Agitator(搅拌器)组成。搅拌器电机负责驱动搅拌器工作,确保煤粉能够均匀分布并防止堵塞。 #### 三、工作原理 **3.1 申克秤计量原理*...
13. **搅拌器(Agitator)**: 用于混合液体或悬浮物的设备,常见于化学反应或物料处理过程中。 14. **鼓风机(Air Blower)**: 产生气流的装置,常用于通风或干燥。 15. **空压机(Air Compressor)**: 将大气压力...
* agitator:煽动者;煽动者〔agitate 的名词〕 ann词根词缀: * anniversary:周年纪念日;周年纪念〔ann+i+vers 转+ary〕 * annual:每年的;年度的〔ann+ual〕 * perennial:全年的;四季不断的〔enn 由 ann ...
**Agitator** - 搅拌器,保持泥浆性能稳定;以及**Air Line** - 气管线,供气设备的管道。安全设备如**Blow-Out Preventer (BOP)** - 防喷器,防止井喷事故的关键设备。 钻井作业中的操作术语如**Spud In** - 开钻...
8. **搅拌器(agitator)**:用于混合或搅拌物料的设备,可能在锌液混合中使用。 9. **机械装置(mechanism)**:实现特定功能的机械设备组合。 10. **空气冷却单元(air cooling unit)**:利用空气进行冷却的...
9. **搅拌装置(agitator device)**:用于混合容器内物料的机械装置。 10. **视镜(sight glass)**:允许观察容器内部情况的透明窗口。 11. **接管(NOZZLE)**:同义词,用于连接各种管道或组件。 12. **换热...
- **agitator**:鼓动者。由agitate(鼓动)+ or(人)构成,特指那些通过鼓动来引发变化或行动的人。 - **agitating**:使人不安的。由agitate(鼓动)+ ing(进行中的)构成,形容因鼓动而产生的不安或紧张情绪。 ...
- 搅拌机(Agitator, amalgamator):混合食材的电动设备。 - 料理机(Cooking machine):可进行切割、搅拌、研磨等多种功能的厨房电器。 - 洗碗机(Dish-washing machine):自动清洗餐具的机器。 - 食物垃圾...
“agitator”即鼓动者;“agitating”形容词态,表示使人不安;“agent”既是作用因素,也是代理人的意思,在化学、商业等领域广泛使用;“agency”指的是代理处或机构;“coagent”意为合作者;“counteragent”...
- **agitate**,**agitation**,**agitator**,**agitatress**,**agitated**,**agitating**:这些词都与 "ag" 相关,表示 "使动",如 "鼓动","煽动" 等。 - **counteragent**:前缀 "counter-" 意为 "反",表示...
12. **かくはん器(撹拌器)/agitator**:搅拌器,用于混合液体或悬浮物。 13. **拡散器(diffuser)**:扩散器,通常在曝气过程中用于均匀分布气体。 14. **スクラバー/scrubber**:洗涤器,清除气体中的颗粒物或...
**搅拌器 (agitator)** - 用于混合液体或其他流体的设备。 **美国齿轮制造业协会 (AGMA)** - 美国的一个行业协会,专注于齿轮的设计与制造。 **气硬钢 (air-cooled steel / air-hardening steel)** - 可以通过空气...
### 搅拌器 (agitator) 搅拌器是一种用于混合液体、固体或气体的机械设备。在化工、制药等行业中应用广泛。 ### 鼓风机 (air blower) 鼓风机是一种用于产生强制气流的装置,常用于通风、冷却等场景。 ### 空压机 ...
而"Agitator Brand"可能是这个设备中的一个组件,agitator在工业中常指搅拌器,用于混合物质。".ga88Xeh"可能是一种文件扩展名,但并不常见,可能是开发者为该特定程序或组件自定义的标识。 【描述】中的信息同样为...
这个名字可能是结合了“Bugs”(错误或虫子),“Agitator”(搅动者,可能暗示其具有破坏性)以及一串随机字符来构成的。这种命名方式在网络安全领域很常见,用来区分不同的恶意代码。 【描述】"BugsKine....