Which software testing technique derives test cases by identifying equivalence classes of input data that the program treats the same way?