Difference between revisions of "User:Log Linden/Socks5Viewer/TestPlan"

From Second Life Wiki
Jump to navigation Jump to search
(Added more test steps skeleton.)
(More fleshing out of the test cases.)
Line 3: Line 3:
| __TOC__
| __TOC__
|}
|}
== Scope ==
= Scope =
* This test is to verify that newly added proxy support in the viewer works as expected.
* This test is to verify that newly added proxy support in the viewer works as expected.
* The user story that prompted the changes is [https://jira.secondlife.com/browse/STORM-1112 STORM-1112 ].
* The user story that prompted the changes is [https://jira.secondlife.com/browse/STORM-1112 STORM-1112 ].
* This test will only be meaningful if performed in a network environment that does not have access to second life.
* This test will only be meaningful if performed in a network environment that does not have access to second life.
* The test also requires a working web proxy host and SOCKS 5 proxy host.  
* The test also requires a working web proxy host and SOCKS 5 proxy host.  
* Estimated running time: 2 hours/platform after securing the appropriate test environment
* Estimated running time: 3 hours/platform after securing the appropriate test environment.


== Set-up ==
= Set-up =
=== Environment ===  
== Environment ==
* Viewer: This test requires a build of the viewer that contains the Proxy code. Grab the latest for your platform from the link below:
* Viewer: This test requires a build of the viewer that contains the Proxy code. Grab the latest for your platform from the link below:
{{ViewerInstallers|{{JiraIssue|STORM-1112|Implement SOCKS 5 proxy}}| Allow the Second Life Viewer to connect through a SOCKS 5 proxy. |task=log_viewer-socks5|repo=https://bitbucket.org/log_linden/viewer_socks5}}
{{ViewerInstallers|{{JiraIssue|STORM-1112|Implement SOCKS 5 proxy}}| Allow the Second Life Viewer to connect through a SOCKS 5 proxy. |task=log_viewer-socks5|repo=https://bitbucket.org/log_linden/viewer_socks5}}
Line 20: Line 20:
* While 3rd party testers are welcome to set up a duplicate of our reference gateway server, we are also interested in results you might get in your organization's specific network setup, rather than using our reference setup. Since you might not be allowed to reconfigure your organization's firewall or proxy host, feel free to only test in the proxy configuration your organization supports and report on results you observe.
* While 3rd party testers are welcome to set up a duplicate of our reference gateway server, we are also interested in results you might get in your organization's specific network setup, rather than using our reference setup. Since you might not be allowed to reconfigure your organization's firewall or proxy host, feel free to only test in the proxy configuration your organization supports and report on results you observe.


=== Other ===  
== Other ==
* Second Life Account that is able to upload mesh assets on the grid being tested.
* Second Life account that is able to upload mesh assets on the grid being tested.
* At least one notecard, sound, and animation in your avatar's inventory.
* At least one notecard, sound, and animation in your avatar's inventory.
* Your avatar should be a member of a group and be allowed to send messages in that group.
* Your avatar should be a member of a group and be allowed to send messages in that group.
* Part of the test is making sure land parcel media is functional. Find somewhere in world that has botha 
* Sandbox, or other area where building is allowed.
* Sandbox, or other area where building is allowed.
* Enable advanced mode. The proxy options are not available in basic mode.
* Have a test image file, sound file, and mesh file available to test upload functionality.


== Common Procedures ==
= Common Procedures =
Refer to this section when asked to do one of the following in a test step.
Refer to this section when asked to do one of the following in a test step.
# '''Enable proxy connection with HTTP traffic sent through web proxy.'''
# '''Enable proxy connection with HTTP traffic sent through web proxy.'''
Line 56: Line 59:
## Restart the Viewer.
## Restart the Viewer.


== Test Steps ==
= Test Steps =
=== Configuration Consistency Checks ===
== Configuration Consistency Checks ==
# '''Expected Defaults''' Check the default configuration.
# '''Expected Defaults''' Check the default configuration.
## step 1
## step 1
Line 63: Line 66:
## '''Verify''' against expected behavior
## '''Verify''' against expected behavior


=== Proxy Enabled, other HTTP through Web Proxy ===
== Proxy Enabled, other HTTP through Web Proxy ==
Before starting this section, follow the instructions above to enabled the proxy and send HTTP traffic through the web proxy.
# Follow the instructions above to enable the proxy and send HTTP traffic through the web proxy.


==== Viewer Intialization ====
=== Viewer Initialization ===
# '''HTTP Tables Loading'''  
# '''HTTP Tables Loading''' Verify that the GPU table and feature table are able to be fetched by the proxy.
## Browse to the install directory of the viewer.
# '''Login Screen Renders Correctly
# '''Login Screen Renders Correctly
==== Avatar Navigation and Movement ====
=== Avatar Navigation and Movement ===
# '''Walking'''
# '''Walking'''
## '''Verify'''
# '''Sitting'''
# '''Sitting'''
## '''Verify'''
# '''Flying'''
# '''Flying'''
## '''Verify'''
# '''Map'''
# '''Map'''
## '''Verify'''
# '''Minimap'''
# '''Minimap'''
## '''Verify'''
# '''Region Crossing'''
# '''Region Crossing'''
## '''Verify'''
# '''Intra-region teleport'''
# '''Intra-region teleport'''
## '''Verify'''
# '''Inter-region teleport'''
# '''Inter-region teleport'''
==== Avatar Communication ====
## '''Verify'''
 
=== Avatar Communication ===
# '''Local Chat'''
# '''Local Chat'''
## '''Verify'''
# '''Group Chat'''
# '''Group Chat'''
## '''Verify'''
# '''IM'''
# '''IM'''
==== Asset Download Tests ====
## '''Verify'''
=== Asset Download Tests ===


# '''Texture'''
# '''Texture'''
## '''Verify'''
# '''Sounds'''
# '''Sounds'''
## '''Verify'''
# '''Notecard'''
# '''Notecard'''
## '''Verify'''
# '''Animation'''
# '''Animation'''
## '''Verify'''
# '''Mesh'''
# '''Mesh'''
## '''Verify'''


# '''Legacy Fetch Methods'''
# '''Legacy Fetch Methods'''
## Disable HTTP Inventory and HTTP Textures
## Disable HTTP Inventory and HTTP Textures
## '''Verify'''
## '''Verify'''


==== Asset Upload Tests ====
=== Asset Upload Tests ===
# '''Texture'''
# '''Texture'''
## '''Verify'''
# '''Sound'''
# '''Sound'''
## '''Verify'''
# '''Mesh'''
# '''Mesh'''
## '''Verify'''
# '''Object Creation'''
# '''Object Creation'''
## '''Verify'''
# '''Scripting'''
# '''Scripting'''
## '''Verify'''
=== Integrated Web Browser ===
=== Integrated Web Browser ===
# '''Browsing Test''' The integrated webkit browser can navigate web pages.
##


==== Media Textures ====
=== Media on a Prim ===
# '''Web Media'''
## '''Verify''' that web media is visible.
# '''Video Media'''
## '''Verify''' that video media is visible.


== Proxy Enabled, other HTTP through SOCKS 5 Proxy ==
== Proxy Enabled, other HTTP through SOCKS 5 Proxy ==
# '''Repeat Connectivity Tests''' Verify that sending other HTTP traffic through the SOCKS 5 proxy works correctly.
## Rerun the following list of test cases, which are described in the section above.
### Viewer Initialization
### Avatar Navigation and Movement
### Avatar Communication
### Asset Download Tests
### Asset Upload Tests
### Integrated Web Browser
### Media On a Prim
## '''Verify''' that all tests pass.


== No Proxy Enabled ==
== No Proxy Enabled ==
# '''Repeat Connectivity Tests''' Verify that users that are not using the proxy will not be negatively impacted by the change.
## Either test on another computer that is not firewalled, or relax the firewall restrictions on the testing network. If using the reference gateway configuration, run the ''nat_forward_all.sh'' script to allow traffic through without going through a proxy.
## Disable the proxy as described above.
## Rerun the following list of test cases, which are described in the section above.
### Viewer Initialization
### Avatar Navigation and Movement
### Avatar Communication
### Asset Download Tests
### Asset Upload Tests
### Integrated Web Browser
### Media On a Prim
## '''Verify''' that all tests pass.
## Re-enable the firewall if you disabled it before further testing.


== SOCKS Authentication Test ==
== SOCKS 5 with Username/Password Authentication ==
# '''Successful Login with SOCKS Authentication''' Test that the viewer can connect when the SOCKS 5 host requires a password.
## Enable both proxies, with other traffic going through SOCKS 5. 
## Also in the proxy settings floater, select Username/Password as the SOCKS Authentication method.
## Enter your SOCKS 5 username and password in the appropriate fields.  If you followed the reference gateway instructions, your linux username and password should work for the socks credentials.
## Select OK.
## Try to log in to Second Life.
## '''Verify''' that login is successful.
## Leave authentication enabled for the next test.
## Optional: The previous set of tests could be run in this mode as well to verify that the Username/Password authentication method works as well. This is a lower priority than the other three modes because this configuration is very similar to the no authentication test, and should either work or not work.
# '''SOCKS 5 Password Security''' Make sure the password isn't being stored in cleartext.
## Leave SOCKS 5 authentication enabled in the viewer from the previous test.
## Close all running instances of the viewer.
## Navigate to the user's Second Life settings directory. 
## Search, using grep or ctrl-f in notepad depending on the platform, for the username and password you used to connect to the SOCKS 5 server in the previous step in the settings.xml that corresponds to the viewer version you are testing with (settings.xml if using a release version, settings_development.xml if using a development build, etc).
## '''Verify''' that the username and password do not appear in the settings files.
## Start the viewer and disable authentication.


----
----
Line 130: Line 203:
## Performance degradation is observed when the proxy is disabled.
## Performance degradation is observed when the proxy is disabled.
# Known Issues
# Known Issues
## SLVoice does not support proxies, therefore voice is not expected to work when running the viewer behind a strict firewall.
## SLVoice does not support proxies, therefore voice is not expected to work when running the viewer behind a strict firewall. If voice is enabled, an error message will appear when the viewer fails to connect to the voice server.


== Tear Down ==
== Tear Down ==
* Disable all proxies in the viewer configuration.
* Disable all proxies in the viewer configuration.

Revision as of 13:19, 10 August 2011

Scope

  • This test is to verify that newly added proxy support in the viewer works as expected.
  • The user story that prompted the changes is STORM-1112 .
  • This test will only be meaningful if performed in a network environment that does not have access to second life.
  • The test also requires a working web proxy host and SOCKS 5 proxy host.
  • Estimated running time: 3 hours/platform after securing the appropriate test environment.

Set-up

Environment

  • Viewer: This test requires a build of the viewer that contains the Proxy code. Grab the latest for your platform from the link below:
STORM-1112 Implement SOCKS 5 proxy
Allow the Second Life Viewer to connect through a SOCKS 5 proxy.
Windows | Macintosh | Linux

Source: https://bitbucket.org/log_linden/viewer_socks5
Details for these builds (build logs, included changesets)



  • Server: The test requires testing of mesh upload and download functionality, so access to a region with mesh support is required. Agni or Aditi are each fine. Region crossing will also be tested, so adjacent regions to test in will also be required.
  • A restrictive, firewalled network to connect the testing machine to is required to obtain valid test results.
  • A working web proxy host and a working SOCKS 5 host are required to complete the test.
  • Instructions to set up a reference Ubuntu Linux server that will act as a firewall and proxy gateway are available.
  • While 3rd party testers are welcome to set up a duplicate of our reference gateway server, we are also interested in results you might get in your organization's specific network setup, rather than using our reference setup. Since you might not be allowed to reconfigure your organization's firewall or proxy host, feel free to only test in the proxy configuration your organization supports and report on results you observe.

Other

  • Second Life account that is able to upload mesh assets on the grid being tested.
  • At least one notecard, sound, and animation in your avatar's inventory.
  • Your avatar should be a member of a group and be allowed to send messages in that group.
  • Part of the test is making sure land parcel media is functional. Find somewhere in world that has botha
  • Sandbox, or other area where building is allowed.
  • Enable advanced mode. The proxy options are not available in basic mode.
  • Have a test image file, sound file, and mesh file available to test upload functionality.

Common Procedures

Refer to this section when asked to do one of the following in a test step.

  1. Enable proxy connection with HTTP traffic sent through web proxy.
    1. Change these settings before logging into Second Life.
    2. Open the Proxy settings floater. Me->Preferences->Setup->"Adjust Proxy Settings"
    3. Check "Use HTTP Proxy for Web pages" and enter the address and port number.
    4. Check "Use SOCKS 5 Proxy for UDP traffic" and enter the address and port number.
    5. Under other HTTP traffic proxy, select "Use HTTP Proxy".
    6. Click OK.
  1. Enable proxy connection with HTTP traffic sent through SOCKS 5 proxy.
    1. Change these settings before logging into Second Life.
    2. Open the Proxy settings floater. Me->Preferences->Setup->"Adjust Proxy Settings"
    3. Check "Use HTTP Proxy for Web pages" and enter the address and port number.
    4. Check "Use SOCKS 5 Proxy for UDP traffic" and enter the address and port number.
    5. Under other HTTP traffic proxy, select "Use SOCKS 5 Proxy".
    6. Click OK.
  1. Disable all proxies
    1. Change these settings before logging into Second Life.
    2. Open the Proxy settings floater. Me->Preferences->Setup->"Adjust Proxy Settings"
    3. Uncheck "Use HTTP Proxy for Web pages".
    4. Uncheck "Use SOCKS 5 Proxy for UDP traffic".
    5. Click OK.
  1. Clear Viewer Caches
    1. Click the "Clear Cache" button on the advanced tab of the preferences floater.
    2. Confirm that you want to clear the cache.
    3. Restart the Viewer.

Test Steps

Configuration Consistency Checks

  1. Expected Defaults Check the default configuration.
    1. step 1
    2. step 2
    3. Verify against expected behavior

Proxy Enabled, other HTTP through Web Proxy

  1. Follow the instructions above to enable the proxy and send HTTP traffic through the web proxy.

Viewer Initialization

  1. HTTP Tables Loading Verify that the GPU table and feature table are able to be fetched by the proxy.
    1. Browse to the install directory of the viewer.
  2. Login Screen Renders Correctly

Avatar Navigation and Movement

  1. Walking
    1. Verify
  2. Sitting
    1. Verify
  3. Flying
    1. Verify
  4. Map
    1. Verify
  5. Minimap
    1. Verify
  6. Region Crossing
    1. Verify
  7. Intra-region teleport
    1. Verify
  8. Inter-region teleport
    1. Verify

Avatar Communication

  1. Local Chat
    1. Verify
  2. Group Chat
    1. Verify
  3. IM
    1. Verify

Asset Download Tests

  1. Texture
    1. Verify
  2. Sounds
    1. Verify
  3. Notecard
    1. Verify
  4. Animation
    1. Verify
  5. Mesh
    1. Verify
  1. Legacy Fetch Methods
    1. Disable HTTP Inventory and HTTP Textures
    2. Verify
    3. Verify

Asset Upload Tests

  1. Texture
    1. Verify
  2. Sound
    1. Verify
  3. Mesh
    1. Verify
  4. Object Creation
    1. Verify
  5. Scripting
    1. Verify

Integrated Web Browser

  1. Browsing Test The integrated webkit browser can navigate web pages.

Media on a Prim

  1. Web Media
    1. Verify that web media is visible.
  2. Video Media
    1. Verify that video media is visible.

Proxy Enabled, other HTTP through SOCKS 5 Proxy

  1. Repeat Connectivity Tests Verify that sending other HTTP traffic through the SOCKS 5 proxy works correctly.
    1. Rerun the following list of test cases, which are described in the section above.
      1. Viewer Initialization
      2. Avatar Navigation and Movement
      3. Avatar Communication
      4. Asset Download Tests
      5. Asset Upload Tests
      6. Integrated Web Browser
      7. Media On a Prim
    2. Verify that all tests pass.

No Proxy Enabled

  1. Repeat Connectivity Tests Verify that users that are not using the proxy will not be negatively impacted by the change.
    1. Either test on another computer that is not firewalled, or relax the firewall restrictions on the testing network. If using the reference gateway configuration, run the nat_forward_all.sh script to allow traffic through without going through a proxy.
    2. Disable the proxy as described above.
    3. Rerun the following list of test cases, which are described in the section above.
      1. Viewer Initialization
      2. Avatar Navigation and Movement
      3. Avatar Communication
      4. Asset Download Tests
      5. Asset Upload Tests
      6. Integrated Web Browser
      7. Media On a Prim
    4. Verify that all tests pass.
    5. Re-enable the firewall if you disabled it before further testing.

SOCKS 5 with Username/Password Authentication

  1. Successful Login with SOCKS Authentication Test that the viewer can connect when the SOCKS 5 host requires a password.
    1. Enable both proxies, with other traffic going through SOCKS 5.
    2. Also in the proxy settings floater, select Username/Password as the SOCKS Authentication method.
    3. Enter your SOCKS 5 username and password in the appropriate fields. If you followed the reference gateway instructions, your linux username and password should work for the socks credentials.
    4. Select OK.
    5. Try to log in to Second Life.
    6. Verify that login is successful.
    7. Leave authentication enabled for the next test.
    8. Optional: The previous set of tests could be run in this mode as well to verify that the Username/Password authentication method works as well. This is a lower priority than the other three modes because this configuration is very similar to the no authentication test, and should either work or not work.
  2. SOCKS 5 Password Security Make sure the password isn't being stored in cleartext.
    1. Leave SOCKS 5 authentication enabled in the viewer from the previous test.
    2. Close all running instances of the viewer.
    3. Navigate to the user's Second Life settings directory.
    4. Search, using grep or ctrl-f in notepad depending on the platform, for the username and password you used to connect to the SOCKS 5 server in the previous step in the settings.xml that corresponds to the viewer version you are testing with (settings.xml if using a release version, settings_development.xml if using a development build, etc).
    5. Verify that the username and password do not appear in the settings files.
    6. Start the viewer and disable authentication.

Pass/Fail Criteria

  1. Passes if
    1. No unexpected behaviors are observed
  2. Fails if
    1. Deviation from expected behavior is observed
    2. A bug is detected that was not accounted for by this test plan
    3. Performance degradation is observed when the proxy is disabled.
  3. Known Issues
    1. SLVoice does not support proxies, therefore voice is not expected to work when running the viewer behind a strict firewall. If voice is enabled, an error message will appear when the viewer fails to connect to the voice server.

Tear Down

  • Disable all proxies in the viewer configuration.