title: What scripting tool can I use for automated testing of Delphi programs?
body: <p>I'm looking for a tool for automated testing. I will use scripting for testing, rather than just automating, which means that it can't just send some key-presses. It needs to examine the app's window to see if it was updated correctly. The cheaper the better, with no downside limit on cost. ;-)</p>
  
  <p>I need a real language, with functions, variables, loops, branching, etc., and the apps are developed in Delphi.</p>
  
  <p>I need to be able to focus controls<sup>*</sup>, wait for windows to appear, search for controls/windows, send keyboard input and check that various windows/controls have changed state (e.g a button is now disabled, a text box contains the correct text, a dialog box opens, etc.).</p>
  
  <p>I used to use AutoIt a few years ago and am now coming back to scripting. I wondered if there has been any new development while I was gone.</p>
  
  <p>Any suggestions? </p>
  
  <p>* <sub> I do not want to move the cursor to absolute coordinates in case the app's layout changes. This quote <a href="http://en.wikipedia.org/wiki/GUI_software_testing">from Wikipedia</a> explains why:</p>
  
  <blockquote>
    <p>Regression testing becomes a problem with GUIs as well. This is because the GUI may change significantly across versions of the application, even though the underlying application may not. A test designed to follow a certain path through the GUI may not be able to follow that path since a button, menu item, or dialog may have changed location or appearance.
    </sub></p>
  </blockquote>