Software Quality Assurance Engineer
Apply state of the art industry-standard software development methodologies and techniques to test automotive, mobile, and embedded software based on the architecture and requirements specification under the supervision of Technical Manager or Senior Software Engineers.
Review software architecture and requirements specifications and understand the features and functionality of the software.
Review and analyze high-level software design and test plans based on software requirements.
Understand product/software system requirements/architecture/high-level design and develop a low-level test plan for software testing.
Follow Test Driven Development methodology to develop software and automated unit tests for white box and coverage testing.
Develop automation scripts using test frameworks – develop configurations and program, debug and execute the automated test scripts, in XML, Python, R, or other languages, across multiple target platforms.
Use Data Analysis and Multivariate Statistics to analyze test results. Collect CAN data from the system using the CAN tools, clean the raw data, extract the profile data, apply multivariable statistics, and make regression analyses to confirm the data variables’ meanings. Query, add, and update software and hardware information into the database system.
Human Factor and Ergonomics Engineering in Improving Infotainment System: Use the knowledge of human factor and ergonomics, Statistical Process Control methods to analyze the positions and designs of the system, according to user experience and feedback.
Work on developing test plans, test cases, and test scripts to verify the developed software.
Perform various software verification phases, including – Unit, Functional, Integration, Regression, Stability, and Performance Testing.
Adhere to development processes and quality, generate and monitor the required metrics (Code Coverage, Performance, etc.)
Provide detailed status and comprehensive communication reports to the project and management teams.
Report software problems and bugs into the Issue tracking system (like Jira, RTC, etc.) and provide failure details and logs to help issue resolution.
Set up software and hardware tools, devices, modules, and maintain test devices, benches, and vehicles in the development and test environment.
Knowledge and Skills Applied:
- Computer Science and software development and testing fundamentals and a thorough understanding of verification methodologies, strategies, and tools.
- Knowledge of Data Science, Statistical Process Control, and Human Factors in systems
- Embedded operating systems like Android, QNX, Linux, etc.
- Android and Infotainment software systems and Framework and application software for Android platform, mobile, automotive, and Infotainment software.
- Automotive networks and protocols (CAN, LIN, MOST, Ethernet AVB) using testing tools for these protocols.
- Embedded software systems – like vehicle control (Telematics, CAN, LIN, and Ethernet AVB), navigation (GPS, Maps), connectivity (WiFi, Bluetooth, and Cellular), multi-media (Audio, Video, and Radio), and automotive (In-vehicle applications) systems.
- Automated testing frameworks, simulation, converting manual tests to automated tests, and executing, analyzing, and reporting automated test runs on multiple software versions and releases.
- Languages: Java, Perl, Minitab, MySQL, Python, XML, Windows, and UNIX shell.
- Phases of software verification including – Unit, Coverage, Functional, Integration, Regression, Stability, and Performance Testing.
- Software versioning, issue tracking, software build, and analysis systems.
- Relevant Project or Graduate level course work in at least 3 of the following areas:
- Embedded Systems
- Vehicle Electronics
- Digital Image Processing & Analysis
- System Simulation & Modeling
- Data Science