Becoming a Software Test Engineer
What Do Software Test Engineers Do?
Software test engineers focus on verifying the functionality of software applications. While functional testing of software is their most common job function, they may also perform efficiency testing, usability tests, accessibility and security testing.
Software test engineers review the software requirements to create tests that verify that software applications perform the required functions.
Test engineers help develop major test scenarios and user test cases during the software requirements gathering phase. Software test engineers should participate in hardware design meetings and hardware configuration change board meetings, since changes in hardware can affect software.
Software testing is a delicate balancing act. The software testing phase of the software development life-cycle is often cut short to meet release schedules, while serious problems found in testing can take significant time to resolve.
Software test engineers must choose which software tests are most likely to find faults, select test sets that can be completed in time and check the widest array of system variables possible. What tests can be removed from a regression test set when time is running out? What tests should be added to find newly identified faults in future test sets? When can automated testing be used, and when do you need a human involved?
Software test engineers generate quality assurance metrics like defect density metrics and defect counts. Software test engineers may be responsible for ensuring that software meets software quality standards like ISO standards.
Are All Software Testers Software Test Engineers?
Software testing is frequently performed by programmers. Software test engineers may start out as software developers, especially those that used test driven software development methods. “Code Complete” by Steve McConnell says that developer testing tends to have a number of limits.
For example, developer testing tends to be clean testing that checks whether code works instead of dirty tests that reveal how software breaks and fails to work properly. This is one reason why software test engineers are brought in for software testing instead of simply relying on the developers to test their code.
There are many types of software testing. Unit testing tests individual hardware pieces that have had software installed. Software testing may be part and parcel of a field technician’s job, and the test technician could choose to pursue software testing expertise to move into a higher paying job.
User acceptance testing is performed by software application users and major stakeholders; some of these users may be professional software testers, advanced users or those who reported defects in a prior software release. There are hardware engineers who moved into software test engineering to avoid becoming obsolete when the hardware they tested changed.
Becoming a Software Test Engineer – What Degree Do You Need?
Software engineers typically have degrees in computer science, information systems or software engineering. However, according to the “Istqb Certification Study Guide” by K.V.K.K. Prasad, software testing no longer involves coding. Individuals who become experts in software testing tools can move into software testing positions with a college degree in another field.
An associate’s degree in computer science or a related field is a minimum for most employers. A bachelor's degree in computer science or information systems is standard. Employers prefer software engineers with software test engineer certifications.
Software Test Engineer Certifications
One of the methods of becoming a software test engineer, regardless of your prior education, is to become certified as a software test engineer. Software test engineering certification is especially beneficial for those with degrees in other fields of engineer, management of information systems and other technical fields that may not be recognized by employers seeking test engineers.
The International Software Testing Qualifications Board or ISTQB is one of the major software testing professional certification groups. The International Software Testing Qualifications Board has certifications for test analysts and test managers. The ISTQB has expert level tests in test management, test automation and security testing. A competing certification is the Certified Software Test Engineer certificate offered by the Quality Assurance Institute.
Software test engineers with a background in software quality assurance can earn the Certified Software Engineer or CSQE certification. The CSQE certification is offered by the American Society for Quality.
Software test engineers who want to become test managers may choose to earn the Certified Software Project Management or CSPM certification offered by the Quality Assurance Institute.
In the UK, students can choose to earn the ISEB Foundation Certificate in Software Testing. The UK ISEB is supported by the ISTQB.
Potential Career Paths for Software Test Engineers
According to “Career Opportunities in the Internet, Video Games, and Multimedia” by T. Allan Taylor and James Parish, software test engineers start at around $55,000. Experienced software engineers performing software testing earn anywhere from $73,000 to $110,000 a year. Salaries rise with experience, areas of expertise and professional certification.
Software test engineers may become software test analysts or technical test analysts. They could write software test procedures, test cases and system documentation. They can become software test managers coordinating software testing performed by other software test engineers.
Integration, validation and verification is the process of testing a fully assembled item like a weather radar array or helicopter to ensure that all components work correctly, software installed on each unit correctly sends and receives command and that data received by sensors is properly received and processed by command and control systems and user interfaces. Software test engineers occasionally come from a software quality assurance background.
Software test engineers should use a standard set of test documents that are under configuration control. Software test engineers often have to link test documentation and test reports to requirements documentation and related documents. Test engineers can become software configuration managers and software change review board members.
1. “The Software Test Engineer's Handbook” by Graham Bath and Judy McKay
2. “Essentials of Software Engineering” by Frank Tsui and Orlando Karam
3. “Career Opportunities in the Internet, Video Games, and Multimedia” by T. Allan Taylor and James Robert Parish
4. “Istqb Certification Study Guide, 2008 Ed” by K.V.K.K. Prasad
5. “Introduction to Software Testing” by Paul Ammann and Jeff Offutt
6. “Code Complete” by Steve McConnell