The main purpose of this paper is to present a new formal definition that can be used for modeling functional test. Initially, WorkFlow nets are used to represent the main functional requirement of the software. Next, Object WorkFlow nets derived from WorkFlow nets and object Petri nets are used to formally specify the test models of object oriented software functionalities to be used. In particular, the proposed models allow for the addition of complex data structure specifications as well as complex control specifications. The dynamic execution of functional testing models, when considering a specific software architecture, is given by the instantiation of a testing class associated with the tested functionality. An example of execution of functional testing corresponding to the "Withdrawal Operation" of a bank ATM machine is presented, as well as a comparative study based on a more traditional UML modeling approach.