Effortlessly Develop, Test and Enhance Embedded Software with MicroEJ

MICROEJ SDK workspace integrates advanced testing tools, empowering developers to efficiently test and validate their embedded software. With options to run tests on a simulator, developers can save valuable time while ensuring their code behaves as expected. For a complete assessment, tests can be executed directly on target MCU/MPU hardware, guaranteeing accurate performance validation.

  • Proven and Trusted Solution
    MICROEJ VEE runtime is a completely trusted and reliable solution that has been thoroughly tested with over 50000 tests.
  • Validated Software Libraries
    MicroEJ’s embedded software libraries are open source and subjected to extended validation and qualification.
  • Extensive Code Coverage
    All critical software components have a 100% binary code coverage.

Embedded System Degugging Console

Simulator

Debug an application on a simulator by adding breakpoints, inspecting stack frames, and utilizing step-by-step functionalities, among other debugging techniques.

More Info

Hardware

Apply similar techniques to debug your app on targeted devices by running the MicroEJ debugger proxy.

More Info

Test & Quality Assurance Key Features

1. Static Analysis Tools

MicroEJ offers the support for powerful static analysis tools including SonarQube™ and the Null Analysis tool. SonarQube™ generates comprehensive reports on coding standards, duplicated code, potential bugs, and more, while the Null Analysis tool prevents NullPointerException, enhancing the robustness of Java programs.

▷ More information about MicroEJ Static Analysis Tools.


2. Memory Inspection (on simulator and hardware)

Troubleshooting memory issues such as memory corruption and memory leaks can be a challenging task. Nevertheless, the following tools can help to optimize memory usage:

  • Heap Usage Monitoring
    MicroEJ provides comprehensive heap usage monitoring tools that allow developers to specify, monitor, and analyze Java heap usage in their applications. By using the Core Engine’s Java API, developers can introspect heap usage at runtime, invoke garbage collection, and compute current heap usage.

  • Heap Dumper and Heap Analyzer Tool
    Additionally, MicroEJ’s Heap Dumper captures a snapshot of the Java heap, generating .heap files, while the Heap Analyzer helps detect memory leaks, browse object instances, and optimize heap usage. This tool suite enhances memory management and debugging efficiency for developers.These capabilities help optimize memory management, identify memory leaks, and ensure efficient use of resources, ultimately enhancing the performance and stability of embedded software applications.

▷ More information about MicroEJ’s Heap Usage Monitoring.


3. Runtime State Dump (on hardware)

MicroEJ’s Runtime State Dump tools provide low-level APIs to output and decode the state of the runtime and threads, including their stack traces, priorities, and memory usage.

  • Decode MicroEJ stack traces
    Direct the output information to the standard output System.out and utilize the Stack Trace Reader for the purpose of reading and deciphering MicroEJ stack traces.

▷ More information about stack traces.


  • MicroEJ Virtual Machine (VM) Dump
    MicroEJ VM captures the state of all MicroEJ threads, including names, priorities, and stack traces, for debugging purposes. It provides detailed insights into Java threads, garbage collection, and native resources, to help developers diagnose issues and optimize system performance efficiently.

▷ More information about MicroEJ VM Dump.


  • Check Internal Structure Integrity
    The internal Core Engine function called “LLMJVM_checkIntegrit”y checks the internal structure integrity of the MicroJvm virtual machine and returns its checksum.

▷ More information about Core Engine Memory Integrity Check.


4. Events Tracing and Profiling (on hardware)

MicroEJ’s trace system enables efficient event tracing for debugging and monitoring, recording detailed runtime information with minimal performance impact:

  • Trace and Profiling
    The MicroEJ Core Engine’s trace system enables efficient event tracing for debugging and monitoring purposes without significantly impacting performance. It supports both Java and C APIs for recording integer-based events, which can be single occurrences or periods marked by start and end events. Developers can use this system to gather detailed runtime information, helping to identify issues and optimize application performance.By integrating with tools like Segger’s SystemView, the trace system offers enhanced insights into event sequences and durations, making it a valuable tool for fine-tuning and understanding embedded software application behaviors.

▷ More information about MicroEJ Trace reader.


 

5. Code Coverage Analyser (on simulator)

The Simulator features an option to output .cc (Code Coverage) files that represent the use rate of functions of an application. It traces how the opcodes are really executed.

