1. A method comprising: for each binary file out of a set of binary files: determining dependency information about the binary file comprising entry and exit points for the binary file; recording indications of the entry and exit points in a record for the binary file; propagating dependency information about the set of binary files to determine subsystem dependency information for one or more subsystems which contain binary files out of the set of binary files by: generating pairs of entry and exit points for binary files which are dependent on one another; and determining subsystem dependency information comprising entry and exit points for the one or more subsystems based on the generated pairs of entry and exit points for the set of binary files; propagating the subsystem dependency information to determine system dependency information by: generating pairs of entry and exit points for subsystems in the system; and determining system dependency information comprising entry and exit points for the system based on the generated pairs of entry and exit points for subsystems in the system; marking changed logical abstractions in one or more changed binary files; marking unchanged logical abstractions which are in one or more unchanged binary files, the unchanged logical abstractions being dependent on marked changed logical abstractions in the one or more changed binary files; comparing test coverage to marked changed logical abstractions and to marked unchanged logical abstractions; prioritizing tests based on maximum test coverage of marked changed logical abstractions and marked unchanged logical abstractions; and performing the prioritized tests according to test priorities to produce test results.