Dynamically discovering likely program invariants to support program evolution | IEEE Journals & Magazine | IEEE Xplore