A comparative study of data flow testing techniques