1. A method performed by a computing device configured with a test tool for generating test data to test a software component, the method comprising: receiving structured/formatted data, the structured data conforming to a format or schema of valid inputs that the software component is able to parse and process; selecting a discrete part of the structured/formatted data for fuzzing and identifying a particular encoding algorithm with which the structured/formatted data has been encoded; based on the identified particular encoding algorithm, selecting from among plural decoders a decoder corresponding to the encoding algorithm; decoding the discrete part of the structured/formatted data with the selected decoder; fuzzing at least a portion of the decoded discrete part of the structured/formatted data; selecting from among plural encoders an encoder corresponding to the particular encoding algorithm; encoding the decoded and fuzzed discrete part of the structured/formatted data; and passing to the software component being tested the structured/formatted data with the fuzzed part.