A method for evaluating non-optimal roaming of a client device in a communication network is presented. The method includes detecting a transition of the client device from a first access point to a second access point and evaluating at least one performance parameter corresponding to each of the first access point and the second access point after the client device transitions from the first access point to the second access point. Further, the method includes determining a number of one of flip-flop events and undesirable roam events based on the evaluation of the at least one performance parameter. Also, the method includes identifying the non-optimal roaming of the client device based on one of the number of flip-flop events and the number of the undesirable roam events. Furthermore, the method includes modifying at least one roaming algorithm to achieve optimal roaming of the client device in the communication network.