1. A computer implemented method for evaluation of a software application comprising: simulating input data for the software application; generating data structures from the input data based on application logic of the software application, wherein evaluation snapshots for the software application are derived for the generated data structures; determining patterns of the generated data structures in the evaluation snapshots, the patterns indicating dependencies between the generated data structures and the input data, wherein determining the patterns further comprises: determining a graph including a set of the evaluation snapshots that do not coincide with one another; receiving a software application evaluation snapshot; executing a program step of the software application; collecting a resulting evaluation snapshot from the execution of the program step; mapping the resulting evaluation snapshot to an existing snapshot from the set of the evaluation snapshots to determine whether an execution breakpoint, changed variable, and input patterns of the input data related to the resulting evaluation snapshot coincide with an execution breakpoint, changed variable, and input patterns of input data related to the existing snapshot from the set of the evaluation snapshots; and adding the resulting evaluation snapshot to the set of the evaluation snapshots when the resulting evaluation snapshot does not coincide with the existing snapshot from the set of evaluation snapshots; and evaluating the patterns based on predefined rules.