September 2006
Software Test Engineer for a Small Development Company
By Annie Sitton

I am a software test engineer for a small development company. My job is diverse and challenging. My position requires interacting with people, working with new technologies, creating documents and programs, working with both hardware and software and finding new and creative ways to break the software and hardware. While doing my job I can sit back and watch my automated scripts do all the work a manual tester has to do.

Skills and knowledge:
The role of a software test engineer is very diverse. We work closely with programmers, support disciplines and users. We work with various computer operating systems, hardware, environments and configurations. We need an in-depth knowledge of software test methodologies and development cycles, an understanding of software development logic and coding as well as good verbal and written communication skills. These skills are required because we need to prove and document the software does and/or doesn’t work as it is intended to work. Software test engineers need to be thorough, organized, methodical, creative and very diplomatic. We need a desire to learn new software and tools, and we need an unwavering dedication to releasing the best quality software we can.

Test methodologies:
Many software development companies do not have defined test processes so an in-depth knowledge of test methodologies is essential. There are many different types of software and there are just as many ways to test that software. The more ways you can test software the better. Knowing what to test is key to thorough testing. The ability to derive testable requirements and design test cases and scenarios is a must. Creativity and experience are extremely helpful in designing test cases and scenarios. You must know, understand, and test the “happy day” scenarios to prove the software works as intended, but you must also test the scenarios that are known to be incorrect to test the software’s ability to handle the user’s errors.

Test documents:
Structured test methodologies require a lot of documentation. You need to be able to define and create any or all of the various documents needed for defining a test effort, the actual testing of the software, and tracking results (i.e., Test plans, test cases, final test reports, etc.). Most test documents need to be maintained and controlled. Familiarity with tools that can be used for controlling and maintaining documentation is helpful. Also helpful is a familiarity with tools that can help define your test process, test requirements, test cases, and test documentation. A good functional knowledge of Microsoft Excel and Word helps you create templates that can be used and reused for your test documentation. With an intimate knowledge of the various types of test documents you will be able to choose the appropriate type for a particular test.

Test automation:
One of the characteristics of a test engineer is an in-depth knowledge of test automation methods and tools. For test automation to be effective scripts need to be well-planned out and more than just record and playback. The same principles that apply to development and programming apply to test automation. A well-planned and designed test suite is one that is made up of portable scripts, reusable scripts and scripts that require minimal maintenance. In order to create an effective test suite the tester needs to have a good understanding of test tools, scripting languages, logic and an understanding of development architectures. Just push a button and it takes off. It’s fun to watch and it’s fun to watch others around you watch it run.

Company certifications:
There are different types of company certifications (i.e., CMMI, IEEE, ISO 9001, etc.). Many companies are obtaining certifications to compete worldwide and for government and defense contracts. Most of these certifications require specific practices for software testing. An understanding of the various certifications, models, best practices, definitions, etc. is very helpful in defining your own test methodologies, documents, and procedures and assisting your company in obtaining their certification.

The Perfect candidate:
You may be a perfect candidate for a test engineering position if you are:
  • Interested in a lot of various disciplines, and you get bored with doing the same thing day in and day out.
  • Interested in learning new technologies, but don’t have the money to go out and buy every new toy that is on the market.
  • Don’t mind writing and creating documentation.
  • Like developing software but want to develop software for your own use.
  • Like testing software but get bored with pushing the same buttons.
  • Like doing something that you love and everyone around you thinks it’s magic.
  • Are truly interested in improving software quality.
Software test engineering allows you to do a wide variety of tasks and it allows you a lot of flexibility in your daily schedule. This discipline is always in need of dedicated people. There aren’t many disciplines that pay as well to break things.


If you would like to submit an article providing an insider’s view of your tech or engineering job, please send your article to us at ITtrenches@dice.com.

Comments on this article? Share your feedback on our discussion forum, Dice Discussions.

*Please note, you must be a registered job seeker in order to submit your question to Dice Discussions.
Search Jobs

Did you know?

Many hiring companies who use Dice search our resume database before posting jobs. That means many of the best jobs are never even posted. Post your resume now, and be sure not to miss any opportunities.
Post Resume Now

More Career Insights

  • Technology Today
  • Cover Letters & Resumes
  • In The Trenches With Dice
  • Local Market Reports
  • Dice Discussions

  • Feedback | Help | Work at Dice | Security Tips | Privacy Statement | Terms & Conditions  

    Copyright © 1990 - 2008 Dice Inc. All rights reserved
    skrID: 0