Take the 2-minute tour ×
Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It's 100% free, no registration required.

I work with automated testing of a very large Delphi XE application using TestComplete 9. The application has a 180MB executable. The automation environment is Windows XP, 32 bit.

TestComplete is unable to access public, protected or private properties. Published properties may or may not be accessible - there doesn't seem to be any pattern to whether or not a given published property can be accessed. All methods are usually accessible, but may be unavailable, again without any observable pattern. The automation codebase has not changed.

Initially, I observed occasional instances where form information that should have been available to TestComplete wasn't present. The same automation could be rerun against the same executable and access the information without errors: the pattern of failure appeared to be random and was never solved.

Now, not only does TestComplete working with the large application fail to access properties and methods necessary for the automation to complete, when TestComplete attempts to access the information it will often cause the application to fail with no further information. This behavior can be reproduced with the application at will, but can't be built into a test application.

The application has been under more or less continuous development for about 25 years, and still includes some of the original DOS TurboPascal procedural code, so the internal workings of the application are very complex.

Can anyone point me to any resources or suggestions for getting the automation running again? At present there is maybe 3 hours (of 60) automated regression being performed due to the problems with accessing application internal information.

share|improve this question
    
Did this just start happening when you upgraded to TC9? –  Todd Bumbarger Aug 16 '12 at 14:23
    
And also do you need to include the file necessary to your application to expose its properties to TC? –  Todd Bumbarger Aug 16 '12 at 15:39
1  
Are you able to apply an older build of the application (Say from a month ago) to see if that works? If you can narrow down when it started, that would help determine if it was TC or your app. Any change in the environment? Hardware, OS? –  Todd Bumbarger Aug 20 '12 at 17:14
1  
The problem seems to be absolutely technical and I do not think that you will be able to get a proper resolution here. Contact SmartBear Technical Support to get assistance: support.smartbear.com/message/?prod=TestComplete –  DmitryN Aug 21 '12 at 8:16
2  
With a lot of work, and SmartBear technical support, we know what's happening now. We don't know why, but the debug info is being corrupted in some way. –  Kate Paulk Aug 21 '12 at 22:41
show 1 more comment

1 Answer

I'm answering my own question here for everyone's reference.

With a lot of back and forth between SmartBear and Embarcadero the cause of the problem has been found:

  • In Delphi XE (and presumably later versions) there is a bug in the build process that corrupts debug information. This has been reported to Embarcadero and my workplace is working with them and SmartBear to find workarounds for the problem.

Workarounds are: - The build option to build with (I think) run-time packages appears to reduce the corruption of debug information but not eliminate it entirely. - With run-time packages, TestComplete needs to have the large-address-aware flag enabled or it will run out of memory.

We don't have a fix yet, but this much information could help anyone else who runs into this. Because this is a bug in Delphi XE, it has the potential to impact any automation tool that uses debug info.

share|improve this answer
    
Thanks for the update! I hope you get it taken care of. –  Todd Bumbarger Sep 19 '12 at 14:48
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.