Monday 22 April 2013

Job Description of a Software Tester


Intro

A software tester is an information technology (IT) professional. She is hired to use and test software for the purpose of locating and eliminating bugs in the product. Performing specific tests, she examines all aspects of a product from an end-user's perspective. She may be employed as a staff member of an organization, or work as an independent contractor on a project basis.

Job Responsibilities

A software tester participates in an initial consultation with his internal or external client, for the purpose of understanding the scope of a project. Either independently or in a group setting, he creates a testing plan based on the parameters outlined during the client consultation. The tester actively uses the software that he is testing, using every function and tool, searching for results regarding performance, reliability, bugs and any other failures. Detailed metrics are recorded and monitored to track the progress and outcomes of the testing process. Testing status is communicated either verbally or in writing to his manager or directly to the client. At the conclusion of testing, he may make recommendations, debug failures and perform other tasks required by his client.

Job Opportunities

A candidate may find employment as a software tester through the use of a variety of methods. If she is midcareer, professional staffing agencies that focus on the placement of information technology professionals can be the key to landing a new job opportunity. Additionally, niche online job boards such as Dice.com offer postings specific to the IT industry. Traditional wanted advertisements within the classified sections of newspapers are also useful. Additionally, if she wants to work for a specific company, she may approach the organization's human resources department directly. Membership in a professional organization such as the Association for Software Testing may also provide valuable leads to those seeking employment.

Qualitative Requirements

First and foremost, a software tester must have a deep understanding of computer programming. He must also possess a strong interest in technology and its advancement. Interpersonally, he must be able to immediately gain credibility with the programmers that he is working with, by being an effective and tactful oral communicator, remaining ethical and honest and understanding the application he is testing. He must also be able to speak in layman's terms to any nontechnical colleagues or clients. An astute sensitivity to detail is required, noticing not only what is there but also what it not. Additionally, candidates possessing a high level of customer service and a drive to perform exceptional work tend to succeed within this role.

Educational Requirements

As with many information technology jobs, a four-year degree is not mandatory to obtain employment as a software tester. Most important, candidates should be experienced in using various computer languages and platforms such as C++ and Java. These skills may be obtained by enrolling in a computer science program offered by a junior college, the completion of which entitles the graduate to receive an associate degree. Alternately, many candidates choose to pursue a formal information technology program administered by a proprietary school. Graduates from programs such as these receive a formal certificate of completion. Additionally, formal certification as a software tester is available through the Quality Assurance Institute.

What Is Software Testing


The software development life-cycle contains a series of steps, including testing. The testing phase of software development includes system validation, user acceptance testing, and test case review and approval. Design mistakes comprise the majority of bugs found in software. When found, bugs move through additional development and testing phases.

Purpose
Ensuring that the product or application meets the needs of the user with minimal problems is the purpose of software testing. Software testing, also called quality assurance, maintains congruity with the original business requirement and design specifications. Software testers also validate the software to ensure a lack of design flaws or development errors. This form of testing guarantees the software works in different circumstances. Software designers outline these circumstances during the design phase in the form of use cases and test cases.

Bugs
Software development generates bugs. Problems in the requirements document or the existence of development errors both contribute to bugs within software. When a tester finds a bug, he logs a defect, which a developer corrects. The bug then goes through another phase of testing. Bugs can cost companies money if not caught during software development. Testers or developers find bugs. Companies often utilize bug-seeking software to communicate bugs to the testers and developers working on them. This software often identifies not only the bug but also the functional component the bug affects.

Methods
Validation testing of the requirements uses the original specifications to test the functionality of the product. Testers conduct this form of testing by comparing the software to a requirements document. Testers enter actions into software to mimic the specification and validate the result of the action. Testers create test cases to conduct a different method of software testing. The test cases contain scenarios for the tester to use when validating the software. Another method, which tests how well the software performs under different levels of usage or data loading, provides testers with an overview of how well the software will perform for various users.

Automation
When companies experience a shortage of testers, some implement an automation process. This process reduces test time and labor requirements. Automation processes can generate testing scripts through analyzing the software requirements documentation. Due to the need for information gathering, software automation still requires a live tester to operate properly. Each automation test contains multiple test scripts for different components within the software. The automation program communicates bugs or defects found during the automation process.

User Acceptance Testing
When developing software for a set of users, companies utilize user acceptance testing. This form of testing allows users to test the software's functionality. This testing process allows users to identify bugs and communicate them to the development team or a software product manager. The product manager usually outlines the testing process for the users that serves as instructions during the testing phase. If bugs exists, the development team corrects the bugs and notifies the users who reported them to the product manager. The notification completes the user acceptance testing cycle.

Source: http://www.ehow.com/about_6383969_software-cycle-_amp_-bug-tracking_.html