I have developed a single Server/multiple Clients udp application, where Server can handle x number of clients at a time. The Server has x number of threads each thread dedicated to one Client.
The code works perfectly fine. Now I want to check my application for all possible scenarios i.e. validate my application. For this purpose, I need to design a test best.
Initial Design: The test bed I initially designed has following functionalities:
(i). The Server GUI has a button on it. When the button is clicked, the each thread in the Server reads a text file, picks up few bytes of the text file, and sends those chunks to its respective clients. The thread then picks next chunk of bytes from the text file, sends those chunks to the client and so on until EOF is found.
(ii). The Client on the other side keep receiving these chunks of bytes, creates a text file, and keeps storing these chunks of bytes in its text file.
(iii). When EOF from Server is received, the Client starts sending the completely received text file back to the Server over its Socket.
(iv). When the file is completely received back (echoed), the Server then compares the two text files, the Sent file and the echoed one. If both files are same, the communication process has occurred without any fault and the communication protocol is validated.
The above mentioned validation technique (sending the text file, receiving the echoed file and then comparing both) checks the following things:
1. The number of bytes sent = number of bytes receieved.
2. No data is corrupted.
3. The data is receieved in proper order.
If any of the above mentioned three conditions is not fulfilled, that means that there is some error in communication.
Now I have been asked to make changes to this test bead and add more functionlities to it. Does the procedure that I am using actually can check above mentioned 3 conditions in all scenarios?
Are there some other conditions that must be checked besides above mentioned 3 conditions.
What could be other methods of checking communication protocol except the one I desgined i.e. Sending a text file and getting it echoed and then comparing.
I have to implement more functionlities to his test bed for making validation system more efficient or completely replece the above test bed with some better option.
Please help me with your suggestions.
Thanks in advane :)