Tuesday, January 4, 2011

Career Guide: Tester

One of the most frequently asked questions about web application testing goes something along the lines of,

"I am interested in becoming a tester, but I don't know where to begin. There seems to be so many types of  software testing techniques, methodologies and tools, that I feel lost. How do all these testing methods relate to each other, which ones do I need to learn in order to be considered a serious professional, and which one should I learn first?"

However, there is no single answer to these types of questions and truly no unique set of testing techniques or tools which can address all requirements of a web application.

This article's focus is on those who are trying to make their first step into the IT industry and for beginners who wish to find the right guidelines (set of tools and techniques to master) to make a career out as tester in a web applications based company.

1. Software testing is an integral part of the Software Development Life Cycle (SDLC). Software testing is nothing but subjecting a piece of code to both, controlled as well as uncontrolled operating conditions, in an attempt to observe the output and examine whether it is in accordance with certain pre-specified conditions. Different sets of test cases and testing strategies are put in place, all of which aim at achieving one common goal - removing all the bugs and errors from the code and making the software error-free and capable enough of providing accurate and optimum outputs. So a sound knowledge in the following areas is a must for a tester.

  • Software Development Life Cycle (SDLC)
  • Software Testing Life Cycle  (STLC)

2. Knowledge of various  testing techniques which are adopted as part of the software testing process is the next topic one should master. Even though there are many, have enlisted a few of them which are commonly  followed in all project.

  • Functional testing
  • Integration testing
  • Regression testing
  • Smoke testing
  • Performance or Load testing

3. Relational databases are generally the preferred choice for storing application data. Relational Database Management Systems (RDBMS) help to organize, store, and retrieve the data in a very efficient manner. Since testing involves checking where the user entered data gets populated in the databases, clear understanding the basics of Relational Database Management Systems like Oracle (http://www.oracle.com/) or MYSQL (http://www.mysql.com/) and Structured Query Language SQL is essential.

4. The essence of novice tester is his ability to understand the functionality or the module that is about to tested and execute the test  cases and record their findings.

Mastering the above technologies, equips you with the required minimum skill sets but it doesn't mean you would be getting a job in IT Company simply.  Many people fail miserably in job interviews when it comes to presenting their strengths in right manner. So, work on your soft skills especially communication skill which will give you, an ability to express your ideas clearly and effectively.

Once the basic requirements are met one could add the following to move up the ladder.

5. The essence of a successful tester who  is his ability to understand user requirements (What is this application all about),  come out with various test scenarios followed by various positive and negative test cases.  Refer "Sample Test Case reference section"  at the end of this article for more details.

6. Version control is a critical aspect of any software project, and its importance should not be underestimated. Version control systems serve several key purposes. First of all, they allow you to safely store successive versions of your source code. In addition to providing a secure backup copy of the test cases and test scripts, this ensures you can step back to a stable version when things go drastically out of control. Version control systems also help team members to work simultaneously on a test cases or script without stepping on each other's toes. So understanding a Version Control System such as Subversion (subversion.tigris.org) or Visual SourceSafe (VSS)and its vital functions is helpful.

7. Bug tracking software is an essential tool that allows software testers to record and report meaningful and relevant information on bugs they have encountered during testing in a effective manner. These tools often results in improved collaboration between the testing and development teams and facilitates better deliveries with less struggle. So understanding of bug tracking tool like Bugzilla (http://www.bugzilla.org/) and the workflow model it supports becomes necessary for a person who wishes to play the role of tester.
Typical life of a bug and most of the Bug Tracking tools supports this workflow model.

Life of a BUG
8. Frequent testing is one of the practices growing in popularity in IT industry now. It provides a powerful approach for combating the inevitable continuous change of  inputs in software projects. But this simple mantra "regression testing" is much easily said than done. . Manual testing have long appeared before automation testing and therefore it is believed to be a reliable process when it comes to software testing. But regression testing are typically constrained by tight project schedules and there is never enough time for detailed evaluation of application multiple times. The software testing methods can be implemented in two ways - manually or by automation. Manual software testing is done by human software testers who manually i.e. physically check, test and report errors or bugs in the product or piece of code. In case of automated software testing, the same process is performed by a computer by means of an automated testing software such as WinRunner, LoadRunner, Test Director.

Nevertheless these are not the only tools or approaches used by all IT companies to test web application. Neither the only ones in the identified category. But this step by step approach provides a good starting point for the new entrants.


Reference: Sample Test Case:
Find below sample Functional and Integration Test Case based on the Figure1, 2 and 3.


Figure 1: Login Screen
Functional test cases for Login Screen:
Test case IDDescriptionExpected Result
FT_101Check the UI.Should have
- 2 text boxes with label as “Username:” and “Password:”
- A check box with label as “Stay signed in”.
- “Sign in” Button. 
FT_102Click the “Sign in” without user credentials.Label “Enter your email address.” should be displayed
below the “Username” textbox. 
FT_103Enter value in “Username” only and click the “Sign in”
button.
Label “The username or password you entered is incorrect.”
should be displayed below the “Password” textbox. 
FT_104Enter value in “Password” only and click the “Sign in”
button.
Label “The username or password you entered is incorrect.”
should be displayed below the “Password” textbox.
FT_105Enter the valid “username” and incorrect “password” and
click the “Sign in” button.
Label “The username or password you entered is incorrect.”
should be displayed below the “Password” textbox.
FT_106Enter the valid “username” and correct “password” and
click the “Sign in” button.
“Gmail:Inbox” screen should be displayed in the right
frame.

Figure 2: Gmail:Inbox Screen
Figure 3: Compose Screen


Functional test cases for Compose Screen:
Test case IDDescriptionExpected Result
FT_201Check the UI Screen should match with above screen shot.
FT_202Click the “Compose mail” button.A right frame should be displayed with 3 text fields –
“To”, “Subject” and text area field.
FT_203Without entering any value in any field click the “Send”
button.
Message “Error: Please specify at least one recipient.”
should be displayed.
FT_204Click the “OK” button in the above message.Message window should be closed.
FT_205Enter a valid email address and click the “Send” button.Message “Send this message without text in the body?” should be displayed.
FT_206Click the “Cancel” button in the above message.Message window should be closed.
FT_207Enter a valid email address, enter a text in the text area and click the “Send” button.Message “Send message without a subject?” should be displayed.
FT_208Click the “Cancel” button in the above message.Message window should be closed.
FT_209Enter a valid email address, enter a subject and enter a
text in the text area and click the “Send” button.
Message should be sent and “Inbox” should be displayed.
FT_210Click the “Sign out” button“Welcome to Gmail” should be displayed.

Integration Test cases:

Test case ID

Steps

Description

Expected Result
IT_001Step 1Open the http://www.gmail.com/
page in browser.
Login page should be displayed.

Step 2Login as valid user with incorrect password.Appropriate message indicating that the login action failed should be displayed.
IT_002Step 1Open the http://www.gmail.com/
page in browser.
Login page should be displayed.

Step 2Login as valid user with correct password.Home page should be displayed.

Step 3Click the “Compose Mail” button.Correct right frame should be displayed.

Step 4Enter valid data in all the fields and click the “Send” buttonMessage should be sent and Inbox should be displayed


Step 5Click the “Logout” button.User should be logged out and login page should be
displayed.
IT_003Step 1Open the http://www.gmail.com/
page in browser.
Login page should be displayed.

Step 2Login as valid user with correct password.Home page should be displayed.


Step 3Click the “Logout” button.User should be logged out and login page should be
displayed.