1. A computer-implemented process for automatically learning problem signatures for an application using trace data from good executions and bad executions of the application, comprising: (a) extracting feature sets from the trace data of the executions of the application and assigning a coarse label of good to each feature set for good executions of the application and a coarse label of bad to each feature set for bad executions of the application; (b) inputting the coarsely labeled feature sets for the trace data into a decision tree classifier and attempting to build a decision tree comprising categorized problem signatures each identifying a type of problem with the application from trace data for bad executions of the application, wherein each type of problem is not predefined; (c) if the decision tree classifier yields a decision tree, finding all problem leaf nodes corresponding to bad executions in the decision tree; (d) for each problem leaf node in the decision tree finding all feature sets and their corresponding values in the path from root to each problem leaf node, (e) creating a new data set for each problem leaf node, consisting of all BAD feature sets that contributed to the problem leaf node, and all GOOD feature sets; (f) for all of these feature sets in the created new data set, removing these feature sets on the path from the root to each problem leaf node; (g) repeating (b) through (f) to form an aggregate tree until the decision tree classifier does not yield a decision tree; and (h) identifying each the remaining feature sets on each path from root to leaf node of the aggregate tree as a problem signature; and (i) outputting the identified problem signatures to be used for identifying problems with the execution of the application.