1. A computer-implemented method performed by a processor, the method comprising: based on a test generation input that defines a plurality of requirements automatically determining a mutated test generation input, wherein the mutated test generation input defining a mutated requirement which is absent from the test generation input, wherein the mutated requirement is based on a requirement of the plurality of requirements and contradicts, at least in part, the plurality of requirements, wherein the test generation input is a test template, and wherein the mutated test generation input is a mutated test template, wherein said automatically comprises performing a mutation on a requirement of the plurality of requirements to determine the mutated requirement, wherein the mutation is selected from a mutation of the group consisting of: a mutation on a control flow requirement defined by the test template; a mutation on a required instruction by the test template; and a mutation on micro-architectural mechanism defined by the test template; and generating one or more test-cases based on the mutated test generation input, whereby the one or more test-cases violate at least one requirement of the test generation input.