Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自动化集成测试:使用xUnit?_Java_.net_Automated Tests_Integration Testing_Functional Testing - Fatal编程技术网

Java 自动化集成测试:使用xUnit?

Java 自动化集成测试:使用xUnit?,java,.net,automated-tests,integration-testing,functional-testing,Java,.net,Automated Tests,Integration Testing,Functional Testing,我正在研究如何最好地自动化集成测试(我指的是完全在应用程序中完成的用例) 问题 很好地涵盖“为什么”和“什么”方面 这个问题意味着xUnit框架是创建和执行集成测试的好方法。xUnit真的很适合这个任务吗?有没有常见的陷阱需要注意?遵循的好方法 是否有更好的方法(除了可能购买HP/以前的Mercury工具套件) 这个项目的具体环境是Java/SpringSource/Hibernate,但我也对.Net平台的建议感兴趣。多线程可能是一个问题,因为JUnit不会在其他线程中发现异常。关于这

我正在研究如何最好地自动化集成测试(我指的是完全在应用程序中完成的用例)

问题

很好地涵盖“为什么”和“什么”方面

这个问题意味着xUnit框架是创建和执行集成测试的好方法。xUnit真的很适合这个任务吗?有没有常见的陷阱需要注意?遵循的好方法

是否有更好的方法(除了可能购买HP/以前的Mercury工具套件)


这个项目的具体环境是Java/SpringSource/Hibernate,但我也对.Net平台的建议感兴趣。

多线程可能是一个问题,因为JUnit不会在其他线程中发现异常。关于这一点,有一些Java难题。您还需要发明自己的统计测试方法,断言方法可能有点粗糙。我还认为JUnit的语义有点不清楚(JUnit对每个测试方法使用一个单独的实例)。出于这些原因,我转而使用TestNG,我认为它是一个设计得更好的框架。JUnit是使用极限编程设计的,这一事实有时说明了这一点

这个问题意味着xUnit框架是创建和执行集成测试的好方法。xUnit真的很适合这个任务吗?有没有常见的陷阱需要注意?遵循的好方法

JUnit和TestNG最初是单元测试框架,但也可以用于集成测试。因此,对我来说,答案是肯定的,它们非常适合于集成测试,例如测试服务-->域>持久性-->数据库层(稍后我将再次讨论集成测试)。在进行涉及数据库的集成测试时,数据是一件棘手的事情。一个工具,如can-help,通常用于在运行每个测试之前将数据库置于已知状态(并对数据库内容执行断言)。另一种方法是在事务中运行测试,并在测试结束时回滚事务。Spring允许非常容易地实现这一点,库也是如此。在任何情况下,最佳实践是尽可能避免相互依赖的测试(正如您在链接中提到的),它们只是一场噩梦

是否有更好的方法(除了可能购买HP/以前的Mercury工具套件)

据我所知,这些工具是更多的端到端测试工具,即功能测试工具。因此,如果说集成测试(对我来说,这意味着一起测试多个组件)实际上是指功能测试(这是我对完整用例的理解),我建议看一下如下内容:

  • 用于Swing应用程序的、、等
  • 用于Web应用程序的、、等
  • 用于Web服务

请特别注意粗体显示的工具(所有工具实际上都是很好的工具,但我确信粗体显示的工具提供了良好的自动化功能)。由于HTTP和SOAP是标准(当然这不适用于Swing UI测试工具),因此这些工具并不是真正特定于Java的(即使测试本身是用Java/Groovy为SoapUI编写的)。顺便说一句,硒支持多种维生素D)

如前所述,您可以使用xUnit框架,但如果您想混合使用Java和.Net,或web应用程序和桌面应用程序,或在总体上增加一些复杂性,那么您将无法仅使用一个单元测试框架。因此,您需要有许多测试工具、许多测试环境、许多测试脚本开发人员(例如一个用于Java单元测试,一个用于.Net测试)。。。这将增加复杂性、麻烦和成本

至于您提到的HP Quick Test Pro,它应该满足您的大部分需求。我指的是大多数,因为在某些方面它可能不适合(无法通过Citrix虚拟化在应用程序上运行脚本),但在大多数情况下,它可以完成这项工作。它适用于java/.net/web和其他东西(有专门用途的插件)。QTP通常在GUI对象上运行,因此您可以为用户用例准备测试用例,并且测试可以以正常用户执行操作的方式执行(如果需要,您必须故意将测试速度减慢到用户速度)。
您可能需要一个工具、一个测试环境、一个测试脚本开发人员(VB)。这是昂贵的,但如果是公司的话,从长远来看,这应该是更好的选择。
如果您从公司的角度询问,如果您决定将其用于整个测试部门/团队,HP质量中心将发挥良好作用。除非您使用IBM解决方案,否则他们将拥有自己的工具套件作为其软件交付平台的一部分,包括