我必须为Java“绘图”应用程序GUI(如ArgoUML/LaTeXDraw/etc)自动生成测试。我需要验证测试的应用程序的行为是否正确。在我给出的例子中,我需要检查Undo/Redo按钮是否正常工作=撤销将画布置于前置状态,并且重做将其重置为原来的状态。测试使用Java Swing编码的应用程序GUI:最佳方法?
我已经我将如何处理这个问题,但我想有经验的人的意见的想法:
- 我应该使用机器人类的输入模拟到GUI?或者 有没有更简单的方法?
我需要捕捉程序供以后分析的状态,看 如果程序的状态是一致的,我应该只是截图 窗口或者是有没有办法通过所有Jframe的 组件和捕获迭代他们的属性(它应该包括画布 状态)?
更重要的是,我不知道如何找到在 接口上的每个按钮。告诉机器人一个给定的 按钮位于窗口中某个(x,y)位置的最简单方法是什么?我应该在按钮的.jpeg版本中搜索 像素吗?我是否应该手动定位界面上的每个 按钮(即为包含x,y属性的每个按钮 创建一个类)?
- 最后,我从来没有“附加”一个机器人到一个给定的程序。可以 我只是加载我想测试的软件的.jar文件,并告诉 机器人在该窗口上运行?或者我需要使用原始项目中的所有 源文件?
谢谢你的时间,如果我的问题的任何部分似乎不够清楚,请告诉我,我会尽力解释它更清楚。
PS:关于我需要做的工作有什么建议,欢迎:)
*“我必须自动生成JAVA测试”*这些测试有什么好处?是否真的测试*测试代码的行为*还是测试测试生成器是否正常工作?我不会依赖这样的测试。 –
我刚刚编辑OP – LostReality
您可以尝试使用ReTest(https://www.retest.de/en/),它带有一种有趣的新方法,用于功能性回归测试和基于ai的猴子测试。 – roesslerj