Crossware Contact Us
Embedded software validation

Quality assurance
built for embedded.

Crossware validates embedded software on the actual target hardware — not simulators, not desktop proxies. Structured test processes, hardware-in-the-loop execution, and automated pipelines across MCU and Linux platforms.

Hardware-in-the-loop Test automation Structured test management Release reporting
What makes embedded QA different

Testing embedded software is not the same as testing a web application.

🔌

Tests run on real hardware

Every release is validated on physical target hardware as a standard part of the workflow. Hardware behaviour — display output, peripheral response, memory footprint, frame rate — cannot be reliably replicated in a simulator. Crossware tests where the software actually runs.

📋

Structured, traceable test processes

Test cases are designed against requirements, maintained across releases, and linked to defect tracking. Pass/fail results are compiled and distributed in reports after every release cycle. Requirements traceability is built into the test case structure, not added as an afterthought.

⚙️

Automation where it adds value

Build and artifact verification, installer validation, IDE functionality checks, and GUI regression testing are automated with Python and Squish, run on Jenkins CI. Manual testing covers what automation cannot — hardware peripheral behaviour, display quality, and edge-case interaction.

01 · Test methodology & processes

From test design to release sign-off.

Crossware owns the full test lifecycle — test case creation and maintenance in TestRail and Test Centre, release validation through regression, sanity and smoke testing, and pass/fail reporting for stakeholder distribution. Every release cycle produces a structured test report against the defined scope.

Regression testing Sanity & smoke Hardware-in-the-loop Frame-rate monitoring Bug tracking Release reporting
Test case design & maintenance
Release validation
Hardware-in-the-loop testing
Bug reporting & tracking
Performance & frame-rate monitoring
Test reporting
02 · Automation & scripting

Automated validation across the build and release pipeline.

Build and artifact verification automates CMake configuration, binary generation and output file confirmation. GUI regression testing uses Squish with object-based, image-based and screenshot-based test cases. Installer validation, IDE functionality checks and environment provisioning are scripted in Python, Shell and PowerShell — run on Jenkins CI.

Squish Python Gherkin / BDD Jenkins CI Shell scripting PowerShell
Automated build & artifact verification
GUI automation (Squish)
Installer validation
Python scripting
BDD scripting (Gherkin)
Shell & PowerShell scripting
03 · Process & collaboration

Integrated into your development and release process.

Test cases are mapped to requirements for full traceability. Defects are logged and tracked in JIRA through resolution. Test results are reported via TestRail and Test Centre. Code and script changes are managed through Gerrit and GitLab. The QA team coordinates directly with development, management and customers throughout the release cycle.

Requirements traceability JIRA TestRail Test Centre Gerrit / GitLab Release ownership
Requirements traceability
Defect tracking (JIRA)
Test management (TestRail)
Cross-team coordination
Version control (Gerrit / GitLab)
Release ownership
Team competency

Capability across all QA disciplines.

Competency levels reflect the team's demonstrated capability, built through structured QA work across multiple production programmes and release cycles.

5 Expert — subject matter authority
4 Proficient — handles complexity, can guide others
3 Working knowledge — independent execution
Skill / Competency Level Description
Test Methodology & Processes
Test case design & maintenance5Regular creation and maintenance of structured test cases aligned to release scope, managed in TestRail and Test Centre.
Release validation — regression, sanity, smoke5Full execution of regression, sanity and smoke test suites as part of the release validation cycle.
Hardware-in-the-loop testing4Testing performed directly on physical target hardware as the standard method — not only on desktop or simulated environments.
Performance & frame-rate monitoring4Monitoring of rendering performance and frame-rate behaviour during manual test execution on hardware.
Bug reporting & defect tracking4Defect logging and tracking through resolution, including follow-up with engineering on clarifications and fixes.
Test reporting for stakeholders4Compilation of pass/fail results and generation of release test reports distributed to programme stakeholders.
Automation & Scripting
Automated build & artifact verification4End-to-end automated verification of the build pipeline — configuration, binary generation and expected output file confirmation.
Installer validation4Automated scripts verifying successful installation and configuration of software packages on target environments.
GUI test automation (Squish)4Squish-based automated GUI validation using object-based, image-based and screenshot-based test strategies.
Python scripting for automation4Python used to build and maintain automated test scripts across the test pipeline.
Linux shell scripting3Shell scripting for environment provisioning, toolchain setup and test execution on Linux hosts.
Windows PowerShell scripting3Equivalent provisioning and environment setup scripted in PowerShell for Windows-hosted test environments.
BDD scripting (Gherkin)3Gherkin scenario authoring for BDD-layer test cases used with the Squish automation framework.
Tools & Technical
Flashing & debug tools4Hands-on use of hardware flashing and debug tools to deploy and verify builds on physical target devices.
Defect tracking (JIRA)4Bug tickets raised, managed and tracked through resolution in JIRA.
Test management (TestRail, Test Centre)4Test case creation, execution tracking and result reporting in TestRail and Test Centre.
Version control (Gerrit, GitLab)3Code and script changes pushed and reviewed via Gerrit and GitLab workflows.
Build environment (CMake)4CMake configuration and build management across multiple target hardware platforms.
Virtualisation / remote test infra3VM-based remote test environments used for execution and result verification in distributed test setups.
Host knowledge (Linux & Windows)4Proficient use of Linux and Windows environments for test execution, scripting and tool operation.
Process & Collaboration
Requirements traceability4Test cases mapped to feature requirements as a standard part of test case design.
Cross-team coordination4Direct coordination with development, QA leads and customer representatives throughout the release cycle.
Release ownership5Full ownership of release validation checks and QA responsibilities across multiple programmes.
Test toolchain

From planning to release sign-off.

Stage 01

Test Planning

JIRA Internal documentation
Stage 02

Test Case Management

TestRail Test Centre
Stage 03

Manual Test Execution

Target hardware Flashing tools Debug toolchain
Stage 04

Automation Scripting

Python Squish Gherkin / BDD Shell / PowerShell
Stage 05

CI & Environment

Jenkins CMake OpenNebula
Stage 06

Reporting & Release

TestRail JIRA Gerrit / GitLab Confluence
Add QA to your programme

Embedded QA that ships with your product.

Share your target hardware, software stack, release cadence and quality requirements. Crossware will propose a QA scope covering test case design, hardware-in-the-loop validation, automation and reporting.

Talk to our QA team