MicroEJ’s Code Coverage Analyzer tracks function usage and opcode execution in applications. It produces an HTML report detailing method coverage, aiding in the analysis of both Java and bytecode levels. This built-in tool enhances code reliability by providing clear insights into fully or partially covered classes and methods, making it easier to improve and optimize your application.

▷ More information about More information about MicroEJ Code Coverage Analyzer.


 

6. Test Suites Tooling & MicroEJ Port Qualification (on simulator and hardware)

  • MicroEJ Test Suite Engine
    The MicroEJ Test Suite Engine is a powerful tool designed to automate the testing of embedded software (either on Simulator or on Device), enhancing productivity and ensuring high software quality. It supports various project types, including applications and libraries, by providing pre-configured tasks for test execution, detailed runtime properties, and advanced configuration options.
    Key features include running Java and automated test suites, generating JUnit XML and HTML reports, and analyzing data from files and serial connections through its stack trace analyzer.
    The Test Suite Engine significantly streamlines the development process, offering comprehensive coverage and detailed reporting to facilitate efficient debugging and maintain high reliability and stability in embedded software.

▷ More information about MicroEJ’s Test Suite Engine.


  • Port Qualification Tool (PQT)
    A VEE Port integrates one or more Foundation Libraries with their respective Abstraction Layers.
    VEE Port Qualification is the process of validating the conformance of the Abstraction Layer that implements the Low Level APIs of a Foundation Library.
    MicroEJ PQT validates each component of a MicroEJ Port after porting or adding new features. Available on GitHub, this tool ensures the seamless integration of platform components, enhancing reliability and performance.

▷ More information about MicroEJ Port Qualification Tool.


 

Test and Validate your Embedded GUI Quickly and Efficiently

Test your events, widgets, memory usage, and save valuable time by automating your tests with the leading UI testing tool Appium. Catch and fix issues at any point in development, or directly test on real hardware to ensure true performance.

Key features:

  • MicroEJ provides effective Appium support, a top-tier automated UI testing tool. This compatibility streamlines testing, ensuring reliability and performance across platforms. Developers benefit from smooth automation, speeding up testing and bolstering confidence in their embedded software quality.

Contact us for more info.


  • MicroEJ’s widget debug utilities streamline widget analysis in embedded GUIs by outlining widget hierarchies, identifying widget paths, counting widgets and containers, evaluating hierarchy depth, and detailing widget bounds. These features enhance understanding, simplify troubleshooting, and improve software quality and performance.

More info.


  • The MicroEJ Event Buffer utilizes a circular buffer to efficiently manage input events, ensuring smooth and responsive UI performance. It logs event metadata for comprehensive analysis and troubleshooting, aiding in the identification and resolution of issues. This system enhances the overall quality of UI software by providing detailed event tracking, reducing latency, and supporting robust error handling and performance monitoring.

More info.


 

  • MicroEJ Trace Identifiers log various UI events, providing detailed records that enhance debugging, monitor performance, detect errors, and support comprehensive analysis. This results in quicker issue resolution, optimized performance, immediate error identification, and in-depth understanding of UI behavior.

More info.


  • MicroEJ Test Automation Tool automates GUI testing by recording and replaying user interactions with interface elements like Pointer, Button, LongButton, and Joystick. It compares screenshots of UI applications during replays to detect changes, in addition of working along with JUnit tests. This tool enhances testing efficiency, detects UI issues early, and automates repetitive tasks, improving software quality and reliability.

More Info.


  • MicroEJ offers the tools to test GUI applications with a software automation for robotic process automation (RPA), which involves recording and replaying user interactions to mimic human behavior for consistent UI interactions. This method detects errors like OutOfMemory and StackOverflow errors, enhances error detection accuracy, and reduces manual testing effort, thereby improving software reliability and efficiency.

More Info.


 

To find our more

about MicroEJ Testing Tools for Embedded Software, reach out to our documentation!

Documentation

Additional Resources

VEE Software Container Embedded Systems

Products

Explore MicroEJ’s core technology: VEE software containers

Embedded GUI solution

Solution

Create Fast, Beautiful Embedded GUIs with MicroEJ

Solution

Develop Android Compatible Applications for Resource-Constrained MCU/MPU