Photovoltaic (PV) system output electricity is related to PV cells' conditions, with the PV faults decreasing the efficiency of the PV system and even causing a possible source of fire. In industrial production, PV fault detection is typically laborious manual work. In this paper, we present a method that can automatically detect PV faults. Based on the observation that different faults will have different impacts on a PV system, we propose a method that systematically and iteratively reconfigures the PV array until the faults are located based on the specific current-voltage (I-V) curve of the (sub-)array. Our method can detect several main types of faults including open-circuit faults, mismatch faults, short circuit faults, etc. We evaluate our methods by Matlab/Simulink-based simulation. The results show that the proposed methods can accurately detect and classify the different faults occurring in a PV system.