I know this sounds a big vague so I'll try and be as precise as I can be. I'm pretty new to programming. I wrote an application a year ago that all my coworkers use on a daily basis. Now I have added a basic peer to peer update function, with an ACL defined in a local host file. It have it working in a way that file a newer date within a certain number of hours is available from one of the other machines, it updates to the newer version. It uses a UDP beacon for comparison. It works.
Now that I have the first part done, how do I thoroughly test it and try to break it? I'm not sure what methodologies to use or even where to look. I realize that you could take this to the nth degree as far as security, but the app doesn't need much in the way of data security because it isn't mission critical. It is written in Java. I've read about JUnit but have no idea how or when to use it. I don't use any IDE's unless you consider emacs an IDE.
I guess this comes to a broader scale, how can you tell when you're done developing an application?