Invented by Christopher M. Myers, Express Scripts Strategic Development Inc

The market for A method and system for testing an interface programmatically In today’s fast-paced digital world, software development has become a crucial aspect of businesses across industries. With the increasing complexity of software applications, the need for efficient and reliable testing methods has also grown exponentially. One such method that has gained significant traction in recent years is testing an interface programmatically. An interface is a crucial component of any software application as it acts as a bridge between the user and the underlying system. It allows users to interact with the software, providing input and receiving output. Testing an interface programmatically involves automating the testing process by using specialized tools and scripts to simulate user interactions and verify the expected outcomes. The market for a method and system for testing an interface programmatically has witnessed substantial growth due to several factors. Firstly, the increasing demand for software applications across industries has led to a surge in the need for efficient testing methods. Manual testing, which is time-consuming and prone to human errors, is no longer sufficient to meet the demands of rapidly evolving software applications. Automated testing, on the other hand, offers several advantages over manual testing. It allows for faster and more accurate testing, reduces the risk of human errors, and enables repetitive testing without any additional effort. Testing an interface programmatically takes automation a step further by focusing specifically on the user interface, ensuring that it functions correctly and provides a seamless user experience. Another factor driving the market for testing an interface programmatically is the increasing complexity of software applications. Modern applications often have intricate user interfaces with multiple layers and components. Manually testing each aspect of the interface can be a daunting and time-consuming task. By automating the testing process, developers can save time and resources while ensuring comprehensive test coverage. Furthermore, the market for testing an interface programmatically is also driven by the need for continuous integration and delivery (CI/CD) practices. CI/CD aims to streamline the software development process by automating various stages, including testing. By incorporating automated interface testing into the CI/CD pipeline, developers can quickly identify and fix any issues, ensuring a smooth and efficient release cycle. Several companies have recognized the potential of testing an interface programmatically and have developed specialized tools and systems to cater to this market. These tools provide developers with the ability to create test scripts, simulate user interactions, and validate the expected outcomes. They often come with features such as record and playback, test case management, and integration with other testing frameworks. The market for testing an interface programmatically is expected to grow further in the coming years. As software applications become more complex and the demand for efficient testing methods increases, developers will continue to rely on automated testing to ensure the quality and reliability of their applications. Additionally, advancements in artificial intelligence and machine learning may further enhance the capabilities of interface testing tools, allowing for more intelligent and adaptive testing. In conclusion, the market for a method and system for testing an interface programmatically is witnessing significant growth due to the increasing demand for efficient and reliable testing methods. Automated interface testing offers several advantages over manual testing, including faster testing, reduced human errors, and seamless integration with CI/CD practices. As the complexity of software applications continues to rise, developers will increasingly rely on automated testing to ensure the quality and reliability of their applications.

The Express Scripts Strategic Development Inc invention works as follows

The computer system includes both a test execution and analysis module. The analysis module outputs a set actions if the state is not satisfying the criteria. In response to an output of a set of action, the test execution module can be configured to: execute a set of the actions; update test data and update test distance. The test execution module can also be configured to: (i) store the test data and test distance in a collection completed tests in response to an output of the success indicator and (ii), determine the shortest path towards the goal using the UI.

Background for A method and system for testing an interface programmatically

At the moment, companies and other entities offer their customers many ways to get information. For example, they can check on the status of an ordered placed by a customer. To obtain information, the customer can call the company. The customer can also access the company’s web page to get the information. To access information, the customer may have to navigate an application’s user interface (UI). For example, a customer might need to login to a web-based application using a username/password before they can access the information. Customers may not be able to navigate the UI properly, for example, log in to a web application and navigate directly to the relevant screen. They may then choose to call the company.

The background description is provided here for the purpose to generally present the context of disclosure. The work of the currently named inventors is not expressly or implicitly admitted as prior artwork against the disclosure to the extent that it is described here.

A computer system for testing an interface (UI), is disclosed. The computer system has a module for creating tests that is configured to get testing parameters. The test parameters include: (i) the location from which the UI is accessible and (ii), criteria for an associated goal. The computer system includes a test-execution module that is configured to: (i) determine a state for the UI based upon the location, and (ii), set a position within the UI to a predetermined place. The system also includes an analysis module configured (i) to analyze a selected state of UI; (ii), in response to determining whether the specified state satisfies criteria for goal, output a successful indicator; and (iii), in response to determining whether the designated states does not meet criteria for goal, determine a list of possible actions based upon UI elements in the designated states and set the result to the list of possible action. The test execution module receives the output of the analysis module after receiving a state for the UI from the analysis. In response to receiving the output as a set of actions, the test execution module can also be configured to: execute the selected actions; select an action that is associated with a UI element of the first UI; identify a position of the first UI; update a distance based (i), coordinates for the point and coordinates for the current position; and set the position to the position. The test execution module can also be configured to: (i) store the test data and distance in a collection based on completed tests in response to the output of the success indicator; and (ii), determine a shortest route to the goal UI based upon the completed tests.

In Other Features, the testing parameter includes a number permitted tests. The test execution module can be configured to increment the counter when the output is a success indicator. The shortest path is determined by selecting the completed test with the shortest distance from the collection of tests that have been completed.

