首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动测试一个大型复杂的电子表格?

如何自动测试一个大型复杂的电子表格?
EN

Software Engineering用户
提问于 2014-01-11 09:59:19
回答 1查看 958关注 0票数 2

所以,我继承了其中一个“工程师的特殊”电子表格--由莫特工程师开发的那种,有很多毛茸茸的VBA和WTF,复杂的计算,没有文档。

幸运的是,大多数主要输入和输出都在一个页面上。也许不足以覆盖整个测试范围,但这是一个开始。

我想为Excel创建一个快速的,穷人的回归测试框架,但是我还没有找到最好的方法。

我的直觉告诉我要创建一些代码:

  1. 具有一个宏,该宏将“主”I/O电子表格的值“保存”到另一个工作簿,基本上是创建主输入表的用户名为值的副本。这个“场景”工作簿的第一个选项卡是包含元数据的所有保存的工作表的列表。
  2. 具有一个单独的宏,该宏从所述工作表“加载”给定的一组输入,但不覆盖用于输出、标题、指令等的单元格。
  3. 具有从方案汇总表运行的第三个宏。反过来,它会将每个场景的输入加载到主工作簿中,将每个保存的输出与当前的输出进行比较,并记录所有的输出是否匹配。它会在无人值守的情况下运行,直到达到匹配失败为止,然后停止,这样用户就可以查看差异(这将被高亮显示)。

两个注意事项:(1)当主表的设计发生足够大的变化以重新定位/添加/删除输入或输出时,这需要手动同步主表和场景表;(2)如果每个场景都包括要在多个工作簿上测试的输入/输出,则这将不能很好地扩展。为每个I/O单元而不是整个工作表保存/加载命名范围可能有助于这两种情况,但也有其自身的缺点。

有没有人想出其他新的方法来有效地对任意电子表格进行回归测试?

EN

回答 1

Software Engineering用户

发布于 2014-01-11 13:53:15

到(1):场景表的布局应该独立于母版表的布局。保存和加载例程应该执行它们之间的映射。因此,当母版表中的输入区域发生变化时,您不必更改所有场景表,只需更改保存和加载例程即可。

通过让比较者在主表和“预期价值”表之间映射,可以实现输出区域的相同。

添加一些安全检查可能也是一个好主意,特别是在“加载”例程中,这样可以确保在将场景数据复制到主单元时不会意外地覆盖主表中的任何内容,并且所有数据都放在正确的单元格中。

(2):我承认,我不清楚你在这里看到了什么问题,但我想自动运行这种测试总是比手工测试要好得多。所以最好先测试你的性能,然后在你看到真正的性能问题时进行优化,而不是反过来。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/223849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档