Firmware Engineer Student-SummerBookmark This
Work in a dynamic department that tests firmware for new single and multi-function laser printers. At a high level, the firmware receives print data from the host computer via network, USB, or some other interface, processes the print data, converts it to a printable format, works with custom ASIC electronics to interface to the print mechanism, and controls the print mechanism.
The test engineering department writes software tools and tests a variety of firmware functionality including network, security, and Lexmark solutions. The department is organized in teams to test specific areas of the firmware. The teams work closely with development to discuss/debug issues and to plan testing strategies for future functionality. The primary development departments involved are firmware, scanner, and hardware/cartridge. The department also works with other test departments to ensure all aspects have adequate coverage, to reduce redundant testing, and to ensure the overall process is efficient.
The network test team works with various network protocols, such as TCP/IP, and evolving technologies, including Microsoft Web Services, wireless, and security.
The test engineer requires strong engineering and communication skills, to:
Focus on new technology in a specific area, creating test strategies and designing tests and tools early in the development cycle
Create tools and automate testing to reduce effort, improve coverage, and increase accuracy
Research new functionality, document test strategies, review specifications/design/code, communicate issues, solve problems, and share knowledge and expertise.
- Design test approach for new functionality:
- Work closely with the test team lead and development teams to research new functionality.
- Create test strategies and plan new testing approaches and tools, documenting and reviewing per the peer review process.
- Communicate and train other team members on new technology and associated tests.
- Create test plans, test cases, and test software:
- Contribute to test plans/test cases for the firmware, documenting and reviewing as required.
- Code, test, debug the test software, creating reusable tests that function within automation framework and documenting tests in test plans.
- Review work with the development and test engineers per the peer review process.
- Develop and maintain scripts, often in Perl or Python, to build and automate testing printer firmware such as:
- scripts that send test cases to printer software to generate out-of-memory conditions
- scripts to compare test results to expected output and email results.
- Propose, specify, design, develop, enhance and test software such as:
- Java tools to automate testing of GUI. Send commands to the panel to generate button presses. Receive and process serialized panel display data to verify output displayed properly.
- C, C++ and Java code to automate testing of fax, network and security features and protocols.
- Participate in department-wide test engineering automation team, which serves to coordinate automation activities, provide oversight on the tool architecture/design, and standardize automation development processes, such as source code control, peer reviews, coding standards, documentation, release, change control and support.
- Test printer software, reporting problems to the development engineers and assisting them in debugging.
- Assist other test engineers, development engineers, and testers with functionality, testing, automation, trouble shooting, etc.
- Comply with existing procedures and standards, such as coding standards, peer review process, configuration management process.
Successful candidates will have a keen interest in learning new things, think creatively, pay close attention to detail, and have strong troubleshooting/debugging skills.