Frequently Asked Questions About STRIDE
Testing
What specific testing techniques are enabled by STRIDE?
Unit Testing
API Testing
Behavior Testing
Scenario-based white box testing.
Can I use STRIDE if my embedded code has real-time constraints?
The STRIDE components and architecture are tailored specifically to embedded applications, overhead is minimal. STRIDE’s target components consume very little memory and can be configured to run at low priorities. Similarly, tracing overhead is minimized by collecting raw data on the target, and uploading tracing information at a low priority task to the host for processing.
If tight real-time constraints are a concern, STRIDE also supports target-resident test code, which minimizes transactions or overhead over the transport. In this case, STRIDE provides a framework for automating and managing the execution of the on-target test code, and publishing the test results.
How will STRIDE affect my real-time software performance?
The STRIDE components and architecture are tailored specifically to embedded applications; overhead is minimal.
Resource usage is configurable and can be tailored to the limitations of the target platform.
Size of runtime / intercept module
Typical RAM usage
Processing Impact
Aspect | Resources |
---|---|
STRIDE Runtime Code Space | TBD |
STRIDE Runtime Memory Usage | TBD |
STRIDE Threads | 2 Threads; configurable priority; blocked when inactive |
What about source instrumentation bloat?
Using Test Points / Logs
Should I leave the testability in?
Are all Test Points active? Will it affect performance?
What are the advantages of Test Points over logging?
How are test cases managed?
Individual test cases are organized into test units (on-target c/c++ tests) and test modules (host-based script tests) which typically target the verification of a specific subsystem or component.
Test units and test modules are runnable individually or in sequence with other test units/modules.
Test unit/module results may also be further organized into named test suites, which provide convenient results roll-ups to groups of test units/modules.
Can I use STRIDE together with test equipment?
External test equipment can further leverage STRIDE's value by providing sophisticated test harnessing.
The operation of computer-controlled test equipment can be automatically synchronized with STRIDE test unit/module execution for repeatable execution of complicated scenarios.
How does STRIDE support continuous integration?
The key principle of continuous integration is regular testing of your software--ideally done in an automated fashion. STRIDE tests are reusable and automated. Over time, these tests accumulate, providing more and more comprehensive coverage.
By automating the execution of tests and results publication via Test Space with every software build, development teams gain immediate feedback on defects and the health of their software. By detecting and repairing defects immediately, the expense and time involved with correcting bugs is minimized.
Installation and Deployment
What up-front integration is required to begin using STRIDE?
- PAL and Runtime Integration
- To support STRIDE remoting, the common STRIDE Runtime and OS-specific Platform Abstraction Layer (PAL) must be integrated into the target environment. PAL implementations exist for many popular embedded operating systems.
- Build System Integration
- To automatically generate harnessing code and test metadata, several STRIDE-related executables are added to your software build process.