Studio:How is STRIDE different from other software testing approaches used by developers?
Software testing traditionally involves some form of harnessing and stubbing code. Specialized test code is required to drive, control, manage, and report on tests, plus additional code is needed to replace missing functionality or dependencies. In-house implementations are often quickly coded to test specific components, and this code is usually thrown away after serving its purposes. Commercial test tools provide productized variations of this approach but do not address the limitations for complex embedded development. For example, is it practical or possible to continuously load and unload test code on the target? Without the underlying software, how can tests be developed ahead of time or in parallel? How can developers perform rapid code/test/refactor cycles during implementation of new software? How can host-based simulation environments be leveraged?
STRIDE is designed to address the above issues through the following unique capabilities:
- Remote interfacing, accessing both function call APIs and messaging interfaces
- On-target interface tracing with profiling
- Dynamic interface interception
- Source instrumentation