Testing starts once the coding stage has competed it is tested against the specifications to make sure that the system works as it should. All types of functional testing which include unit testing, integration testing, system testing, and acceptance testing are done.
Once the customer receives the working system they will do the beta testing. If any bugs are caught or if the system require changes it will be changed at this point before releasing the system to the general public.