Skip to content
| Marketplace
Sign in
Visual Studio Code>Testing>BTC EmbeddedPlatform extensionNew to Visual Studio Code? Get it now.
BTC EmbeddedPlatform extension

BTC EmbeddedPlatform extension

BTC Embedded Systems AG

|
22 installs
| (0) | Free
BTC EmbeddedPlatform extension for C/C++ test
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

BTC EmbeddedPlatform extension for C/C++ test

BTC EmbeddedPlatform enables ISO 26262 compliant testing of C/C++ code including built-in code coverage measurement, requirements traceability, auto-test generation (drive-to-line / drive-to-state), equivalence class and boundary value analysis and advanced robustness checks (array-out-of-bounds, division-by-zero, dead-code detection and more) based on cutting-edge model-checking technology.

Check out the btc-embedded.com for more information.

Highlights

  • Code-Coverage: Built-in code coverage measurement for your C/C++ code, including statement/line, decision/branch, condition, MCDC, function, function call, relational operator, and switch-case coverage.
  • Drive-to-X: Automatically generate test cases that cover specific lines, branches or complex expressions in your code.
  • Requirements-Traceability: Establish requirements traceability directly from within VSCode and write back test results to your requirements management tool (Jama, Codebeamer, Doors Next, Polarion, etc.). This makes progress transparent and prepares you for audits in case of a safety-critical project.
  • Stubbing & Mocking: Easily stub and mock functions in your code to isolate the code under test and ensure that your tests are focused on the specific functionality you want to test (especially useful to cut off hardware dependencies).

Further Features

  • Robustness: Get insights into equivalence class and boundary values, as well as robustness checks for array-out-of-bounds, division-by-zero, downcasts and dead-code detection.
  • Test Reporting: Generate HTML test reports (incl. plots to visualize behavior over time) with your test results and coverage metrics. This makes it easy to share your results with stakeholders and keep track of your progress.
  • GitHub Copilot: This extension is optimized for use with GitHub Copilot. It provides additional context and suggestions for your code, making it easier to write tests and improve your code quality.

Get in touch

Unsure on how to get started? We're happy to help you tackle your testing challenges! Our application engineers are here to support and are not afraid of being involved hands-on.

Got some feedback? Great! We're actively working on our VSCode extension and our developers love to get first-hand insights from users

Contact us for a quick demo or a free temp license for BTC EmbeddedPlatform to bring your testing to the next level.

Details

You've made it all the way down here - awesome! Let's look at some more details on the features described above:

Code Coverage

Built-in coverage measurement for your C/C++ code let's you see at a glance which parts of your code are covered by your tests. This is particularly useful for meeting high code coverage thresholds in safety-relevant projects.

Supported Metrics:

  • ✅ Statement/Line
  • ✅ Decision/Branch
  • ✅ Condition
  • ✅ MCDC
  • ✅ Function
  • ✅ Function call
  • ✅ Relational Operator
  • ✅ Switch-Case

Advanced Insights:

  • Full transparency on which parts of your code are covered by which tests
  • Advanced insights in coverage metrics (e.g. true/false case of a condition, etc.)
  • Drive-to-X functionality for uncovered code (see Drive-to-X)

coverage

Drive-to-X

Having trouble covering some tricky parts of your code? Use the drive-to-x functionality to automatically generate test cases that cover specific lines, branches, or conditions in your code:

👉 Drive-to-Line: Generate a test case to cover a specific line in your code.

👉 Drive-to-State: Describe a specific state of your code and generate a test case to reach that state.

ℹ️ What if a line / state is not reachable?
Stop the endless pursuit of coverage! Based on cutting-edge model-checking technology BTC EmbeddedPlatform can tell you if an expression is unreachable - this is a mathematical proof (iso-certified by the German TüV Süd).

drive-to-x

Requirements Traceability

You want to spend your time developing awesome features, not answering question about your progress. With the BTC EmbeddedPlatform extension you can establish requirements traceability as early as possible - directly from within VSCode - and write back test results to your requirements management tool (Jama, Codebeamer, Doors Next, Polarion, etc.). This makes progress transparent, keeps managers off your back and prepares you for audits in case of a safety-critical project.

req-trace

Stubbing & Mocking

Stubs and mocks are tools used in unit testing to isolate the component being tested by replacing its dependencies with controlled, predictable substitutes.

BTC EmbeddedPlatform automatically stubs out missing functions or variables to make your code compile and run, even if they are not implemented yet. On top you can create modify auto-created stubs and create custom mocks to meet your needs.

Stubs: These are simplified implementations of a dependency that return predefined responses. They are used to simulate the behavior of a dependency without executing its actual logic. For example, a stub might return a fixed value from a database query, allowing you to test how your code handles that value without needing a real database.

Mocks: These are more advanced than stubs. In addition to simulating behavior, mocks can verify interactions with the dependency, such as whether a specific method was called, how many times it was called, and with what arguments. This is useful for ensuring that your code interacts with its dependencies as expected.

By using stubs and mocks, you can:

👉 Isolate Components: Test a unit of code independently by removing external dependencies like databases, APIs, or file systems. Control Test Scenarios: Simulate edge cases or error conditions that might be hard to reproduce with real dependencies.

👉 Speed Up Tests: Avoid the overhead of interacting with real systems, making tests faster and more reliable. This isolation ensures that tests focus solely on the logic of the component under test, leading to more precise and maintainable tests.

Robustness

☝️ As Dr. Cem Kaner so wisely put it:
"Pay attention to zeros. If there is a zero, someone will divide by it."

Especially in safety-critical projects and modern, service-based architectures with dynamic changes during runtime, robustness is a key factor for the success of your project. The BTC EmbeddedPlatform extension provides you with advanced insights into the robustness of your code and can either show that your code is robust or generate a test case that brings you directly to the problem.

  • Equivalence Class and Boundary Values: Ensure value range and equivalence class coverage across relevant variables in your code to avoid unexpected behavior. Auto generate or manually define desired and undesired ranges and ensure that certain values don't exceed their specified limits.
  • Division by Zero: Checks all divisions in your code and ensures that no division by zero can occur.
  • Array Out of Bounds: Checks all array accesses in your code and ensures that no out-of-bounds access can occur.
  • Downcast Checks: Checks all casts to smaller datatypes in your code and ensures that there are no overflows/underflows.
  • Dead Code Detection: Checks all code in your project and ensures that there is no dead code (i.e. code that is never executed) in your project.

Test Reporting

HTML test reports are a great way to summarize and visualize your test results. They provide a clear overview of the test coverage, test results, and any issues that were found during testing. This makes it easy to share your results with stakeholders and keep track of your progress.

report

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft