It all starts from the phase of Initialization. With lot of meetings from morning to evening with business users and developer leads and project managers, we the testers normally keep quite in the meetings and listen to what they will be quarreling about.
After few days one efficient person makes some documentation which is the out come of the meetings so far. This we normally called as Initialization documents or in some firms it is also called high level design documentation. If the documentation is clear enough about the requirements with some pictorial diagram like use case diagram and flow charts then they treat it as functional specifications..
Then the developer or development lead take those documents and prepare in detail with more technical details explaining how to implement the task and how many sub applications / functions/ modules needed to finish this project.
Again after few more meetings with these technical specifications and initial documentation, many more suggestions are taken into consideration and based on that both the documents gets changed with different versions…
Once the technical specifications are done, then the QA lead takes the driving seat and prepares a strategy of testing based on the project and explains how to go with the testing and different types of testing such as unit testing(normally done by developers), functional testing, regression and performance testing etc… and also what time frame is needed and how many resources required will be mentioned in the test strategy.
Once this is approved then actual development starts and testing also starts parallel to the development in order to make sure the development process is going smooth. This intermediate testing avoids any final disasters which some times include scrapping the project by the client.
During this development phase, a tester will have less pressure because the developers play major role in this phase. Once the development is completed 90% then pressure on tester will increase to an extent where he needs to do all kind of testings and performance testing plays major role if the application is a consumer based application with huge traffic to the application.
So in this entire process, what is the ultimate goal of a tester? the answer is to make sure the application process smoothly with out any bugs/defects.