Embedded testing is a process of verifying the functionality and quality of Firmware/Software and hardware parts in a final product. It ensures that the product meets the business requirements and doesn't have any defects or issues. Embedded testing checks whether the software and hardware work well together in the product under different conditions
Contact- Reviewing of the schematic and PCB based on the technical requirements - Signal conduction and power integrity analysis - Testing and validation of the PCB routing issues - Verification of the signal on all inputs and outputs - Power management and power distribution test - Temperature range testing in a thermal camera
- Code review for each module based on standards - Writing unit tests for each code module - Writing functional tests to demonstrate real work - Performing hardware and firmware bring-up tests - Preparing a test utility to collect and analyze test results with logs - Manual testing with a list of the test cases
- Inspecting the device parts made by printing or injection molding and compare with the original design - Quality verification and usability of the materials - Temperature range testing in a thermal camera - Vibration testing - IP standards verification and testing based on requirements
- Code review for each module based on standards - Unit, manual and functional testing for each module - UI/UX comparative testing with the initial design - Testing for different screen sizes, resolutions and different platform versions - Speed and load testing of communication via BLE, WIFI and NFC - Stress, Сompatibility, Localization testing
When dealing with assembled PCBs, the engineer establishes a connection between a laboratory power supply with a current limit and sets the appropriate input voltage. Then, he checks the voltages and currents on each critical part of the PCB using a laboratory multimeter. Based on the obtained results, they create an errata document and make any necessary fixes on the current PCB (such as soldering some components, wires, etc)
Our engineer performs tests on all input/output pins of the PCB according to the PCB requirements. For example, they perform testing of the maximum input voltage, ESD (using a high voltage generator and a well-equipped laboratory), polarity reversal testing (by switching the polarity of the input source), etc. Upon evaluating the test outcomes, the errata document is updated accordingly
For low-power devices that use batteries, this process proves to be the most time-consuming, because our engineer conducts comprehensive power consumption testing and current measurements for all work modes of the device (work, idle, sleep, and deep sleep modes) on each critical component. Then, a table with the results is generated and compared with the theoretical calculations based on the datasheet. If the results differ significantly from the theoretical expectations, the engineer identifies the component(s) that cause the discrepancy (sometimes this requires resoldering components or cutting/soldering some wires)
For devices that include an RF component on the PCB, antenna match testing is essential. Our engineer connects a vector analyzer directly to the RF input/output circuit with an antenna excluding the transmitter IC, and checks the impedance characteristics at the working frequency. Usually, the impedance should closely approximate 50 ohms at the working frequency, If not, appropriate components for the RF circuit must be selected to achieve a 50-ohm (Prior to the design phase, simulating the output RF circuit is critical) Functional testing with test firmware Once it is confirmed that the device does not have any potential power issues, the engineer proceeds to conduct functional testing using test firmware. That checks each hardware-dependent part (sensor, memory, interface, etc) and generates a test log with the results
With a fully functional device and the test firmware, the engineer places the device inside a thermal chamber and changes the temperature from the minimum to the maximum working range, employing slow speed and small increments. Based on the testing, the engineer creates a detailed report with results
One of the final steps before certifying the device is to conduct pre-testing in our laboratory. For this, we use a spectrometer up to 26 GHz equipped with different antennas for various frequencies. We check the spectrum of the device in different work modes and make sure it fits within the allowed range. After this step, we rent an external laboratory for the full EMI/EMC testing. Further details and a real testing video can be found below and look a video.
We use a code analyzer to check the compliance and quality of the code according to the standard (MISRA, ANSI, etc) and language (C, C++) we use. This helps us to save time in bug fixing and make the code more professional
Code review by another professional engineer is an important part of the work. We split the project into small tasks, each with its own Git branch and code. When a task is done, we make a merge request to the develop branch and conduct code review using Github/Gitlab mechanisms (we follow Google-based code style with modifications for Embedded C/C++)
Each code function/method/module should be tested with unit or functional tests, as part of a professional project approach. For each simple task (code module), we write tests, instructions, and perform testing with report generation
Each firmware must be low power as fast as possible and to reach an ideal performance is hard. But we try, for this we measure the performance of each complicity code construction, make code analysis, if it’s possible - we make code speed optimization
As the functional tests or the business logic is done, we prepare an instruction for manual testing for each code module. This instruction includes detailed steps of the testing with results for each step. Based on the testing we make a report for bug fixing and improving
As each code module was covered by tests and tested, will need to make complete regression testing of the project with all work cases. Based on this will be done test report, make fixes and Release
We employ a code analyzer to ensure code compliance and quality according to the standards we adhere to. This saves time in bug fixing and enhances the professionalism of the code
Code review by another professional engineer is an important part of the work. We split the project into small tasks, each with its own Git branch and code. When the task is done, we make a merge request to the develop branch and conduct the code review using Github/Gitlab mechanisms
Each code function/method/module should be tested with unit or functional tests, as part of a professional project approach. For each simple task (code module), we write tests, instructions, and perform testing with report generation
We initially test the application with our team, including a UX/UI designer with extensive experience, to ensure everything fits well and provides a superior user experience across different mobile devices and screen sizes. In the second step, we involve users to test the app and provide feedback
Optimizing performance and achieving the ideal speed for each application is challenging. We measure the performance of each complex code structure, perform code analysis, and, when feasible, optimize the code for speed
Stress testing is a critical part of mobile app development. Our development team simulates a heavy load on the application by manually interacting with the app and writing tests to simulate an active user who engages with all app features, including sending and receiving large amounts of data. During this process, we analyze how the app utilizes system resources such as memory and processing
Localization testing is conducted in multiple steps. We create several emulators with different regional settings (language of the interface, localization, OS version) and run the app on each of them. We also perform practical testing in different regions using real users and gather feedback from various countries
As the functional tests or the business logic is done, we prepare an instruction for manual testing for each code module. This instruction includes detailed steps of the testing with results for each step. Based on the testing we make a report for bug fixing and improving
Once each code module is covered by tests and tested individually, we conduct complete regression testing of the entire project with all relevant use cases. Based on the results, a test report is generated, and necessary fixes and enhancements are implemented before the release
This step is crucial for verifying the design details in a CAD tool. The engineer conducts simulations to evaluate parameters such as temperature range with heating and cooling, strength of the detail with different materials, visualization of moving parts in the device, and the injection molding process
The review checks the designed files of the mechanical parts and makes a report based on technical requirements and design standards
As the designed part(s) was manufactured (printed, machined ), we review these parts and check quality based on tolerances specified in the technical documentation, standards, and other design files. Based on this we make a report for improving
Based on the assembling drawing, we start assembling and evaluating: the speed of the assembling, convenience, and quality. Based on this we make a report for improving
To ensure a positive user experience and ergonomic design (if required), fully assembled devices are tested by our team with the assistance of a UX expert. Additionally, users are invited to test the devices and provide feedback, which is compiled into a report for further enhancements
This step involves testing of the assembled device with all external parts, including PCB and mechanical components. A checklist with test cases is followed to assess efficiency, and a report is created to identify areas that require improvement
The assembled device, the engineer places inside a thermal chamber and changes the temperature from the minimum to the maximum working range, employing slow speed and small increments. Based on the testing, the engineer creates a detailed report with results
The assembled device is connected to a vibration stand, and the vibration level is varied from the minimum to maximum working range, employing slow speed and small increments. A detailed report with results is prepared based on the testing
One of the final important stages is Ingress Protection (IP) testing, conducted in special cameras that provide control over factors such as humidity, water and air pressure, and dust density, according to IP standard requirements. IP testing is performed based on the device requirements, and a report is generated to document the results
Kyiv
Kyiv City, str Vaclav Havel 4, office 422
Vinnytsia
Vinnytsia City, Kyivska 41
Kharkiv
Kharkiv City, St. Karazyna 1,
What can we do for you?
Feel free to get in touch
+380442374050
Ready to request a quote?
Describe your project
Want to learn more? Need some help with product development? Tell us about your business needs. We will find the perfect solution