Root Cause Analysis (RCA) is an approach used in software testing to identify the root causes of defects or problems and address them instead of treating the symptoms. It’s a process that grew out of accident investigations to become a standard feature of hardware engineering. If something is broken, instead of just fixing it at the point of discovery, let’s investigate and try to fix the underlying cause at the point of origin. This principle is applicable for software development and software testing, so much so, that it could have been developed to deal with software defects.