STRIDE Overview: Difference between revisions

From STRIDE Wiki
Jump to navigation Jump to search
(Created page with '<span style="#color:#0067A5"> <font size="5"> Welcome to the STRIDE™ Test System Overview </font> </span> STRIDE has been uniquely designed for '' '''On-Target Expectation Te…')
 
No edit summary
 
(24 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<span style="#color:#0067A5"> <font size="5"> Welcome to the STRIDE™ Test System Overview </font> </span>  
<span style="#color:#0067A5"> <font size="5"> Welcome to the STRIDE™ Wiki </font> </span>  
__NOTOC__
STRIDE™ is a '''test infrastructure''' used by engineers to implement and execute tests for validating embedded software executing On-Target. STRIDE has been designed specifically for '''On-Target White-box Testing'''.


STRIDE has been uniquely designed for '' '''On-Target Expectation Testing™''' ''. The focus of expectation testing is to enable project teams, both testers and developers, to '' '''optimize testing''' '' of their embedded software. Expectation testing leverages simple source code instrumentation to automate verifying complicated behavior such as:
The STRIDE system consists of:
; A software ''Framework''
: enabling the creation of fully automated  '''''Test Assets''''' used to verify the internal design of your software


:* System flow
; A hosted ''Web Application - [[STRIDE_Overview#STRIDE_Test_Space | '''Test Space''']]
:* Threads and processes
: for storing and analyzing test results, thus providing on-demand availability of timely, accurate, and meaningful test results data
:* States, Drivers
:* ... and much more


The STRIDE system consists of the '' '''STRIDE Framework''' '' for testing and '' '''STRIDE Test Space™''' '' for result tracking and collaboration. The STRIDE Framework can be used to implement and execute expectation tests to validate difficult software scenarios.  Expectation tests are written in script and executed on the host while connected to your actual device running the software under test. Expectation tests leverage strategic developer source instrumentation, called '' '''Test Points''' '', which enables testers and integrators to gain broader coverage. The STRIDE Framework can also be used to implement tests written in native C/C++ that execute on-target. STRIDE Test Space is a cloud-hosted web application that provides a means to automatically publish and share test results based on ad-hoc or automated regression runs.


[[image:STRIDE Test System.jpg | 550px | center | thumb]]


STRIDE enables teams to create portfolios of reusable test assets and exploit these assets to automatically and continuously verify the health of engineering builds, thereby '' '''identify defects earlier by pre-validating code before system test''' ''. Tests can also be executed on-demand as part of the normal workflow to easily validate bug fixes and new features.
==STRIDE Framework ==


[[image:STRIDE 4.2 Framework-a.jpg |right|400px|border ]]


The following screencasts provide a high level overview of the '''STRIDE Test System''':
===Runtime===
The STRIDE Framework includes a [[Runtime_Reference | '''Runtime''']] software source package that supports connectivity with the host system. It is integrated with embedded application software to enable ''testability'' to be compiled into the software with minimal impact on performance or the size of the application. The software is agnostic to the RTOS, CPU, and transport. It can be configured to support multi-processes, multi-threads, user/kernel spaces, or a simpler single application process. Typically the runtime is configured as a background thread and only executes when running tests. It provides [[Runtime_Test_Services | '''services for testing''']] and [[Source_Instrumentation_Overview | '''source instrumentation''']].


:* '''Key Features''' of STRIDE (10 minutes)
=== Runner ===
:* '''Source Instrumentation''' demonstration (8 minutes)
The '' '''Framework''' '' also contains a lightweight [[Stride_Runner | '''Runner''']] application that is a host-based command-line utility for interactive and automated test execution. It also provides services for result publishing to our [[STRIDE_Test_Space | '''hosted web application''']].
:* '''Tests in Script''' demonstration (10 minutes)
:* '''Tests in C/C++''' demonstration (8 minutes)
:* '''Result Tracking and Collaboration''' demonstration (5 minutes)


In addition the following screencasts are beneficial to new users of STRIDE:
<br>
:* How to navigate the '''STRIDE Wiki''' (2 minutes)
:* Leveraging the '''STRIDE Sandbox''' (2 minutes)
:* Learning with the '''STRIDE Samples''' (4 minutes)
:* High level description of the '''STRIDE Components''' (4 minutes)


The STRIDE '''[[Media:STRIDE_Datasheet_v4.pdf | datasheet]]''' provides a high level summary of the STRIDE Test System.
===Build Tools===
[[image:STRIDE 4.2 Framework-b.jpg |right|300px | border]]


<hr/>
The [[STRIDE_Build_Tools | '''STRIDE Build Tools''']] are a set of command-line utilities that integrate with your target software build process. They preprocess standard C/C++ header files that contain STRIDE test declarations to  auto-generate source code comprising a custom [[Intercept_Module | '''Intercept Module''']]. The intercept module code is then built with the Runtime to provide ''fixturing'' and ''harnessing'' test logic as part of your build image.
''Please select a following STRIDE screencast below:''  
 
==STRIDE Test Space==
[[image:STRIDE 4.2 Test Space.jpg | 430px | right | border]]
Once tests have been implemented, they are executed using the host-based [[STRIDE_Runner | '''Runner''']] application. Resulting '''test reports''' can be automatically uploaded to our '''web application''' - [[STRIDE_Test_Space | '''STRIDE Test Space''']]. This application allows both local and distributed team members to track and collaborate on results.
 
Failure resolution is optimized by centralizing results and providing specific source information related to failures. ''Test Space'' also has built-in '''collaboration features''' in the form of email notification for new results and regression against a baseline as well as messaging.
 
<br>
<br>
<br>
 
== STRIDE Testing Features ==
STRIDE supports three general [[Types_of_Testing_Supported_by_STRIDE | '''types of testing''']]:
* Unit Testing,
* API Testing, and
* Integration Testing.
 
STRIDE has been designed to deliver a broad spectrum of [[What_is_Unique_About_STRIDE#STRIDE_offers_testing_techniques_for_deeper_coverage | '''testing capabilities''']] that enable teams to '''''test earlier and more effectively'''''. Unique features such as [[What_is_Unique_About_STRIDE#Test_Macros | '''assertion macros''']], [[What_is_Unique_About_STRIDE#Fixturing | '''fixturing''']], and [[What_is_Unique_About_STRIDE#Test_Doubles | '''function doubling''']] facilitate deeper test coverage of your software components. STRIDE also provides [[What_is_Unique_About_STRIDE#Expectations |'''Expectations''']] as an added validation technique. Expectation testing is unique in that it ''does not'' focus on calling functions and validating return values. The technique rather validates the expected sequencing of the software, along with state data, executing under normal operating conditions.


Tests can be implemented in both [[What_is_Unique_About_STRIDE#C.2FC.2B.2B | '''native code''']] on the target and [[What_is_Unique_About_STRIDE#Script | '''script''']] on the host.
<br>
<br>


* [[Key Features of STRIDE]] (10 minutes)
<hr/>


* [[Source Instrumentation Demo]] (8 minutes)
<font size="3">
'''For more details refer to the following:'''
<hr/>


* [[Tests in Script Demo]] (10 minutes]
* '''[[What is Unique About STRIDE | What is Unique About STRIDE]]'''


* [[Tests in C/C++ Demo]] (8 minutes]
* '''[[Types of Testing Supported by STRIDE | Types of Testing Supported]]'''


* [[Test Result Collaboration Demo]] (5 minutes]
* '''[[Frequently Asked Questions About STRIDE | Frequently Asked Questions]]'''


* [[How to navigate the STRIDE Wiki]] (2 minutes)
</font>


* [[Leveraging the STRIDE Sandbox]] (2 minutes)
<hr/>
For a '''PDF version''' of this article please click [[Media:STRIDE_4.2_Datasheet.pdf | '''HERE''']]


* [[Learning with the STRIDE Samples]] (4 minutes)
For an '''overview screencast''' of STRIDE please click [[STRIDE_Overview_Video | '''HERE''']]


* [[High level description of the STRIDE Components]] (4 minutes)
<hr/>
[[Category: Overview]]

Latest revision as of 22:45, 23 November 2010

Welcome to the STRIDE™ Wiki

STRIDE™ is a test infrastructure used by engineers to implement and execute tests for validating embedded software executing On-Target. STRIDE has been designed specifically for On-Target White-box Testing.

The STRIDE system consists of:

A software Framework
enabling the creation of fully automated Test Assets used to verify the internal design of your software
A hosted Web Application - Test Space
for storing and analyzing test results, thus providing on-demand availability of timely, accurate, and meaningful test results data


STRIDE Framework

STRIDE 4.2 Framework-a.jpg

Runtime

The STRIDE Framework includes a Runtime software source package that supports connectivity with the host system. It is integrated with embedded application software to enable testability to be compiled into the software with minimal impact on performance or the size of the application. The software is agnostic to the RTOS, CPU, and transport. It can be configured to support multi-processes, multi-threads, user/kernel spaces, or a simpler single application process. Typically the runtime is configured as a background thread and only executes when running tests. It provides services for testing and source instrumentation.

Runner

The Framework also contains a lightweight Runner application that is a host-based command-line utility for interactive and automated test execution. It also provides services for result publishing to our hosted web application.


Build Tools

STRIDE 4.2 Framework-b.jpg

The STRIDE Build Tools are a set of command-line utilities that integrate with your target software build process. They preprocess standard C/C++ header files that contain STRIDE test declarations to auto-generate source code comprising a custom Intercept Module. The intercept module code is then built with the Runtime to provide fixturing and harnessing test logic as part of your build image.

STRIDE Test Space

STRIDE 4.2 Test Space.jpg

Once tests have been implemented, they are executed using the host-based Runner application. Resulting test reports can be automatically uploaded to our web application - STRIDE Test Space. This application allows both local and distributed team members to track and collaborate on results.

Failure resolution is optimized by centralizing results and providing specific source information related to failures. Test Space also has built-in collaboration features in the form of email notification for new results and regression against a baseline as well as messaging.




STRIDE Testing Features

STRIDE supports three general types of testing:

  • Unit Testing,
  • API Testing, and
  • Integration Testing.

STRIDE has been designed to deliver a broad spectrum of testing capabilities that enable teams to test earlier and more effectively. Unique features such as assertion macros, fixturing, and function doubling facilitate deeper test coverage of your software components. STRIDE also provides Expectations as an added validation technique. Expectation testing is unique in that it does not focus on calling functions and validating return values. The technique rather validates the expected sequencing of the software, along with state data, executing under normal operating conditions.

Tests can be implemented in both native code on the target and script on the host.


For more details refer to the following:



For a PDF version of this article please click HERE

For an overview screencast of STRIDE please click HERE