1. A method of testing a software program, the method comprising: a. receiving a textual input for testing the software program using at least one static type used by the software program, the textual input being pre-linked to the at least one static type; b. creating a dynamic type based on the textual input in a dynamically typed language; and c. executing the software program using the dynamic type as input, wherein executing the software program using the dynamic type invokes the at least one static type used by the software program.