java自动化集成测试:使用xunit?

2jcobegt  于 2021-06-30  发布在  Java
关注(0)|答案(3)|浏览(434)

我正在研究如何最好地自动化集成测试(我指的是完全在应用程序中的完整用例)
问题
单元测试复杂交互的正确方法
自动化单元测试和自动化集成测试的优缺点是什么?
很好地涵盖“为什么”和“什么”方面。
用数据库对c++应用程序进行自动化集成测试的问题意味着xunit框架是创建和执行集成测试的好方法。xunit真的很适合这个任务吗?有什么常见的问题需要注意吗?一个好的方法?
有没有更好的方法(除了可能购买hp/以前的mercury工具套件)?
我在这个项目中的具体环境是java/springsource/hibernate,但我也对.net平台的建议感兴趣。

ef1yzkbh

ef1yzkbh1#

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

5w9g7ksd

5w9g7ksd2#

如前所述,您可以使用xunit框架来完成,但是如果您想混合使用java和.net,或者web应用程序和桌面应用程序,或者给整体情况增加一些复杂性,那么您就不能仅使用一个单元测试框架来完成。因此,您将需要有许多测试工具、许多测试环境、许多测试脚本开发人员(例如一个用于java单元测试,一个用于.net测试)。。。这会增加复杂性,麻烦,成本。。。
至于您提到的hp quick test pro,它应该可以满足您的大部分需求。我的意思是大多数,因为可能有一些地方它不适合(没有办法通过citrix虚拟化在应用程序上运行脚本),但在大多数情况下它可以完成这项工作。它适用于java/.net/web和其他东西(有专门用途的插件)。qtp通常在gui对象上运行,因此您可以为用户用例准备测试用例,并且测试可以以正常用户执行操作的方式执行(如果需要,您必须故意将其降低到用户速度,只需稍微快一点)。
你可能需要一个工具,一个测试环境,一个测试脚本开发人员(vb)。这是昂贵的,但如果它是为公司,它应该是更好的选择,从长远来看。
如果您从公司的Angular 考虑,如果您决定将其用于整个测试部门/团队,它将与hp质量中心合作。除非您使用ibm解决方案,否则他们将拥有自己的工具套件作为软件交付平台(包括rational robot)的一部分

wko9yo5t

wko9yo5t3#

用数据库对c++应用程序进行自动化集成测试的问题意味着xunit框架是创建和执行集成测试的好方法。xunit真的很适合这个任务吗?有什么常见的问题需要注意吗?一个好的方法?
junit和testng最初是单元测试框架,但也可以用于集成测试。所以对我来说,答案是肯定的,它们非常适合于集成测试,例如测试服务-->域>持久性-->数据库层(我稍后会回来讨论集成测试)。在进行涉及数据库的集成测试时,最棘手的事情之一就是数据。dbunit之类的工具可以提供帮助,通常用于在运行每个测试之前将数据库置于已知状态(并对数据库内容执行Assert)。另一种方法是在事务中运行测试,并在测试结束时回滚事务。spring非常容易做到这一点,unitils库也是如此。在任何情况下,最好的做法是尽可能避免相互依赖的测试(正如您在链接中提到的),它们只是一场噩梦。
有没有更好的方法(除了可能购买hp/以前的mercury工具套件)?
据我所知,这类工具更多的是端到端测试工具,即功能测试工具。因此,如果说集成测试(对我来说意味着一起测试多个组件)实际上是指功能测试(这是我对完整用例的理解),我建议您考虑以下内容:
方丈,马拉松,弗兰肯斯坦等为摇摆应用
imacros、selenium、cucumber等用于web应用程序
用于web服务的soapui
请特别注意粗体字(所有这些实际上都是很好的工具,但我确信粗体字提供了很好的自动化功能)。而且由于http和soap是标准的(这当然不适用于swingui测试工具),这些工具并不是真正特定于java的(即使测试本身是用java/groovy为soapui编写的)。顺便说一句,selenium支持许多编程语言)。

相关问题