java - 如何进行桌面 Java 应用程序的自动化验收测试?

标签 java unit-testing testing junit acceptance

我一直在考虑验收测试,并希望更清楚地了解它是如何实现自动化的(例如,如何适应持续交付管道)。我有一个用 Java 编写的桌面应用程序,一个消息应用程序。如果我想自动化验收测试,我该怎么做?这是一个手动测试示例:“当服务器崩溃时,用户 A 正在向用户 B 发送消息。切换到故障转移服务器,验证聊天是否可以从中断处恢复,并且所有聊天功能仍按预期在客户端中运行"

JUnit可以用来做这样的自动化验收和系统测试吗?我也听说过 Selenium 但我猜它只适用于 Web 应用程序?

我了解使用 JUnit 进行单元测试的概念,但我不知道如何自动化桌面应用程序功能的更高级别测试。一些测试可能涉及与 GUI 的交互,比如向其他客户端发送消息,但其他测试将涉及服务器端的东西,比如服务器崩溃等。我一直在想,使用 JUnit 和应用程序代码可能会做到这一点,也许涉及一些脚本(Perl、Ruby 等)来启动测试?

最佳答案

为此,有多种软件解决方案需要付费。一些重要的是 QTP(现在是 UFT)、TestComplete、Ranorex、SilkTest。他们应该都有可用的试用软件。如果 Java 应用程序是用 Swing/AWT 编写的,那么 Jemmy 可能值得一试。正如 Tony Hopkinson 提到的,AutoIt 可能适合,而且使用起来非常快。 Selenium 很棒,但据我所知仅用于网络测试。自动化 UI 对于自动化测试非常重要,并且可以补充验收测试,因为它与最终用户交互。单元测试有很多重叠,并且可能涵盖功能集成,具体取决于您如何组织它们以及是否有足够的单元测试,但它们是两种不同的方法,具有两个不同的目的。

此外,如果您使用的是 Swing,则发现此线程可能会有所帮助:http://www.coderanch.com/t/96035/Testing/Automated-Swing-Testing

关于java - 如何进行桌面 Java 应用程序的自动化验收测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21195450/

相关文章:

java - 比较TreeMap内容会给出错误答案

java - 在 Qt 上使用 java 函数

Java 测试管理工具/框架?

unit-testing - 基本 block 覆盖——准确的定义是什么?

Java 类无法编译

java - Volatile 变量与 Atomic 变量有什么区别?

c# - 如何获取弹出窗口的属性(id、CSS、xPath)

python - 如何在 Python 的单元测试设置阶段实例化对象

flutter - 用 mockito 测试 riverpod 的正确方法是什么

java - 测试两个 Maven 工件的向后兼容性