Should you want a longer description....
The following assumes that the target company actively works to prevents software bugs from getting out the door. A software/system tester will be miserable in any company that throws software/systems over the wall at customers as soon as it compiles.
A tester has two functions:
- verify that the software works according to its design
- verify that the software does not work in ways it wasn't designed.
Or, in other words, the tester finds out if the software does what it's supposed to do, and tries his best to break it.
Proper testing involves being very familiar with all of the system's interfaces. Let me pick something a lot of people use, but aren't too familiar with otherwise: a GSM cellular base station system.
A GSM BSS has a number of interfaces: A (to the switch), A-BIS (to the BTS radio unit), O&M (to the OP & Maint Center), voice time slots, data time slots, RF (radio between the BSS and the mobile), local debug and test ports, and more that I've since forgotten.
To properly test a BSS, you need a tool that can properly exercise SS7, LAPB, LAPD, LAPDm, X.25, TCP/IP, and other established protocols. The tool needs to be able to 'talk to' the debug and test ports. It needs to be able to generate audio and data for transmission, and be able to receive audio and data for verification.
These are just the top level requirements. The tester has to become familiar with all those interfaces and the device under test in general, become familiar with the test equipment, become familiar with the test language, learn the local bug-reporting system, learn the local source code control system, et al.
A good, experienced tester can listen to a field problem report, ponder it for a few minutes or a few days, then walk into the lab and reproduce the problem.
A good tester will learn how to break any software, then repeat it as many times as needed until the software developers/maintainers locate the bug.
A good tester will learn how to find all the bugs before the software gets too far into the field. A good tester will always strive to ensure that his tests, processes and procedures are repeatable, so he can prove that bugs exist, and so he can prove that bugs have been fixed. Above all, a tester must be able to visualize a test job and figure out how to automate it, because only test automation can provide the requisite repeatability.
A good tester is not a specialist. By nature a tester must be a generalist, comfortable with hardware as well as software.
It's not necessarily an easy job. But, by golly, it sure can be fun!