Software Quality Assurance Engineer For A Security Software Company
Job Title: Software Quality Assurance Engineer
Type of Company: I work for a company that makes document and email security software. Using our software, you can add protection to your documents that allow only a specified group of people to read, print, edit documents, or block someone from forwarding an email to an un-authorized person. If you don't have permission to reead the document, you will not be able to even open it.
Education: BS in Math, concentration in Statistics, Framingham State College
Previous Experience: My first job in this industry was a 3-6 month contract position at a company that makes mathematical software. With my education in math, and no job experience, I took the job so I would gain SOME experience. I learned I loved the work, and ended up staying at that job for nine years, becoming the manager of the Quality Assurance department. Since then, I have worked in a few different companies, all doing quality assurance.
Job Tasks: The job of a software quality assurance engineer includes working with programmers (developers) and others in the company to help define what the software will look like, and how it will work, designing tests to verify it works correctly, sometimes writing programs to automatically test the software with minimal human intervention. Working from written specifications that detail the specific design of a new feature or product, we first try to envision how this application will work and how to test it.
For example, if I were working for Microsoft, and was going to be testing a new print feature in Microsoft Word, I would try to think of all the ways one might use this feature, both correctly and incorrectly. In other words, I would think about all the different types of printers, how can one print (i.e., use the File\Print menu, press CTRL+P, click the Print button, etc.) What happens if I have no printer? What happens if the printer is out of ink or paper? etc. I then write a detailed test plan that lists all the possible scenarios I can think of, and what the expected outcome of each test should be.
Once that is done, and the software is ready for testing, I run through all the tests in my test plan, and report to the developers when something does not work correctly. I also give input on the appearance and usability of the product. For example, sometimes something is made according to the specifications, but when it is finished, it is hard to use or looks bad.
Some people (not me) also write automated scripts to test a software product. This is used most often when something has to be tested repeatedly, or for "stress" or "performance" testing - seeing how a product holds up when used a lot, or measuring how fast a product works.
Best and Worst Parts of the Job: Software companies tend to be fun places to work with a lot of flexibility regarding schedules and hours at work. It can be very fast paced, with a lot going on at any one time. There is always something new to learn.
The worst parts are the fact that the work can sometimes be very repetitive, as you may need to run a test plan several times. There are often times when we are asked to stay late, or work on a weekend, when we are nearing the end of a project.
1. While you don't have to be a programmer or developer to do my job, it is a good idea to have a basic understanding of at least one programming language.
2. Don't be afraid to give your opinion about something. I have changed the way many products look or work, because I spoke up about a feature that "just doesn't look or feel right."
3. Be flexible and keep your mind open. Working late or coming in weekends is usually rewarded with your employere being flexible towards YOUR scheduling needs.
4. Learn how to communicate with people who may not be good communicators.
5. Learn how to write clear, concise instructions and descriptions. When reporting a software bug, you need to be able to relay the information well.
Additional Thoughts: I took my first job in the software industry "just to have something on my resume." I didn't like programming at all in college, and feared I would hate the job. I was incredibly pleasently surprised to learn that I LOVE this kind of work and am well suited to it.
The key to my success in this industry are my attention to detail, my persistence in tracking down a problem, and my desire to deliver a high-quality product. I am willing to put in the effort (which does NOT usually mean extra time) to get through to the root of a problem. Good organizational skills are needed to be able to write good test plans, and good written skills are needed as well, when writing test plans, reporting a software defect, and writing a summary of a project.
A sense of humor certainly helps as well.