A testing automation platform for scheduling and/or rescheduling tests for execution in a continuous integration environment, the continuous integration environment including a code repository and at least one continuous integration server that periodically generates software builds based on committed code changes, executes queued tests on the generated builds, and reports results to developers, the testing automation platform comprising a test scheduler server, at least one micro-scheduler server (135, 136, 137) and a micro-scheduler service, wherein: the test scheduler server is configured to identify and queue tests to be run on a build based on code changes committed to the code repository; the at least one micro-scheduler server is configured to: listen to at least one information stream from the continuous integration environment; analyze information received from the at least one stream based on predefined rules designed to achieve an assigned goal; identify one or more target tests based on the analysis; assign respective priorities to the identified one or more target tests based on the at least one micro-scheduler server's assigned goal; create test execution requests for the prioritized target tests; and provide the test execution requests to the micro-scheduler service; and the micro-scheduler service is configured to: receive the test execution requests from the at least one micro-scheduler server; select which tests to queue for execution based on available resources of the at least one continuous integration server or the test scheduler server, the assigned priorities, and the received test execution requests; and remove test execution requests having lowest priority if the at least one micro-scheduler server exceeds a number of requests that a handler of the micro-scheduler service is able to grant within a maximum expiration period. the test scheduler server is configured to identify and queue tests to be run on a build based on code changes committed to the code repository; the at least one micro-scheduler server is configured to: listen to at least one information stream from the continuous integration environment; analyze information received from the at least one stream based on predefined rules designed to achieve an assigned goal; identify one or more target tests based on the analysis; assign respective priorities to the identified one or more target tests based on the at least one micro-scheduler server's assigned goal; create test execution requests for the prioritized target tests; and provide the test execution requests to the micro-scheduler service; and the micro-scheduler service is configured to: receive the test execution requests from the at least one micro-scheduler server; select which tests to queue for execution based on available resources of the at least one continuous integration server or the test scheduler server, the assigned priorities, and the received test execution requests; and remove test execution requests having lowest priority if the at least one micro-scheduler server exceeds a number of requests that a handler of the micro-scheduler service is able to grant within a maximum expiration period. listen to at least one information stream from the continuous integration environment; analyze information received from the at least one stream based on predefined rules designed to achieve an assigned goal; identify one or more target tests based on the analysis; assign respective priorities to the identified one or more target tests based on the at least one micro-scheduler server's assigned goal; create test execution requests for the prioritized target tests; and provide the test execution requests to the micro-scheduler service; and the micro-scheduler service is configured to: receive the test execution requests from the at least one micro-scheduler server; select which tests to queue for execution based on available resources of the at least one continuous integration server or the test scheduler server, the assigned priorities, and the received test execution requests; and remove test execution requests having lowest priority if the at least one micro-scheduler server exceeds a number of requests that a handler of the micro-scheduler service is able to grant within a maximum expiration period. receive the test execution requests from the at least one micro-scheduler server; select which tests to queue for execution based on available resources of the at least one continuous integration server or the test scheduler server, the assigned priorities, and the received test execution requests; and remove test execution requests having lowest priority if the at least one micro-scheduler server exceeds a number of requests that a handler of the micro-scheduler service is able to grant within a maximum expiration period.