The objective of functional testing of a EUT is to ascertain if the behavior of the EUT is as intended. Behavior of an entity is about obeying some rules. These rules are really the specification. So to test a functionality of any EUT, we need to first understand the intended rules and then create the scenarios that are really various behaviors by combining the rules in different ways and then check the outcomes.
To understand the intended behavior first describes what the EUT is supposed to do. Describe the behavior as a series of steps. Each step accepts/uses data and process the data according to some conditions. Examine each step and extract the conditions/rules hidden in the step. This technique of extracting conditions is called and “Descriptive to Prescriptive” approach. That is converting the descriptive specification to a prescriptive specification. “Describing” enables us to understand the behavior from first principles while “prescribing” helps us to validate the behavior.