Software testing approach that is concisely described as simultaneous learning, test design and test execution