Delphi 测试D2009应用程序,测试完成7.0

Delphi 测试D2009应用程序,测试完成7.0,delphi,testcomplete,Delphi,Testcomplete,我们正在尝试使用TestComplete7测试在Delphi2009中编译的应用程序(最近从D2006移植)。从理论上讲,这应该非常简单-您使用调试信息编译应用程序,然后使用剥离器实用程序将调试信息剥离到单独的*.tds文件中。然后,TC应该可以访问它需要的所有属性和方法。在实践中,我们发现: a) 很难获得许多属性和方法 b) 如果它们确实出现并且具有参数/索引,则所示参数/索引列表可能与我们代码中的实际列表无关 c) 看起来井然有序的方法和属性不起作用/返回除完全垃圾之外的任何东西 其他人是

我们正在尝试使用TestComplete7测试在Delphi2009中编译的应用程序(最近从D2006移植)。从理论上讲,这应该非常简单-您使用调试信息编译应用程序,然后使用剥离器实用程序将调试信息剥离到单独的*.tds文件中。然后,TC应该可以访问它需要的所有属性和方法。在实践中,我们发现: a) 很难获得许多属性和方法 b) 如果它们确实出现并且具有参数/索引,则所示参数/索引列表可能与我们代码中的实际列表无关 c) 看起来井然有序的方法和属性不起作用/返回除完全垃圾之外的任何东西

其他人是否有这种情况的经验,您是否遇到过任何问题,如果您能够解决这些问题,您会怎么做

自动化QA正在为我们调查这个问题,但我们似乎没有取得多大进展,而且他们解决这个问题的唯一方法似乎是,如果我们向他们发送我们的应用程序的源代码,这是我们不愿意做的,因为从实际到法律的各种原因


顺便说一句,在小型测试应用程序上,我们不会遇到相同的问题。

如果问题没有出现在小型测试应用程序中,您可以执行“二进制搜索”:

将大应用程序的更多单元(以及对这些单元中的方法的调用)添加到测试应用程序中,并检查是否出现问题

如果是,请拆下一些装置,直到问题消失

如果否,请添加更多单元并再次测试,直到出现问题

经过一些迭代后,您应该找到导致问题的单元/操作。

只是建议:

在您的大项目中,您是否使用了任何可能改变或以其他方式使调试信息“无效”的东西?Madexcept(Madexcept是否将调试信息捆绑到exe本身中,这可能会导致生成的任何其他调试信息不正确?)


测试应用程序的编译器设置是否与主应用程序相同?也许您在主应用程序中使用的第三方组件在测试应用程序中自然不起作用

我在回答我自己的问题,因为我们发现了问题所在。将泛型添加到可执行文件似乎会创建调试信息,但测试完成无法处理。还不确定是Delphi弄乱了调试信息,还是测试完成没有正确阅读。

所有好的建议,但都已经考虑过了。没有任何东西涉及到可执行文件,虽然我们有第三方组件,但我们已经尝试将这些组件合并到测试应用程序中,但无法理解为什么它们会产生任何影响。它们是简单的组件。您以前是否对Delphi 2006编译版本使用过Test Complete 6?如果是这样的话,那么AQ很可能必须解决一些问题。否则,您可能会建议将其作为团队的故障排除步骤。在测试完成6到7之间或Delphi 2006到Delphi 2009之间,可能出现了一些问题。切换到Unicode可能是最大的变化。我们以前使用了TestComplete5,但操作方式有所不同。您必须添加一些单元才能使应用程序“打开”。我们目前正在与AQ合作,但他们似乎不知道问题出在哪里。感谢更新,我们已经将一些产品模块迁移到D2009,并决定暂时使用Test Complete 6,因为我们也遇到了一些问题。我们从Test Complete 5.0迁移到了7.0,因为Automated告诉我们只有Test Complete 7.0完全支持D2009