Test Integration: Difference between revisions
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
== Creating TestSpace Containers == | == Creating TestSpace Containers == | ||
As a first step, we must create a | As a first step, we must create a '''Project''' and '''Test Space''' into which our test results will be uploaded. | ||
[[image:TestIntro_Testspace.jpg|thumb||Newly created TestIntro Test Space]] | |||
# Using your web browser, navigate to your company's testspace site and login<ref>Your testspace URL and login credentials are provided by S2 Technologies</ref> | # Using your web browser, navigate to your company's testspace site and login<ref>Your testspace URL and login credentials are provided by S2 Technologies</ref> | ||
# Click on the | # Click on the '''All Projects''' tab, then click the '''Create New Test Space''' button. | ||
# | # If your company's site doesn't have any Projects defined you will be prompted to create a new project. If that is the case, follow these sub-steps: | ||
## | ## Fill in the '''Name''' as: Stride Deployment | ||
## | ## Fill in the '''Description''' as: sandbox for deployment tests | ||
## | ## Ensure that the '''Active''' box is checked | ||
# | ## Click the '''Create''' button | ||
#* Name: TestIntro | # At the top of the '''New s2_test_space''' page, enter text as follows: | ||
#* Description: testintro sample tests | #* '''Name:''' TestIntro | ||
#* Max results to keep: 10 | #* '''Description:''' testintro sample tests | ||
# If you would like to grant access to other users, check the appropriate boxes in the ''additional users'' | #* '''Max results to keep:''' 10 | ||
# For now, skip the ''auto compare'' options, you can change these (and other options) later if desired | # If you would like to grant access to other users, check the appropriate boxes in the '''additional users''' section | ||
# In the Project list box, choose | # For now, skip the '''auto compare''' options, you can change these (and other options) later if desired | ||
# Finally, click the | # In the Project list box, choose ''Stride Deployment''. If this isn't available, click the '''New Project...''' link and enter the project name and description as described earlier | ||
# Finally, click the '''create''' button | |||
# On the subsequent page that is displayed, you will be able to manually upload results data, but leave the browser as it is, we will be automatically uploading results in a later step. | # On the subsequent page that is displayed, you will be able to manually upload results data, but leave the browser as it is, we will be automatically uploading results in a later step. | ||
== Adding the TestIntro Tests to the Target Build == | == Adding the TestIntro Tests to the Target Build == | ||
Here we will add the TestIntro sample tests to the target build. We | Here we will add the [Test Intro Sample|TestIntro sample tests]] to the target build.<ref>The TestIntro sample is distributed in the [[Package_Installation#Samples|Samples package]].</ref> We will use the same technique used earlier in the [[Test_Integration#Building_the_Target_with_STRIDE_Diagnostics|Test Integration]] to incorporate these tests. | ||
The [[Test Unit Pragmas|SCL pragmas]] that declare the TestIntro test units are in the file <tt>s2_testintro_test.h</tt>, so this file needs to be supplied as input to the STRIDE build tools. If you are using the Makefile technique described in [[Test_Integration#Build_Tool_Inputs|TestIntegration]], you simply need to copy <tt>s2_testintro_test.h</tt> to a designated SCL_DIRS directory so that it will be picked up as input to s2scompile. | |||
In addition, you need to include the TestIntro source files in the target compile/link. | |||
Once the build is complete, download the binary to the target in preparation of running the tests. | |||
== Running and Publishing the TestIntro Tests == | == Running and Publishing the TestIntro Tests == | ||
Line 34: | Line 38: | ||
If not already present, install the appropriate [[Package_Installation#Host_Tools | Host Tools]] package on the host computer. | If not already present, install the appropriate [[Package_Installation#Host_Tools | Host Tools]] package on the host computer. | ||
We will now run [[Stride Runner|stride]] with options instructing it to upload results to your TestSpace site. The command line gets rather long when all | We will now run [[Stride Runner|stride]] with options instructing it to upload results to your company's [[STRIDE Test Space|TestSpace site]]. The command line gets rather long when all the needed options are specified, so it's recommended that you create an options file to submit the command line options. | ||
Create a text file named TestIntroOpts.txt and add the following text. You will need to fill in your particular argument values where brackets [ ] are shown. | Create a text file named <tt>TestIntroOpts.txt</tt> and add the following text. You will need to fill in your particular argument values where brackets [ ] are shown. Note that the --project and --space argument values must match pre-existing containers on your TestSpace site. | ||
<pre> | <pre> | ||
Line 47: | Line 51: | ||
--space TestIntro | --space TestIntro | ||
</pre> | </pre> | ||
To run and upload the tests, ensure that your target system is running and that your host computer is connected to the Internet, then enter the following in a host console: | |||
stride -O TestIntroOpts.txt | stride -O TestIntroOpts.txt | ||
The text below should be output to your host console as the test progresses. | |||
<pre> | <pre> | ||
Loading database... | Loading database... | ||
Line 69: | Line 75: | ||
Uploading to test space... | Uploading to test space... | ||
</pre> | </pre> | ||
Notice that the last line indicates that the results are being uploaded to test space. | |||
== Viewing Results in TestSpace == | == Viewing Results in TestSpace == | ||
[[image:TestIntro_spacepage.jpg|thumb||Newly created TestIntro Test Space]] | |||
Returning to your web browser, login to your company's test space site if needed and navigate to the '''All Projects''' page. | |||
You should now see the '''TestIntro''' test space listed under the '''Stride Deployment''' project, and see that TestIntro's '''Result Set Count''' is now 1. | |||
Click on the '''TestIntro''' link to be presented with the '''TestIntro''' space page. At the bottom of the page you will see a table displaying the uploaded result sets for this test space. Click on the '''Sequence_1''' link to show detailed results for this test run. | |||
== Next Steps == | == Next Steps == |
Revision as of 19:13, 10 June 2009
In this article, we discuss establishment of continuous integration testing using STRIDE.
The starting point of this article assumes that your have completed the steps described in the article Test Integration.
Creating TestSpace Containers
As a first step, we must create a Project and Test Space into which our test results will be uploaded.
- Using your web browser, navigate to your company's testspace site and login[1]
- Click on the All Projects tab, then click the Create New Test Space button.
- If your company's site doesn't have any Projects defined you will be prompted to create a new project. If that is the case, follow these sub-steps:
- Fill in the Name as: Stride Deployment
- Fill in the Description as: sandbox for deployment tests
- Ensure that the Active box is checked
- Click the Create button
- At the top of the New s2_test_space page, enter text as follows:
- Name: TestIntro
- Description: testintro sample tests
- Max results to keep: 10
- If you would like to grant access to other users, check the appropriate boxes in the additional users section
- For now, skip the auto compare options, you can change these (and other options) later if desired
- In the Project list box, choose Stride Deployment. If this isn't available, click the New Project... link and enter the project name and description as described earlier
- Finally, click the create button
- On the subsequent page that is displayed, you will be able to manually upload results data, but leave the browser as it is, we will be automatically uploading results in a later step.
Adding the TestIntro Tests to the Target Build
Here we will add the [Test Intro Sample|TestIntro sample tests]] to the target build.[2] We will use the same technique used earlier in the Test Integration to incorporate these tests.
The SCL pragmas that declare the TestIntro test units are in the file s2_testintro_test.h, so this file needs to be supplied as input to the STRIDE build tools. If you are using the Makefile technique described in TestIntegration, you simply need to copy s2_testintro_test.h to a designated SCL_DIRS directory so that it will be picked up as input to s2scompile.
In addition, you need to include the TestIntro source files in the target compile/link.
Once the build is complete, download the binary to the target in preparation of running the tests.
Running and Publishing the TestIntro Tests
To execute the TestIntro tests, use a Windows or Linux host computer that has connectivity with the target system via your configured STRIDE transport (TCP/IP or seral). Additionally, make the generated STRIDE database (.sidb) visible to the host computer via a shared filesystem or a file copy to the host system.
If not already present, install the appropriate Host Tools package on the host computer.
We will now run stride with options instructing it to upload results to your company's TestSpace site. The command line gets rather long when all the needed options are specified, so it's recommended that you create an options file to submit the command line options.
Create a text file named TestIntroOpts.txt and add the following text. You will need to fill in your particular argument values where brackets [ ] are shown. Note that the --project and --space argument values must match pre-existing containers on your TestSpace site.
-r /(*) --database [path]/stride.sidb --device [arg] -u --testspace [https://mycompany.stridetestspace.com@user:pwd] --project "Stride Deployment" --space TestIntro
To run and upload the tests, ensure that your target system is running and that your host computer is connected to the Internet, then enter the following in a host console:
stride -O TestIntroOpts.txt
The text below should be output to your host console as the test progresses.
Loading database... Connecting to device... runtime version: 4.1.01 Executing test units... s2_testintro_cclass > 1 passed, 1 failed, 0 in progress, 0 not in use. s2_testintro_flist > 2 passed, 1 failed, 0 in progress, 0 not in use. s2_testintro_testdoubles > 3 passed, 0 failed, 0 in progress, 0 not in use. s2_testintro_testpoints > 3 passed, 0 failed, 0 in progress, 0 not in use. Summary: 9 passed, 2 failed, 0 in progress, 0 not in use. Disconnecting from device... Saving result file... Uploading to test space...
Notice that the last line indicates that the results are being uploaded to test space.
Viewing Results in TestSpace
Returning to your web browser, login to your company's test space site if needed and navigate to the All Projects page.
You should now see the TestIntro test space listed under the Stride Deployment project, and see that TestIntro's Result Set Count is now 1.
Click on the TestIntro link to be presented with the TestIntro space page. At the bottom of the page you will see a table displaying the uploaded result sets for this test space. Click on the Sequence_1 link to show detailed results for this test run.
Next Steps
Automated Regression Testing
best to set things up so that you automatically
- build,
- load binaries on the hardware,
- start target running,
- run Stride tests
- publish results to test space
Organizing Tests
put test results in suites
develop tests with namespace conventions
Publication of Test Results
Upload to test space
comparison with previously uploaded data
immediately see trends in
- number of tests in each suite and overall
Best Practices
Use C++ Test Classes if Possible
If possible, use C++ Test Classes to write your test units. Test Classes offer extra features and are the easiest to use for programmers.
Use Namespacing to Organize Tests
Over time, you will end up with lots of test units. Grouping these tests for display or running will become important as the count of test units grows. (You can see an example of C namespacing in the TestIntro tests.)
Notes
- ↑ Your testspace URL and login credentials are provided by S2 Technologies
- ↑ The TestIntro sample is distributed in the Samples package.