Software testing focuses on the success space - the requirements. Software testing rarely focuses on the failure space because the requirements don't usually focus on the failure space. The Software FMEA focuses on the failure space. It can be used to strengthen the requirements, design, code and test plan. Contrary to popular belief you can test the "shall nots" if the requirements, design, code, use cases, and test plans have been developed with full consideration of the "shall nots".
A software FMEA determines the software failure modes that are likely to cause failure events. Then it determines what single or multiple point failures could produce these top level events. Software FMEAs useful when designing or testing the error handling part of your software. Software FMEAs are also needed in order to develop inspection criteria for requirements, design, and code that are geared towards the appropriate failure modes. Design reviews are more effective when you know in advance the types of failure modes that are most likely.
The SFMEA can have up to 8 different viewpoints. Each viewpoint has applicable failure modes and root causes. There are hundreds of possible failure mode/root causes.
A software fault tree analysis (SFTA) is a top down analysis to determine the software faults and combination of software and hardware faults that can contribute to a top level hazard. Software fault tree analyses are useful when there is a known hazard and there is a need to identify where and how software can cause that hazard.