A method, system and product for predicting an outcome of a program based on input. The method comprising: obtaining an input to be used by a program prior to executing the program; predicting by, a machine learning module, a predicted outcome of the program based on the input; wherein the predicted outcome is selected from the group consisting of: a pass outcome and a fail outcome, wherein the pass outcome is the program executing without failing when using the input, and wherein the fail outcome is the program failing when using the input.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A computer-implemented method, comprising: obtaining an input to be used by a program prior to executing the program; predicting by, a machine learning module, a predicted outcome of the program based on the input, wherein said predicting is performed by a processor; wherein the predicted outcome is selected from the group consisting of: a pass outcome and a fail outcome, wherein the pass outcome is the program executing without failing when using the input, and wherein the fail outcome is the program failing when using the input. 2. The computer-implemented method of claim 1 further comprising: executing the program; determining an execution outcome of the program, wherein the execution outcome is selected from the group consisting of: the pass outcome and the fail outcome, wherein the execution outcome is different from the predicted outcome; and updating the machine learning module, wherein said updating is based on the input and the execution outcome. 3. The computer-implemented method of claim 2, wherein the machine learning module comprises a data repository configured to store inputs and an associated outcome for each input, wherein said updating the machine learning module comprises substituting the predicted outcome with the executed outcome in the data repository. 4. The computer-implemented method of claim 1, wherein the predicted outcome is the fail outcome, the method further comprises outputting the fail outcome. 5. The computer-implemented method of claim 4, wherein the input comprises a vector of attributes, wherein said outputting is outputting a subset of the attributes, wherein the subset is indicative of a cause of the fail outcome. 6. The computer-implemented method of claim 4, wherein said outputting is outputting to a developer of the program. 7. The computer-implemented method of claim 4, wherein said outputting is outputting to a user executing the program, the method further comprises executing the program in response to an instruction from the user. 8. The computer-implemented method of claim 1, wherein the predicted outcome is the fail outcome, the method further comprises avoiding executing the program in view of said predicting. 9. The computer-implemented method of claim 1, wherein the machine learning module is trained based on past execution outcomes. 10. A computerized apparatus having a processor, the processor being adapted to perform the steps of: obtaining an input to be used by a program prior to executing the program; predicting by, a machine learning module, a predicted outcome of the program based on the input, wherein the predicted outcome is selected from the group consisting of: a pass outcome and a fail outcome, wherein the pass outcome is the program executing without failing when using the input, and wherein the fail outcome is the program failing when using the input. 11. The computerized apparatus of claim 10, wherein the processor is further adapted to perform the steps of: executing the program: determining an execution outcome of the program, wherein the execution outcome is selected from the group consisting of: the pass outcome and the fail outcome, wherein the execution outcome is different from the predicted outcome; and updating the machine learning module, wherein said updating is based on the input and the execution outcome. 12. The computerized apparatus of claim 11, wherein the machine learning module comprises a data repository configured to store inputs and an associated outcome for each input, wherein said updating the machine learning module comprises substituting the predicted outcome with the executed outcome in the data repository. 13. The computerized apparatus of claim 10, wherein the predicted outcome is the fail outcome, wherein the processor is further adapted to perform the step of outputting the fail outcome. 14. The computerized apparatus of claim 13, wherein the input comprises a vector of attributes, wherein said outputting is outputting a subset of the attributes, wherein the subset is indicative of a cause of the fail outcome. 15. The computerized apparatus of claim 13, wherein said outputting is outputting to a developer of the program. 16. The computerized apparatus of claim 13, wherein said outputting is outputting to a user executing the program, wherein the processor is further adapted to perform the step of executing the program in response to an instruction from the user. 17. The computerized apparatus of claim 10, wherein the predicted outcome is the fail outcome, wherein the processor is further adapted to perform the step of avoiding executing the program in view of said predicting. 18. The computerized apparatus of claim 10, wherein the machine learning module is trained based on past execution outcomes. 19. A computer program product comprising a computer readable storage medium retaining program instructions, which program instructions when read by a processor, cause the processor to perform a method comprising: obtaining an input to be used by a program prior to executing the program; predicting by, a machine learning module, a predicted outcome of the program based on the input, wherein the predicted outcome is selected from the group consisting of: a pass outcome and a fail outcome, wherein the pass outcome is the program executing without failing when using the input, and wherein the fail outcome is the program failing when using the input.