Ultrasonic testing on a part includes scanning the part while performing pulse echo and through transmission ultrasonic testing on the part; converting pulse echo data into time of flight (TOF) and amplitude channels, and converting through transmission data into a data representation that identifies porosity. The testing further includes analyzing the pulse echo TOF to identify locations of any anomalies in the part, and using loss of back (LOB) at each of the identified locations to discriminate low porosity from other anomalies.