A Formal Model of the Software Test Process