Patent ID: 7490031

Claim:
A method for modeling and simulating software running interactively directly or indirectly on at least one digital computer, comprising the steps of: providing a display; providing an input, wherein said input connects at least one of a pointing device, a keyboard and external interactive devices to said software; providing an output, wherein said output connects a block of memory to said display; providing a software controller, wherein said software controller is a programmable agent controlling said software to perform tasks in a closed-loop fashion; providing a software modeling process, wherein said software modeling process models an interaction process between said software and said software controller, further comprising the sub-steps of: (a) connecting said software controller with said software through an input and an output of said software, (b) controlling said software by said software controller automatically and programmatically through a sequence of action steps; wherein said sequence of action steps is preprogrammed in said software controller and executed by said software controller, and (c) identifying a model of said software on-line under control of said software controller, wherein said model of said software includes models of input and output behavior of said software; wherein said model of input behavior of said software models at least one control enabling structure; wherein said at least one control enabling structure is identified and recorded while powered by said software; wherein said model of output behavior of said software models at least one display screen region; and providing a software simulation process, wherein said software simulation process simulates said interaction process between said software and said software controller, further comprising the sub-steps of: (d) connecting said software controller with said model of said software through a simulated input and a simulated output of said model of said software, (e) controlling said model of said software by said software controller automatically and programmatically through said sequence of action steps, and (f) simulating said interaction process between said software and said software controller without said software presence; and wherein said software simulation process is a new software that comprises said model of said software and said software controller.