The disclosed subject matter provides for software testing using metaphor based language fuzzing. Metaphor based language fuzzing can decompose a code segment 102 into a metaphor 730 representing the code segment 102. The metaphor 730 can be mutated based on determined logical perturbations 460 to any element of the metaphor 730. The mutation 406 of the metaphor 730 can act as a surrogate for mutation of the code segment 102. The mutated metaphor 406 can be analyzed to reveal performance differences in comparison to the code segment 102. These performance differences can be correlated to mutation of the metaphor 730 such that a corresponding mutation of the code segment 102 can be correlated by extrapolation. Moreover, mutators 460 can be stored 560 and reused on other metaphors 730. Furthermore, employing a metaphor 730 as a root language surrogate can facilitate generating a reduced number of mutators 460 as compared to directly mutating code segments 102 in a plurality of computer languages.
展开▼