Shadows of moving objects may cause serious problems in many computer vision applications, including object tracking and object recognition. In common object detection systems, due to having similar characteristics, shadows can be easily misclassified as either part of moving objects or independent moving objects. To deal with the problem of misclassifying shadows as foreground, various methods have been introduced. This paper addresses the main problematic situations associated with shadows and provides a comprehensive performance comparison on up-todate methods that have been proposed to tackle these problems. The evaluation is carried out using benchmark datasets that have been selected and modified to suit the purpose. This survey suggests the ways of selecting shadow detection methods under different scenarios.