The invention relates to correction of programming defects discovered using automated testing.
Computer software application program development often requires utilization of various testing processes to verify that a programmed application will function properly when placed into actual use. However, frequently changing product designs and/or development plans, application program interfaces (APIs) and recurrent feature regression introduce variables that ad-hoc testing practices are often unable to handle, necessitating use of automated functional and regression testing program tools (such as IBM Rational Functional Tester®) for programmers to use in testing standalone, networked, internet web-based (and other types of) applications during their development.
Such automated testing programs record simulated user interactions with the software application(s) being tested to create customizable program code (or “test script”) that reproduces those simulated actions when the test is executed. “Verification points” can be inserted into the test script to extract specified data or other properties obtained from the tested interactions, to allow comparison of expected results with “live” information obtained during testing to ensure correct functioning of the application program. Following test execution, the testing program generates a report (or “log”) recording the results of these verification point comparisons, and the test script can be modified based upon this recording activity to perform any data manipulation and/or operating environment changes necessary to ensure that the application program is properly configured for the next test run. With use of such automated testing programs, software developers are able to more reliably and efficiently expose problems in complex application programs, thereby increasing the opportunity for detecting, capturing and repairing programming defects (or “bugs”) before product release.
Many automated testing programs rely on identifying information from a windows-based operating system API (such as window/dialog box titles) to drive testing of software applications containing features displayed in a graphical user interface (GUI). The testing program uses this information to access the active window(s) and/or dialog box(es) of the application under test. However, an unexpected GUI window (such as a “firewall” dialog box) can sometimes appear (“pop up”) during test script execution, causing the test to anomalously fail because the test program was not provided with sufficient information to correctly process such an event. Instead, the testing program often categorizes such a failure as a “bug” without verifying that the test failed for an unanticipated reason.
The invention provides an authentication technique for allowing an automated testing program to determine whether a failure during software application testing is caused by an event unrelated to the test, in order to improve correction of programming defects discovered using automated testing.
Specifically, a product, method and system is provided for using window authentication in testing graphical user interface (GUI) applications, in which a unique identifier (or “signature”) is added to authenticate an object property used in formulating an application program interface (API) function call made to create a window or dialog box (or other GUI output) for the tested application. The function call(s) made by the tested application to the operating system are intercepted by the automated testing program so that the “signature” can be added. The operating system then executes the function call to create a GUI object with the injected “signature” (such as a window with a unique title) so that the automated testing program is able to identify the object as corresponding to the tested application. This allows a window or dialog box (or other event) not possessing a recognized “signature” to be dismissed as an unrelated test failure instead of a programming defect in the tested application.
It is therefore an object of the present invention to provide an authentication technique for allowing an automated testing program to determine whether a failure during software application testing is caused by an event unrelated to the test, in order to improve correction of programming defects discovered using automated testing.
It is another object of the present invention to provide a product, method and system for using window authentication in testing graphical user interface (GUI) applications, in which a unique identifier (or “signature”) is added to authenticate an object property used in formulating an API function call made to create a window or dialog box (or other GUI output) for the tested application.
The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, together with further objects and advantages thereof, may best be understood by reference to the following description taken in conjunction with the accompanying drawings.
While certain preferred features of the invention have been shown by way of illustration, many modifications and changes can be made that fall within the true spirit of the invention as embodied in the following claims, which are to be interpreted as broadly as the law permits to cover the full scope of the invention, including all equivalents thereto.