A testing-optimization subsystem incorporated within an automated application-release-management system, the testing optimization subsystem implemented as computer instructions stored in one or more computer systems each including one or more processors, that when executed, control the one or more computer systems to perform stages for determining a subset of a set of tests needed to verify a system built from source code that has been modified, the stages comprising:
- receiving a list of modified routines and functions and a set of indications of tests in the set of tests in response to a source-code check-in of the system;
- initializing a test-indication accumulator set;
- performing, for each modified routine and function, stages including:
- locating a node in a nodes data structure,
- determining indications of node-associated tests, listed in the node, that invoke the modified routine or function represented by the node, and
- determining a subset of the indications of node-associated tests that are not already members of the test-indication accumulator and adding the determined subset of indications of node-associated tests to the test-indication accumulator;
- and
- returning the test-indication accumulator to the automated application-release-management system to cause the automated application-release-management system to execute tests indicated in the test-indication accumulator to test and verify the system,
- wherein the nodes data structure is processed from a trace-information data structure that includes an array of indexed entries that store entry and exit messages respectively produced by executing each modified routine or function and each unmodified routine or function executed as a result of an application of each test in the set of tests to the system, and
- wherein the nodes data structure defines a node-based representation of an execution-trace tree for the system and is configured to be implemented in the source-code check-in for the system.