1. A computer program product disposed on a non-transitory computer-usable medium for testing a transactional software application interacting with a database structure, the software application including a plurality of application units adapted to be executed at least in part concurrently, the computer program product comprising: computer program instructions for executing the software application, wherein executing the software application comprises executing a plurality of transaction operations on the database structure by a plurality of respective invocations of a database management system of the database structure by the respective plurality of application units; computer program instructions for determining locks being applied by the database management system on elements of the database structure for each transaction operation executed by each application unit individually; and computer program instructions for identifying potential deadlock conditions of the software application in possible successions of application of the locks according to possible interleaving of the application units, identifying the potential deadlock conditions facilitated by analyzing a lock tree of the software application, the analyzing the lock tree comprising: computer program instructions for constructing one or more formal expressions; computer program instructions for determining whether the formal expressions are true or false; and computer program instructions for finding an assignment of one or more variables of the one or more formal expressions to determine the successions of application of the locks causing the deadlock conditions; and computer program instructions for utilizing a theorem prover, the theorem prover is configured to provide a variable assignment that defines a wrong execution path of the operations leading to the deadlock conditions.