the principles of the present invention are applicable to a variety of computer hardware and software configurations . the term “ computer hardware ” or “ hardware ,” as used herein , refers to any machine or apparatus that is capable of accepting , performing logic operations on , storing , or displaying data , and includes without limitation processors and memory . the term “ computer software ” or “ software ,” refers to any set of instructions operable to cause computer hardware to perform an operation . a “ computer ,” as that term is used herein , includes without limitation any useful combination of hardware and software , and a “ computer program ” or “ program ” includes without limitation any software operable to cause computer hardware to accept , perform logic operations on , store , or display data . a computer program may , and often is , comprised of a plurality of smaller programming units , including without limitation subroutines , modules , functions , methods , and procedures . thus , the functions of the present invention may be distributed among a plurality of computers and computer programs . the invention is described best , though , as a single computer program that configures and enables one or more general - purpose computers to implement the novel aspects of the invention . for illustrative purposes , the inventive computer program will be referred to as the “ functional tester plug - in ” or “ ftp .” additionally , the ftp is described below with reference to an exemplary network of hardware devices , as depicted in fig1 . a “ network ” comprises any number of hardware devices coupled to and in communication with each other through a communications medium , such as the internet . a “ communications medium ” includes without limitation any physical , optical , electromagnetic , or other medium through which hardware or software can transmit data . for descriptive purposes , exemplary network 100 has only a limited number of nodes , including workstation computer 105 , workstation computer 110 , server computer 115 , and persistent storage 120 . network connection 125 comprises all hardware , software , and communications media necessary to enable communication between network nodes 105 - 120 . unless otherwise indicated in context below , all network nodes use publicly available protocols or messaging services to communicate with each other through network connection 125 . ftp 200 typically is stored in a memory , represented schematically as memory 220 in fig2 . the term “ memory ,” as used herein , includes without limitation any volatile or persistent medium , such as an electrical circuit , magnetic disk , or optical disk , in which a computer can store data or software for any duration . a single memory may encompass and be distributed across a plurality of media . further ftp 200 may reside in more than one memory distributed across different computers , servers , logical partitions , or other hardware devices . the elements depicted in memory 220 may be located in or distributed across separate memories in any combination , and ftp 200 may be adapted to identify , locate and access any of the elements and coordinate actions , if any , by the distributed elements . thus , fig2 is included merely as a descriptive expedient and does not necessarily reflect any particular physical embodiment of memory 220 . as depicted in fig2 , though , memory 220 may include additional data and programs . of particular import to ftp 200 , memory 220 may include functional tester 230 , test script 240 , meta - data definitions 245 , static data store 250 , analysis store 260 , cmdb 270 , and new application 280 with which ftp 200 interacts . functional tester 230 is a prior art simulation tool , such as ibm &# 39 ; s rational functional tester , and has two prior art components related to the present invention : setup 232 and execute 234 . setup 232 is used by a developer to create test script 240 and meta - data definitions 245 based on new application 280 . setup 232 also allows the developer to create static data store 250 indicating verification points , other resources needed to execute test script 240 , and expected results for each verification point . execute 234 runs test script 240 , comparing expected results in from static data store 250 at each verification point designated by the developer . cmdb 270 is a prior art configuration management database , shown in fig2 having configuration item a 272 , configuration item b 274 , and configuration item c 276 corresponding to resource a 972 , resource b 974 , and resource c 976 respectively . cmdb 270 is a repository of all the resources on computer network 100 . configuration items a 272 , b 274 , and c 276 are records in cmdb 270 containing relationships between different resources , versions of the same resource , and the configuration of the resources . resources may be any resource on network 100 , such as files , hardware , firmware , software , and documentation . although this example shows cmbd 270 , ftp 200 could use any data base or other data source containing the configuration of and relationships between resources on network 100 . ftp 200 has two components : analysis component 300 and exception component 400 . analysis component 300 creates analysis store 260 based on information in cmdb 270 whenever execute 234 of functional tester 230 runs a simulation of new application 280 . analysis store 260 describes an optimized set of resources and expected verification point results based on the run - time configuration of resources on network 100 . whenever an exception occurs at a verification point , exception component 400 causes execute 234 to repeat the failed verification point using a related resource from analysis store 260 . analysis component 300 is shown in fig3 . analysis component 300 starts ( 310 ) whenever execute 234 of functional tester 230 runs a simulation on new application 280 . analysis component 300 accesses test script 240 , meta - data definitions 245 , and static data store 250 ( 312 ) then identifies the first verification point ( 314 ). if a resource , such as resource a 292 , on network 100 is needed by test script 240 at the verification point ( 316 ), analysis component 300 accesses cmdb 270 ( 318 ). analysis component 300 uses meta - data definitions 245 to analyze configuration item a 272 , corresponding with resource a 292 , to determine the configuration of resource a 292 , identify any configuration changes of resource a 292 , and identify any relationships to another resource , such as resource b 294 ( 320 ). analysis component 300 calculates an optimal set of resources needed by the verification point and determines expected results for any related resources ( 322 ). analysis component 300 saves the optimal set of resources and expected results to analysis store 260 ( 324 ). after saving to analysis store 260 , or if the first verification point did not require a resource on network 100 at step 316 , analysis component 300 determines if there is another verification point in test script 240 and data store 250 ( 326 ). if there is another verification point at step 326 , analysis component 300 repeats steps 316 - 326 until all verification points have been analyzed . once all verification points in test script 240 and data store 250 have been analyzed , analysis component 300 stops ( 330 ). meta - data definitions 245 contains a series of queries in xml format that can be used by analysis component 300 when determining an optimal set of resources needed to test a verification point . fig4 shows an exemplary xml listing of definitions used when querying cmbd 270 and creating the optimal set of resources to use at a verification point at steps 318 - 322 above . exception component 400 is shown in fig5 . exception component 400 starts when a failure occurs at a verification point when execute 234 of functional tester 230 runs a simulation on new application 280 ( 410 ). for example , a verification point in test script 240 requiring use of resource a 292 fails because resource a 292 is not available . exception component 400 pauses execute 234 ( 412 ) and opens analysis store 260 ( 414 ). exception component 400 selects a related resource and an expected result from using the related resource ( 416 ). for example , exception component 400 may select resource b 294 which is capable of performing the same task as resource a 292 . exception component 400 restarts execute 234 , repeating the test script at the failed verification point , but using the related resource , such as resource b 294 ( 418 ) then stops ( 420 ). because exception component 400 responds to every failed verification point , it repeats the selection of related resources as necessary until execute 234 completes test script 240 . in an alternate embodiment , not shown in the figures , analysis component 300 is adapted to create multiple test scripts so that the simulation can be run multiple times for different sets of resources . for example , if new application 280 uses resource a 292 at the first verification point in test script 240 . analysis component 300 may discover when querying cmdb 270 using meta - data definitions 245 that resource b 294 and resource c 296 are related to resource a 292 . analysis component 300 would create a first alternate test script to repeat the simulation using resource b 294 , and a second alternate test script to repeat the simulation using resource c 296 . as with the primary embodiment , analysis component 300 will calculate expected results for the alternate test scripts and place the results in the proper data store for verification purposes . this embodiment allows the developer to more fully test new application 280 without requiring extra effort to create multiple test scripts . a preferred form of the invention has been shown in the drawings and described above , but variations in the preferred form will be apparent to those skilled in the art . the preceding description is for illustration purposes only , and the invention should not be construed as limited to the specific form shown and described . the scope of the invention should be limited only by the language of the following claims .