good technical knowledge so they can take part in the development-related discussions. Mostly, I found that a Testing Engineer is a Developer plus many more. While a particular developer concentrate towards only one module (some part) of the application, on the other hand, a Tester knows overall functionality of the application. It is his/her skill to test the application from all angles, keeping end users in the mind. Let me take my example, I moved in the field of testing after having good development and teaching experience. In starting, I observed many times that there is a big gap between testing and the development team. Development team and the testing teams will not take part in each others meetings where they discuss the issues and the planning. The developer team thinks that the testers do not have the technical knowledge so it is simply wastage of time to have discussing any technical issue with the testing team. Do you think that the development team is right? I say, Yes if the Testing team does not have the technical knowledge and say No if the Testing Engineers are having a sound technical knowledge. As my background is J2EE, I was teaching this subject from couple of years. Before testing any J2EE application, first I see the code without knowing the functionality of the application. It helps me in understanding the logic of the code. At this level when the suggestions are given to the developers, they start appreciating my views and the gap between the development and the testing team starts narrowing down and finally we, together are ready to deliver the robust code to the client. So you, as the testing engineer, should understand the application well and have an out of box thinking during testing the application.
Let me discuss a generic Software Testing Life Cycle (STLC) which runs parallel with the Development Life Cycle (SDLC). In a common scenario, testing of any large application can be divided in two portions: (1) The Functionality portion, which is nothing but verification and validation against the Requirement Specification (RS) and the other (2) Performance evaluation against the client requirements.
Sometimes, I have seen that most of the people underestimate the testing activity and feels that it is required only at the end of the development life cycle. It is a wrong notion. Testing activity runs parallel to the development. When the development phase of application is in the Requirement Phase, STLC says that it is the right time for you to create and finalize the testing templates, Test Plan, Test Strategy, Performance Criteria of the application (if any given by client). Now when the development of an application moves to Design Phase, being a testing person, ensure that you develop the Test Cases to ensure that product which will be developed can be tested as per the RS Document (requirement Specification ). It is important to know that the main aim of the test case designing is to find the undiscovered errors in the application. Mostly we take two approaches in the mind for designing good test cases (a) Black box testing and (b) White box testing. Black box testing means that it is not important for you to know the internals of the code. Here you are checking the functionality checking like if you give any input, it is properly accepted and you receive the output. For example, if I click the submit button for registering myself for a particular forum, I get the proper acknowledgement page in return. On the other hand White box testing needs a good knowledge