Non-destructive Testing (NDT) often involves analysing images to identify (rare) defects. We propose a method for locating and classifying abnormalities using Convolutional Neural Networks (CNNs). A particular problem is that it is often difficult to get large numbers of examples of images of defects, making training a classifier challenging. To address this problem we generate large numbers of synthetic images by combining real defects with different backgrounds. These images are used to train a U-Net style network to perform defect detection at the pixel level. We also demonstrate that the encoder of the network produces features which can be applied to the defect classification task at the image level. Both the defect detection and classification modules are tested on multiple small data sets. Our results show that these modules are able to fulfil the industrial component inspection task at the pixel level (locating defect regions) and image level (identifying if an image contains a defect).