A processing system configured to perform software test breakage detection, the processing system comprising: a processing module including one or more processors: a memory module configured to store data and instructions for execution by the one or more processors of the processing module, the memory module being configured to maintain a representation of recent test history for each combination of a test and build flags with which the test was built, wherein the recent test history includes both presubmit results of presubmit tests for pending changes and postsubmit results of postsubmit tests for submitted changes, wherein each presubmit result and each postsubmit result is associated with a change list identifier, and wherein each change list identifier is associated with a submitted change; and a communication module configured for communication with one or more remote devices including a test automation platform server; wherein the processing module is operatively coupled to the memory module and the communication module, and the processing module is configured to: receive at least one of a new postsubmit result or a new presubmit result from the test automation platform server; insert the least one of the new postsubmit result or the new presubmit result into the recent test history; evaluate the recent test history according to the inserted at least one of the new postsubmit result or the new presubmit result to determine a cause of a breakage of the test by: determining a range between a last postsubmit result having a passed state and a first postsubmit result having a failed or broken state; and shrinking the range from the last postubmit having a passed state to a first presubmit having a failed or broken state; and in response to the evaluation, instruct a test automation platform rescheduler to reschedule the test for a set of change list identifiers associated with the range. a memory module configured to store data and instructions for execution by the one or more processors of the processing module, the memory module being configured to maintain a representation of recent test history for each combination of a test and build flags with which the test was built, wherein the recent test history includes both presubmit results of presubmit tests for pending changes and postsubmit results of postsubmit tests for submitted changes, wherein each presubmit result and each postsubmit result is associated with a change list identifier, and wherein each change list identifier is associated with a submitted change; and a communication module configured for communication with one or more remote devices including a test automation platform server; wherein the processing module is operatively coupled to the memory module and the communication module, and the processing module is configured to: receive at least one of a new postsubmit result or a new presubmit result from the test automation platform server; insert the least one of the new postsubmit result or the new presubmit result into the recent test history; evaluate the recent test history according to the inserted at least one of the new postsubmit result or the new presubmit result to determine a cause of a breakage of the test by: determining a range between a last postsubmit result having a passed state and a first postsubmit result having a failed or broken state; and shrinking the range from the last postubmit having a passed state to a first presubmit having a failed or broken state; and in response to the evaluation, instruct a test automation platform rescheduler to reschedule the test for a set of change list identifiers associated with the range. receive at least one of a new postsubmit result or a new presubmit result from the test automation platform server; insert the least one of the new postsubmit result or the new presubmit result into the recent test history; evaluate the recent test history according to the inserted at least one of the new postsubmit result or the new presubmit result to determine a cause of a breakage of the test by: determining a range between a last postsubmit result having a passed state and a first postsubmit result having a failed or broken state; and shrinking the range from the last postubmit having a passed state to a first presubmit having a failed or broken state; and determining a range between a last postsubmit result having a passed state and a first postsubmit result having a failed or broken state; and shrinking the range from the last postubmit having a passed state to a first presubmit having a failed or broken state; and in response to the evaluation, instruct a test automation platform rescheduler to reschedule the test for a set of change list identifiers associated with the range.