A method of capturing and processing database commands executed against a database by one or more database servers of a production system, the method comprising: storing workload information including captured object identifiers, captured indications of whether the objects were read and/or written, and captured database commands, wherein the workload information may be processed to determine that a database object accessed when the production system executed a database command may have been previously modified when the production system previously executed one or more other database commands; after the workload information has been stored and before database commands from the workload information are replayed, determining, based at least in part on the stored workload information, that the second database command is considered to depend on the first database command by: determining that the second database command accessed a database object that was previously at least potentially modified by the first database command; wherein the database object is considered to have been previously at least potentially modified by the first database command if execution of the first database command caused the one or more database servers to obtain an exclusive lock on said database object; based at least in part on determining that the second database command is considered to depend on the first database command, storing, in a dependency graph, an entry for the second database command that specifies the first database command; wherein the dependency graph stores a plurality of entries, wherein each entry is for a separate database command, and wherein each entry specifies one or more other database commands from which the separate database command is considered to depend; replaying the captured and processed database commands on one or more database servers of a test system, wherein the captured and processed database commands are replayed in any order that satisfies the dependency graph; wherein said test system has a different hardware and/or software and/or configuration than said production system; and wherein said replaying is for determining, in preparation of upgrading the one or more database servers of the production system, whether the difference between the test system and the production system is a permissible difference. storing workload information including captured object identifiers, captured indications of whether the objects were read and/or written, and captured database commands, wherein the workload information may be processed to determine that a database object accessed when the production system executed a database command may have been previously modified when the production system previously executed one or more other database commands; after the workload information has been stored and before database commands from the workload information are replayed, determining, based at least in part on the stored workload information, that the second database command is considered to depend on the first database command by: determining that the second database command accessed a database object that was previously at least potentially modified by the first database command; wherein the database object is considered to have been previously at least potentially modified by the first database command if execution of the first database command caused the one or more database servers to obtain an exclusive lock on said database object; determining that the second database command accessed a database object that was previously at least potentially modified by the first database command; wherein the database object is considered to have been previously at least potentially modified by the first database command if execution of the first database command caused the one or more database servers to obtain an exclusive lock on said database object; based at least in part on determining that the second database command is considered to depend on the first database command, storing, in a dependency graph, an entry for the second database command that specifies the first database command; wherein the dependency graph stores a plurality of entries, wherein each entry is for a separate database command, and wherein each entry specifies one or more other database commands from which the separate database command is considered to depend; replaying the captured and processed database commands on one or more database servers of a test system, wherein the captured and processed database commands are replayed in any order that satisfies the dependency graph; wherein said test system has a different hardware and/or software and/or configuration than said production system; and wherein said replaying is for determining, in preparation of upgrading the one or more database servers of the production system, whether the difference between the test system and the production system is a permissible difference.