In other features, the closest point to the position is the point. Updating the test distance involves (i) determining a difference between the coordinates for the position and those of the point. (ii), adding the determined distance into the test distance.

The analysis module can also be configured to determine for each action from the set possible actions a probability of achieving the goal, and then store that probability in the list of possible action. The set of actions includes the probabilities that are stored within the set.

The computer system further includes a module for operating a plurality neural networks. The analysis module can be configured to use only one of the plurality neural networks in order to determine whether the action performed will lead to the desired result.

In further features, the plurality neural networks include at least one long-short-term memory neural net and a convolutional network.

The computer system also includes a module for training, which is configured to: train a plurality neural networks with the test data, determine the performance of a plurality neural networks based on probabilities stored in a collection of completed tests, and, if the value of performance of a plurality neural networks following training exceeds a predetermined threshold, set the status of a plurality neural networks to be trained.

The computer system also includes a Monte Carlo Module that performs a Monte Carlo Simulation to generate a randomly generated value, and a Reweighting Module configured to: (i) update each probability in the test dataset based on the output of atleast one neural network from the plurality neural networks, and (ii), update each probability in the data set with a Monte Carlo generated random value in response the the status for the plurality neural networks not being training.

A method of testing an interface for users (UI) has been disclosed. The method involves obtaining test parameters. The testing parameters are (i) the location where the UI is accessible and (ii), criteria for the goal that’s associated with the interface. The method includes: obtaining a UI state based on the location, setting a position to a predetermined place within the UI, analyzing a specified state of UI, and if the state is determined to satisfy the criteria of the goal setting an output as a success indicator. If the state is determined to not meet the criteria of the goal (i) determining a list of possible actions based upon UI elements in the designated states and (ii), setting the output the list of possible action. In response to an output of a set of actions, the method includes: selecting an associated action with a first UI component from the set; executing the selected actions; identifying a position of the first UI component; updating a distance test based on coordinates (i), coordinates (ii), and coordinates (iii), of the current location; setting the position to the position; and supplementing test data with the (i) selected action and the (ii). The method includes (i) storing test data and test distance in a collection completed tests in response to an output of the success indicator and (ii), determining a shortest route to the goal based on a collection completed tests based upon the output of the success indicator.

In addition, the parameters of testing include a list of tests that are permitted.” The method involves incrementing a counter when the output is the success indicator. When a counter value is greater or equal to the permitted number of tests, determining the shortest path involves selecting the completed test with the shortest distance from the collection of tests that have been completed.

In yet other features the point is the closest point of the first UI component to the current location. Update the test distance by (i) determining the distance between the coordinates for the current position and those of the point, and (ii), adding that distance to the existing test distance.

The method also includes, in other features, determining for each action within the set, a probability of achieving the goal by performing the action and (ii), storing that probability in the list of possible action. The method of selecting an action from a set of actions can include selecting the action based on the probabilities that are stored in the list of actions.

The method further includes: if the output is the success indicator, training a plurality neural networks with the test data, determining the performance of a plurality neural networks based on probabilities stored in a collection of completed tests, and setting a status for the plurality neural networks that are to be trained if the value of performance of a plurality neural networks following training exceeds a predetermined level.

The method also includes updating each probability in the test dataset based on the output of one neural network from the plurality. If the plurality is not being trained then each probability in the data will be updated with a random number.

A non-transitory medium that stores processor-executable instruction is disclosed. Instructions include obtaining test parameters. The parameters for testing include (i), a location where a user interface can be accessed, and (ii), criteria for a specific goal that is associated with the UI. The instructions include: obtaining a UI state based upon the location, setting a position to a preset location within the UI, analyzing a specified state of UI, and if the state is determined to satisfy the goal criteria, setting output to a success indication. If the state is not determined to meet the goal criteria, determining a list of possible actions based upon UI elements in the designated states, and setting output to that set. In response to an output of a set of actions, the instructions include: selecting a set of actions associated with a UI element in the set; executing that selected action; identifying a UI point; updating a distance test based on coordinates for the point and coordinates for the current location; setting the position to the point; supplementing test data by (i), the selected actions and (ii), the set possible actions. The instructions include also (i) storing the data and test distance in a collection based on completed tests in response to an output of the success indicator.

In addition to the permitted tests, other features are included in the testing parameters. In the instructions, the counter is incremented when the output is the success indicator. When a counter value is greater or equal to the permitted number of tests, determining the shortest path involves selecting the completed test with the shortest distance from the collection of tests that have been completed.

In yet other features the point is the closest point of the first UI component to the current location. Update the test distance by (i) determining the distance between the coordinates for the current position and those of the point, and (ii), adding that distance to the existing test distance.

The instructions also include storing the probability determined for each action within the set possible actions. The set of actions includes a set of probabilities that can be used to select the action.

The instructions further include: if the output is the success indicator, training a plurality neural networks with the test data, determining the performance of a plurality neural networks based on probabilities stored in a collection of completed tests, and setting a status for the plurality neural networks that are to be trained if the value of performance of a plurality neural networks following training exceeds a predetermined level.

Click here to view the patent on Google Patents.