In the past, the notion of fitness landscapes has found widespread adoption. Many different methods have been developed that provide a general and abstract framework applicable to any optimization problem. We formally define fitness landscapes, provide an in-depth look at basic properties and give detailed explanations and examples of existing fitness landscape analysis techniques. Moreover, several common test problems or model fitness landscapes that are frequently used to benchmark algorithms or analysis methods are examined and explained and previous results are consolidated and summarized. Finally, we point out current limitations and open problems pertaining to the subject of fitness landscape analysis.