BTC TestStack

Requirements-based Testing

Requirements-based testing for Simulink, TargetLink, Embedded Coder and handwritten code.

The problem

The tests are the easy part. Traceability, coverage and the test harness are not.

Requirements-based testing is typically a very time-consuming task — not only because of the manual effort of creating test cases, but because result traceability, coverage analysis and test-harness creation often mean stitching together a hodgepodge of poorly integrated tools.

Terminology

What is requirements-based testing?

Requirements-based testing (sometimes also called functional testing) is a test methodology that ensures a system-under-test — for example a software unit — correctly implements its requirements. Test cases and test objectives are derived from the requirements and implemented in a language that allows their execution on the system-under-test.

BTC TestStack provides a direct integration with Simulink, dSPACE TargetLink and MathWorks Embedded Coder, making it the perfect tool for testing models and production code. For projects working with handwritten C code, a test project that includes features like stub code generation and automatic call-graph analysis can be easily created. For larger models, sub-functions can be tested independently without the need for modifying the model.

Flexible test authoring, a built-in connection to requirements management tools, and integrated coverage analysis make BTC TestStack a one-stop solution for requirements-based testing of models and production code.

Works with
  • Simulink
  • dSPACE TargetLink
  • MathWorks Embedded Coder
  • Handwritten C
Agile test-driven development

Author and run tests where you work.

Live testing for Simulink

With live testing for Simulink, BTC TestStack provides a direct integration with Simulink, allowing developers to create, manage and execute test cases without leaving their development environment.

From a dedicated Simulink ribbon menu, test cases can be created straight from Simulink — for the model top level or even sub-models — and executed directly. When the model is modified, test cases can immediately be re-run without any update to the test project.

In later test stages, test cases can be directly reused, for example for software-in-the-loop testing or CI/CD runs.

Smart and powerful test authoring

In our experience, test cases are too often written in languages that were never designed for that purpose — scripting languages like MATLAB or Python, Excel tables, or even C code. BTC TestStack provides a powerful editor for functional test cases. It knows all details about the test architecture and protects users against invalid data entry — if enumerations are used, a drop-down menu lets you select the desired value directly.

  • Signal generator
  • Graphical viewer
  • Flexible tolerance handling
  • Formula editor for calculated values
  • Reusable macros & calibration sets

Test cases can be executed directly within the editor, with immediate visual feedback.

BTC TestStack

Requirements traceability

Managing traceability between tests and requirements is often a challenge, especially when requirements are changing. Instead of relying on error-prone exchange formats like Excel or ReqIF, BTC TestStack provides a reliable, direct API-based connection to popular requirements management tools like IBM DOORS, Siemens Polarion, PTC Integrity, codeBeamer or Jama.

In addition to requirements, it is even possible to synchronize test cases and simulation results, giving access to test-status information on project level directly in your ALM/PLM tool.

IBM DOORSSiemens PolarionPTC IntegritycodeBeamerJamaSystemWeaver

If a requirement is modified, BTC TestStack highlights the requirement as well as the linked test cases. A powerful diff view shows exactly what changed and supports impact analysis before you update the linked test cases.

Trusted AI

Automatic test generation with generative AI

With the BTC AI Assistant, you can harness the power of generative AI to create functional test cases directly from your natural-language requirements — converting plain-language descriptions into precise, executable test cases, saving time and reducing the potential for human error.

An integrated chatbot enhances your interaction with the generated test cases: ask questions about their structure and functionality, or provide additional information to keep them up to date and aligned with your evolving requirements.

BTC AI Assistant
Natural-language requirement
"When enable is set, the output ramps to target within 200 ms."
Generated test case
TC_07 — enable = true, target = 80 → ramp ≤ 200 ms
Ask the assistant
"Why does this test use 80 as the target?"
Requirements, model, code

Coverage on all levels.

Requirements coverage

Shows whether all requirements are covered by test cases, and whether the linked test cases pass across the different execution levels — MIL, SIL and PIL.

Model coverage

Documents the achieved coverage of a Simulink/Stateflow model. If test cases exist on different subsystem levels of a larger model, coverage metrics are automatically aggregated for the higher hierarchy levels.

Code coverage

Automatically calculated and updated in the background — create, change, import or delete a test case, and the code coverage report already reflects the change.

For models and code

Flexible debugging

As model-based development projects grow in complexity, debugging failed test cases becomes increasingly time-consuming — especially when function development and testing are handled by different teams. The key question: what's the most efficient way for a test engineer to hand a test scenario to the developer?

BTC TestStack generates self-contained sandboxes containing a copy of the system-under-test, the test case and the corresponding calibration values. Depending on the use case, this sandbox can be a Simulink model, a Microsoft Visual Studio project, or a generic code-based sandbox for other IDEs — easy to share with colleagues or customers, and safe to modify without touching the original files.

Simulink modelVisual Studio projectGeneric code sandbox
Certified

BTC TestStack

is ISO 26262 certified

The certificate addresses functional-safety standards across multiple industries:

ISO 26262
Automotive
IEC 61508-3:2010
Industrial / cross-industry functional safety
ISO 25119
Agricultural & forestry machinery
IEC 62304
Medical device software
EN 50716
Railway / rail applications

For ISO 26262, BTC TestStack is certified with the highest Tool Confidence Level (TCL), valid for all ASIL levels including ASIL D. We provide the certificate and report to customers free of charge on request — removing most tool-qualification effort on the customer side.

Get started

Talk to our engineering team.

Tell us where your engineering problem actually is. We'll tell you whether an evaluation license, a workshop, or a conversation is the right next step.