【问题标题】:Automated testing of VBA UserForms- tools and/or techniques?VBA UserForms-工具和/或技术的自动化测试?
【发布时间】:2009-01-27 12:47:46
【问题描述】:

我希望在一个相当大的 Excel 加载项上开始自动回归测试,该加载项围绕一个由几个带有标准控件的模式用户窗体组成的 GUI。

主要问题是我研究过的大多数自动化测试工具(Rational Robot、AutomatedQA TestComplete、网络自动化 Automate 等) 不完全支持 VBA 控件,因此他们的测试最终会重播鼠标单击和按键,因此无法真正维护。理想情况下,我需要一个能够识别 VBA 表单控件的测试工具,因此我可以说“按下此按钮并等待此列表框更改”而不是“单击 (237, 58) 并等待 500 毫秒”。

我还考虑将测试自动化构建到作为 VBA 的加载项中,但用户的大部分时间都花在与模式对话框交互上,该对话框会阻止 VBA 在后台运行,所以这几乎是不可能的。

我的问题 - 这里有没有人有使用自动化测试工具的经验

a) 识别 VBA 用户表单控件并可以可靠地与它们交互

b) 是否支持带有条件分支和成功/失败日志记录的测试脚本,而不仅仅是记录和回放?

另外,有没有人知道我可以解决模式对话框暂停 VBA 执行的问题,以便我可以从 VBA 中驱动加载项?

我花了一段时间在 QA 论坛上四处寻找,但没有找到任何东西,所以任何帮助或线索将不胜感激。

感谢您的帮助,

-马丁

【问题讨论】:

    标签: excel testing vba automated-tests regression-testing


    【解决方案1】:

    我不知道有什么工具可以做到你所说的,但你有没有想过从不同的方向攻击?

    我在这里推测一下,有多少逻辑可以下推到“普通”VB/VBA 类中,从而可以对单个方法进行单元测试。也许这样的类甚至可能会暴露事件,因此为了进行测试,您可以将表单替换为提供必要刺激并收集响应以进行检查的测试工具。

    它不会解决(现在非常轻量级的)表单本身与底层类的连接问题,但它至少会最小化未测试的区域。

    我真的只是想“大声说出来”,但你认为这会奏效吗?

    【讨论】:

    • 这不是一个坏主意。我希望尽量减少架构更改,这将需要大量编码,但它消除了处理 GUI 的许多痛苦。我们正在探索其他途径,但可能会回到这个想法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多