1. A method for analyzing defects associated with a software system, comprising: identifying one or more defects during testing of the software system; classifying each defect of the one or more defects into one of a plurality of classes of defects, wherein the plurality of classes of defects comprise data defects, environment defects, and code defects; storing descriptions of each defect of the one or more defects in a data structure, wherein the descriptions comprise the classification of the defect; and for each defect, analyzing the description of the defect stored in the data structure to determine a cause for the defect within one of the classes of defects, the analyzing comprising: determining a dominant class of defects, wherein the dominant class of defects comprises a majority of the defects; and analyzing the dominant class of defects to determine a cause for one or more of the defects within the dominant class of defects.