`
yimeng528
  • 浏览: 187360 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

怎样选择Java测试框架

    博客分类:
  • test
阅读更多

自动测试 成为你Java 项目 中的一部分了吗?你最爱的测试框架 是什么哪?使用的又是哪一种标准?
本文的4名开发 者将和你一起分享他们在自动测试领域中的观点和经验 。当你的项目面临测试阶段的时候,希望这些观点能对你有所帮助。如果你也想要分享自己的观点,请回帖参与讨论。我们真挚的希望我们能够为这个领域中新手提供一些有用建议和标准。

文章最后列出了文章的作者和提到的测试框架。

论自动测试 
                    ——Tom Wheeler
当我给那些有经验的开发者上课时,我发现只有40%左右的人写测试。大约还有40%的人甚至从来没听说过JUnit,这其中更有一般人完全没有单元测试 的概念。开发者通常处于在项目经理制定的紧促计划的压力中——而那些项目经理同样处于客户的压力之下,客户希望他们的软件 能够被快速的开发出。不幸的是,测试是项目中的一个重要部分而很多人却轻易的将它砍掉。真是目光短浅,那种做法只会让你的应用 成为bug的乐园而且会大大超出你的计划时间。

为 什么会这样?因为写自动测试实际上省下了大量的运行时间。每个开发者都会出错而通过测试可以帮助找到这些错误。可能手工测试在某些方面要比自动测试更快一 些,但是手工测试需要用户界面。手工测试的结果并不一致,因为测试者和开发者一样都会犯错。而一个自动测试总会保持结果的一致性。

也许更重要的是,当一个旧bug被修复或者新特性被添加时会引入更多的bug。你需要在改变系统 后重新运行所有的测试。这也是自动测试的价值体现,因为对比手工测试的开销,自动测试的开销是微不足道的。如果开发者经常测试,他们可以更容易地发现并修改问题,这可以保证代码 质量 并保证团队 开发的进度。

比较JUnit和TestNG 
                                ——Meera Subbraro
Martin Fowler曾说过,软件开发领域中此前从没有过这样的事情:很少几行代码对大量的代码起了如此重要的作用。JUnit过去直到如今依然是单元测试的一个标准。它是最流行的开源 工具 。当然现在我们有许多有别于JUnit的其他的开源工具。我自己,除了使用JUnit外,我还是用TestNG。下面我们来谈谈下这两个框架。

  • JUnit和TestNG都使用Annotation,都使得测试简单有趣。如果你写两个测试类,一个使用JUnit一个使用TestNG,除非你看到它们import语句,否则你几乎看不到他们之间的差别。
  • 如果你是一个TDD的信徒,通过运行测试来完成你的持续集成过程。TestNG可能更加适合。重新运行失败的测试这样的机制对于每天都进行编译来说非常有帮助。而这个特性只有TestNG才有。
  • TestNG 的另一个亮点是支持参数化。在JUnit中如果你要测试不同的参数,你需要写不同的测试用例来覆盖不同参数。而在TestNG,通过使用xml配置文件做 到。开发者可能会抱怨XML文件”这下好了,除了要维护那些测试用例,我还要维护那么一堆xml文件”。(译者按:JUnit4也已经支持参数化测试了)
  • JUnit生成的HTML格式的报告非常好。我使用TestNG和Java 6,生成的报告远没有JUnit那么漂亮。


最后,两个框架都有自己的长处和弱处,必要时我们可以同时使用。让我们使用这两个伟大的框架,享受编写测试的快乐吧。

我为什么从JUnit换到了TestNG上 
                                                    ——Andres Almiray
当 我开始编写测试程序时候,我选择了JUnit3.x。因为那个时候它是唯一的开源选择,而且有着相当详尽的文档和成堆的书供我参考。在此基础上还有许多扩 展如dbUnit,xmlUnit帮助测试一些大型组件。但是如果我们需要面对更多复杂的测试,通常是集成/功能测试,很明显JUnit会力不从心。那就 是为什么我换到TestNG上。Cedric和Alexandru TestNG的作者从一开始就很明确,TestNG是为更广的测试场合而设计,而不仅是单元测试。TestNG可以运行没有修改过的JUnit测试,这使 得两者的转换非常平滑。

稍 后发布的JUnit4.x在细节上非常类似TestNG,这也弥补了这两个框架的裂痕。TestNG仍然是我最喜欢的,而且它仍然保持更新。现在在开源的 Java测试框架中仍然有新进者,easyb,一个基于Groovy行为驱动开发的测试工具,为Java和Groovy测试。通过编写合理的测试或是假定 一个任务,它可以视为一种规范尽管它是可执行代码。如果你在Ruby世界中使用Rspec一样。

为什么JUnit仍然是首选 
                                    ——Aslam Khan
像许多人开始测试驱动开发和单元测试一样,我也是从JUnit3.x起步的。我发现JUnit是最广泛的工具,出现在各种不同的地方(ANT,Maven,Eclipse,IntelliJ IDEA, 等)。它也很容易介绍给那些新团队。我也使用TestNG对它的多样性同样印象深刻。然而,JUnit的大量插件(dbUnit,xmlUnit等)使得Junit仍然是首选的。如果你花大量的时间在Spring上,那么基于Junit的Srping ApplicationContext aware测试用例会带来优势。为了测试前台,我几乎只使用Selenium。我曾经涉足过Canoo和其他的框架,但是发现这些途径都是反TDD模式的。使用Selenium,我可以处理Selenium测试脚本和记录,给任何需要的人并日后处理。

如 果我们谈论的是纯粹的TDD,即书写良好的代码(不仅仅是良好的测试)需要增加一个mock测试。对于mocking,我使用Jmock,它和Junit 配合良好,通过基于mock的方式和程序内部边界,我得到了设计良好的,互相通信的对象。这在可读性和可维护性上迈出了重要的一步。EasyMock也不 错,但是Jmock是我个人的首选。

从Java世界上溯到Ruby世界中,RSpec很优秀而且也有DSL来描述场景。既然 Rbehave已经融合进了Rspec,这样的整合将成为Ruby世界的首选。有趣的是,Rbehave是从Jbehave衍生来来,它是一个行为驱动开 发测试框架。如果你喜欢BDD模式来收集和确定需求,你会喜欢Jbehave和RSpec.

 

 

分享到:
评论

相关推荐

    java自动化测试框架

    Java自动化测试框架是软件开发过程中不可或缺的一部分,它能够帮助开发者高效、准确地验证代码功能,提高软件质量。本文将深入探讨Java自动化测试框架的核心概念、常用工具以及如何构建一个基本的自动化测试流程。 ...

    JUnit——Java测试框架

    JUnit,作为Java编程语言的事实上的标准测试框架,其在软件开发中的重要性不容忽视。由著名程序员Kent Beck和Erich Gamma发起,JUnit以其简洁而强大的功能,极大地推动了Java开发中的自动化测试实践。Martin Fowler...

    基于java的ui自动化测试框架

    Java UI自动化测试框架是软件开发过程中的重要工具,主要用于提高测试效率,确保应用程序用户界面的稳定性和可靠性。本文将深入探讨基于Java的UI自动化测试框架,包括其核心组件、使用的技术以及如何应用于Android ...

    java 测试

    Java测试是确保代码质量、提高软件可靠性的重要环节,它通过自动化的方式验证程序的功能是否按预期工作,以及在各种情况下是否能够正确处理异常。 在Java中,JUnit是最常用的单元测试框架,它提供了断言方法来判断...

    java语言整合API接口自动化测试框架

    接口测试框架 https://blog.csdn.net/qq_15283475/article/details/106494544 com.bjci.api #包名 ApiInfoModel.java ## Api类 ExcelUtills.java ##操作excel的类 HandlsUtils.java ##根据judge分发不同的...

    面向程序员的Java测试框架.zip

    首先,“说明.txt”可能提供了关于如何使用Java测试框架的基本指南,包括为什么需要测试,测试的重要性,以及Java测试框架的选择标准。测试是软件工程的关键环节,它能确保代码的正确性和稳定性。Java测试框架如...

    基于java的开发源码-junit4 jar包 Java单元测试框架绿色免费版.zip

    基于java的开发源码-junit4 jar包 Java单元测试框架绿色免费版.zip 基于java的开发源码-junit4 jar包 Java单元测试框架绿色免费版.zip 基于java的开发源码-junit4 jar包 Java单元测试框架绿色免费版.zip 基于java的...

    Java单元测试框架Demo

    Java单元测试框架是软件开发过程中不可或缺的工具,它允许开发者对代码进行小规模的验证,确保每一部分功能的正确性。本Demo旨在演示如何利用Java中的单元测试框架进行有效测试。我们将主要关注Junit和Mockito这两个...

    如何搭建自己的Java开发框架

    Java开发框架搭建指南 Java 开发框架是 Java 程序员不可或缺的工具之一,然而,如何搭建自己的 Java 开发框架却是一件需要细心规划和设计的事情。在本文中,我们将讨论如何搭建自己的 Java 开发框架,包括整体框架...

    java写的一个fit集成测试框架demo

    标题 "java写的一个fit集成测试框架demo" 指向的是一个使用Java语言实现的FIT(Framework for Integrated Test)框架的示例项目。FIT是一种基于HTML表格的测试框架,它使得非程序员,如业务分析师或质量保证人员,也...

    junit4 jar包 Java单元测试框架绿色免费版.zip

    JUnit4是Java编程语言中最广泛使用的单元测试框架之一,它为开发者提供了一种方便、高效的方式来验证代码的正确性。这个“junit4 jar包 Java单元测试框架绿色免费版.zip”文件包含的是JUnit4框架的可执行jar包,用于...

    Java框架简介,java,框架

    Java框架是Java开发中不可或缺的一部分,它们为开发者提供了标准的结构和工具,使得构建复杂的Web应用程序更为便捷。本文将简要介绍两个常见的Java框架:Struts和Spring。 **Struts框架** Struts是一个基于Sun ...

    abbot Java UI测试框架

    **Abbot Java UI测试框架详解** Abbot是一个流行的开源Java UI测试框架,它为Java桌面应用提供了强大的自动化测试能力。这个框架使得测试人员能够轻松地编写和执行对用户界面(UI)组件的测试,从而确保应用程序的...

    java接口测试框架

    本人接口自动化框架脑图,主要分为source、httpclient、mysql,unitl四大类

    Java+Excel接口测试框架源码

    Java+Excel接口测试框架是一种利用Java编程语言和Excel电子表格工具进行自动化接口测试的方法。这种框架允许测试人员在Excel中编写测试用例,然后通过Java程序读取并执行这些用例,最后将测试结果自动回写到Excel中...

    Java SSH 框架整合,学习源码

    Java SSH 框架整合是Java开发中常见的一项技术,主要涉及Spring、Struts和Hibernate这三个开源框架。这些框架在企业级应用开发中扮演着重要角色,分别负责控制层、视图层和持久层的管理。下面将详细介绍SSH框架整合...

    Java框架API大全.rar

    Java框架是软件开发中的一种重要工具,它提供了一套预定义的规则和结构,使得开发者可以更高效地构建可维护的、可扩展的Java应用程序。本压缩包“Java框架API大全.rar”包含了三大主流Java Web框架——Spring、...

    java+selenium+maven+testng自动化测试框架实例(实际项目)

    Java+Selenium+Maven+TestNG自动化测试框架是现代软件开发中的一个重要组成部分,尤其是在Web应用程序的质量保证阶段。这个实例项目展示了如何将这四个强大的工具集成为一套完整的自动化测试解决方案。 **Java**: ...

    java并发测试框架源码

    java并发测试 代码很简单,就是一个test类 原理是这样的 1、定义并发数n 2、创建1、2、3……n个线程,创建后悬停 3、所有线程创建好后,同时执行 好处: 比for循环创建线程后马上执行更能测试并发。 代码说明: ...

    Java框架开发

    ### Java框架开发详解 #### 一、SpringMVC框架 **概述** SpringMVC作为Spring框架的一个重要组成部分,自发布以来已经历经十多个年头,依然是业界最受欢迎的Java Web开发框架之一。它不仅是一个功能全面的MVC框架...

Global site tag (gtag.js) - Google Analytics