A tester must think from the point of view of a user to see if the software can accomplish the objectives for which it was created. It's not necessary that a tester be from a computer science background, but he needs to have knowledge of the software testing techniques. Here are the most important things which we need to know about, that constitute the basics of software testing.
Know Computer Programming Basics
It's essential that we have a basic knowledge of computer science and programming. we need to know what it means to 'code', 'compile' and 'execute' a program. A basic knowledge of computer programming can be very helpful as that way, a tester can be more specific in pointing out programming errors.
We need to understand the programmer's lingo and have rudimentary knowledge of programming, which means that you can at least understand what 'variables' and 'programming loops' are. As a tester, we are more concerned with executing the program and checking functionality under various input conditions.
Understand Different Software Testing Types
There are various types of software testing methods, which are broadly classified into two types - manual and automated testing. There are various sub-types of each which we need to know about, to have a thorough knowledge of testing methodology.
Understand the Software Testing Process
Most importantly, we need to know about the process of testing, which involves a study of program functionality requirements, designing of a testing plan accordingly, executing it, reviewing the results and determining the bugs by identifying deviations from expected functionality.
Learn to Use Automated Software Testing Tools
We will need to master using standard software testing tools used in automated testing like Quick Test Professional (QTP), LoadRunner, Winrunner and Rational Robot. Use of these tools and learning manual testing techniques are most essential skills for a software tester.
Understanding Software Performance Metrics
Besides pointing out the bugs in a program that lead to functionality failure, we need to understand how to measure the performance according to efficiency metrics. This includes the evaluation of the speed, cost and output efficiency of the program.