1. A computer program product, comprising a computer-readable storage medium having logic code stored thereon, wherein the logic code, when executed on a computer, causes the computer to: execute a logic code under test on at least two runs; for each of the at least two runs, update an identifier of a first thread to comprise an operation identifier associated with a first operation, in response to determining that the first thread has performed the first operation, wherein the first thread is for the logic code under test; for each of the at least two runs, associate the identifier of the first thread with one or more resources accessed by the first thread during a first execution path; for each of the at least two runs, update an identifier of a second thread to comprise an operation identifier associated with a second operation, in response to determining that the second thread has performed the second operation, wherein the second thread is for the logic code under test; for each of the at least two runs, associate the identifier of the second thread with one or more resources accessed by the second thread during a second execution path, wherein the second execution path is different from the first execution path: and generate a synchronization coverage model by generating a relational data structure of said one or more resources; and, wherein: for at least the second of the at least two test runs, at least one of the first thread and the second thread accesses different resources than on a previous run; a common resource is associated with at least the identifier of the first thread and an identifier of the second thread indicating that the common resource was accessed by both the first thread and the second thread during the first execution path and the second execution path; a synchronization event in execution of the first thread and the second thread holding a lock on the common resource is recorded, when an analysis of the synchronization coverage model indicates that the second thread waited for the first thread before accessing said resource, but that the first thread did not wait for the second thread before accessing the common resource; and the computer-readable storage medium is not a transitory, propagating signal per se.