A review of non-destructive testing of composite materials