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

From Second Life Wiki
Jump to navigation Jump to search
(More fleshing out of the test cases.)
(Added asset tests.)
Line 22: Line 22:
== 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.
* Your avatar should be a member of a group and be allowed to send messages in that group for testing.
* 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   
* 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.
* 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.
* Have a test image file, sound file, and collada model available to test upload functionality. A sample collada model is available from the [collada.org website | https://collada.org/owl/download.php?sess=0&parent=126&expand=1&order=name&curview=0&binary=1&id=698/ ].


= Common Procedures =
= Common Procedures =
Line 75: Line 74:
=== Avatar Navigation and Movement ===
=== Avatar Navigation and Movement ===
# '''Walking'''
# '''Walking'''
## '''Verify'''
## '''Verify''' that your avatar can move around the world.
# '''Sitting'''
# '''Sitting'''
## '''Verify'''
## '''Verify''' that your avatar can sit on objects.
# '''Flying'''
# '''Flying'''
## '''Verify'''
## '''Verify''' that you can fly around the region.
# '''Map'''
# '''World Map'''
## '''Verify'''
## Open the World Map Floater (World->World Map).
## '''Verify''' that map tiles load and display the layout of the surrounding regions.
## '''Verify''' that green dots representing avatars are displayed.
## Close the World Map.
# '''Minimap'''
# '''Minimap'''
## '''Verify'''
## Open the Mini-Map Floater (World->Mini-Map).
## '''Verify''' that map tiles are displayed.
# '''Region Crossing'''
# '''Region Crossing'''
## '''Verify'''
## Fly or walk across a region boundary.
## '''Verify''' that you successfully arrive in the other region.
# '''Intra-region teleport'''
# '''Intra-region teleport'''
## '''Verify'''
## Teleport by double clicking in the World Map floater, within the current region.
## '''Verify''' that you arrive in the place you clicked.
# '''Inter-region teleport'''
# '''Inter-region teleport'''
## '''Verify'''
## Teleport by double clicking in the World Map floater, somewhere other than the current region.
## '''Verify''' that you arrive in the new region.


=== Avatar Communication ===
=== Avatar Communication ===
# '''Local Chat'''
# '''Local Chat'''
## '''Verify'''
## Try sending messages to others avatars standing nearby. 
## '''Verify''' that the other people receive your messages and that you can receive messages from them.
# '''Group Chat'''
# '''Group Chat'''
## '''Verify'''
## Try sending messages to a group chat channel.
## '''Verify''' that you can send messages and receive other messages.
# '''IM'''
# '''IM'''
## '''Verify'''
## Try sending private IM messages to another avatar.
## '''Verify''' that the other avatar receives your messages, and that you are able to receive their response.
# '''Display Names'''
## '''Verify''' that custom display names are visible for avatars that have them set.
=== Asset Download Tests ===
=== Asset Download Tests ===
 
# Before starting this test, clear your viewer cache and relog.
# '''Texture'''
# '''Texture'''
## '''Verify'''
## '''Verify''' that textures load onto surfaces in your view.
# '''Sounds'''
# '''Sounds'''
## '''Verify'''
## Locate the Button_click_down asset in your inventory.  Double click the sound to play it.
## '''Verify''' that the sound plays.
# '''Notecard'''
# '''Notecard'''
## '''Verify'''
## Locate the Community Standards notecard in the Library of your inventory.
# '''Animation'''
## '''Verify''' that the notecard loads and is readable.
## '''Verify'''
# '''Gestures'''
## Select a gesture from the "Gesture" menu at the bottom of the window.
## '''Verify''' that the gesture plays.
# '''Mesh'''
# '''Mesh'''
## '''Verify'''
## Travel to a region with mesh assets available.
## '''Verify''' that the mesh assets rez and are visible.


# '''Legacy Fetch Methods'''
# '''Legacy Fetch Methods'''
## Disable HTTP Inventory and HTTP Textures
## Enable the Develop menu if you haven't already. (Me->Preferences->Advanced->Show Developer Menu)
## '''Verify'''
## Disable HTTP Inventory and HTTP Textures in the Develop menu.
## '''Verify'''
## Clear the viewer cache.
## Log back into Second Life.
## '''Verify''' that textures load onto surfaces in your view.
## '''Verify''' that your inventory loads.


=== Asset Upload Tests ===
=== Asset Creation Tests ===
# Move to a region where you have permission to build.
# '''Texture'''
# '''Texture'''
## '''Verify'''
## Upload a test image using the upload tool (Build->Upload->Image).
## When the upload is complete, apply that texture to an object.
## '''Verify''' that the image uploaded successfully.
# '''Sound'''
# '''Sound'''
## '''Verify'''
## Upload a test sound using the upload tool (Build->Upload->Sound)
## When the upload is complete, double click the sound in your inventory to play it back.
## '''Verify''' that the sound plays.
# '''Notecard'''
## In the inventory sidebar, click the "plus sign" (+) button at the bottom of the list of assets.
## In the menu that appears, select "New Notecard".
## Add some text in the body of the notecard and click save.
## Close the notecard
## Reopen the notecard from your inventory.
## '''Verify''' that the notecard text loads.
# '''Mesh'''
# '''Mesh'''
## '''Verify'''
## Move to a mesh-enabled region.
## Select Build->Upload->Model to start the mesh upload process.
## In the file selection dialog, select the mesh object you prepared while setting up.  The example file is named duck.dae.
## Select "Calculate weights & fee" at the bottom of the Upload Model dialog.
## After the upload fee has been calculated, select the "Upload" button.
## '''Verify''' that the mesh object is added to your inventory.
## Drag the mesh object out of your inventory onto the ground to rez it.
## '''Verify''' that the mesh object is rezzed.
# '''Object Creation'''
# '''Object Creation'''
## '''Verify'''
## Create a simple object using the build tools.
## '''Verify''' that the object is created
## '''Verify''' that you can take a copy of the created object into your inventory.
# '''Scripting'''
# '''Scripting'''
## '''Verify'''
## Right click the object you created in the previous test and select edit.
## Select the content tab of the build floater.
## Click the New Script button.
## Double click the new script to edit.
## Edit the string "Hello, Avatar!" to be "Hi, Avatar!"
## Click save
## '''Verify''' that the script compiles.
## '''Verify''' that the object has sent the message "Hi, Avatar!".
 
=== Integrated Web Browser ===
=== Integrated Web Browser ===
# '''Browsing Test''' The integrated webkit browser can navigate web pages.  
# '''Browsing Test''' The integrated webkit browser can navigate web pages.  
Line 166: Line 213:
== SOCKS 5 with Username/Password Authentication ==
== 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.
# '''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.   
## Enable both proxies, with "other" traffic going through SOCKS 5.   
## Also in the proxy settings floater, select Username/Password as the SOCKS Authentication method.
## 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.
## 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.
Line 173: Line 220:
## '''Verify''' that login is successful.
## '''Verify''' that login is successful.
## Leave authentication enabled for the next test.
## 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.
## Optional: The previous set of connectivity 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 behaviorally very similar to the no authentication test, and should either connect or not connect.
# '''SOCKS 5 Password Security''' Make sure the password isn't being stored in cleartext.
# '''SOCKS 5 Password Security''' The SOCKS 5 password should not be stored in cleartext.
## Leave SOCKS 5 authentication enabled in the viewer from the previous test.
## Leave SOCKS 5 authentication enabled in the viewer from the previous test.
## Close all running instances of the viewer.
## Close all running instances of the viewer.
Line 195: Line 242:
-->
-->


== Pass/Fail Criteria ==
= Pass/Fail Criteria =
# Passes if
# '''Passes''' if
## No unexpected behaviors are observed
## No unexpected behaviors are observed
# Fails if
# '''Fails''' if
## Deviation from expected behavior is observed
## Deviation from expected behavior is observed
## A bug is detected that was not accounted for by this test plan
## A bug is detected that was not accounted for by this test plan
## 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. If voice is enabled, an error message will appear when the viewer fails to connect to the voice server.
## SLVoice does not support proxies, therefore voice is not expected to work when running the viewer behind a strict firewall that blocks the ports used for voice communication. 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 15:43, 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.
  • Your avatar should be a member of a group and be allowed to send messages in that group for testing.
  • 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 collada model available to test upload functionality. A sample collada model is available from the [collada.org website | https://collada.org/owl/download.php?sess=0&parent=126&expand=1&order=name&curview=0&binary=1&id=698/ ].

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 that your avatar can move around the world.
  2. Sitting
    1. Verify that your avatar can sit on objects.
  3. Flying
    1. Verify that you can fly around the region.
  4. World Map
    1. Open the World Map Floater (World->World Map).
    2. Verify that map tiles load and display the layout of the surrounding regions.
    3. Verify that green dots representing avatars are displayed.
    4. Close the World Map.
  5. Minimap
    1. Open the Mini-Map Floater (World->Mini-Map).
    2. Verify that map tiles are displayed.
  6. Region Crossing
    1. Fly or walk across a region boundary.
    2. Verify that you successfully arrive in the other region.
  7. Intra-region teleport
    1. Teleport by double clicking in the World Map floater, within the current region.
    2. Verify that you arrive in the place you clicked.
  8. Inter-region teleport
    1. Teleport by double clicking in the World Map floater, somewhere other than the current region.
    2. Verify that you arrive in the new region.

Avatar Communication

  1. Local Chat
    1. Try sending messages to others avatars standing nearby.
    2. Verify that the other people receive your messages and that you can receive messages from them.
  2. Group Chat
    1. Try sending messages to a group chat channel.
    2. Verify that you can send messages and receive other messages.
  3. IM
    1. Try sending private IM messages to another avatar.
    2. Verify that the other avatar receives your messages, and that you are able to receive their response.
  4. Display Names
    1. Verify that custom display names are visible for avatars that have them set.

Asset Download Tests

  1. Before starting this test, clear your viewer cache and relog.
  2. Texture
    1. Verify that textures load onto surfaces in your view.
  3. Sounds
    1. Locate the Button_click_down asset in your inventory. Double click the sound to play it.
    2. Verify that the sound plays.
  4. Notecard
    1. Locate the Community Standards notecard in the Library of your inventory.
    2. Verify that the notecard loads and is readable.
  5. Gestures
    1. Select a gesture from the "Gesture" menu at the bottom of the window.
    2. Verify that the gesture plays.
  6. Mesh
    1. Travel to a region with mesh assets available.
    2. Verify that the mesh assets rez and are visible.
  1. Legacy Fetch Methods
    1. Enable the Develop menu if you haven't already. (Me->Preferences->Advanced->Show Developer Menu)
    2. Disable HTTP Inventory and HTTP Textures in the Develop menu.
    3. Clear the viewer cache.
    4. Log back into Second Life.
    5. Verify that textures load onto surfaces in your view.
    6. Verify that your inventory loads.

Asset Creation Tests

  1. Move to a region where you have permission to build.
  2. Texture
    1. Upload a test image using the upload tool (Build->Upload->Image).
    2. When the upload is complete, apply that texture to an object.
    3. Verify that the image uploaded successfully.
  3. Sound
    1. Upload a test sound using the upload tool (Build->Upload->Sound)
    2. When the upload is complete, double click the sound in your inventory to play it back.
    3. Verify that the sound plays.
  4. Notecard
    1. In the inventory sidebar, click the "plus sign" (+) button at the bottom of the list of assets.
    2. In the menu that appears, select "New Notecard".
    3. Add some text in the body of the notecard and click save.
    4. Close the notecard
    5. Reopen the notecard from your inventory.
    6. Verify that the notecard text loads.
  5. Mesh
    1. Move to a mesh-enabled region.
    2. Select Build->Upload->Model to start the mesh upload process.
    3. In the file selection dialog, select the mesh object you prepared while setting up. The example file is named duck.dae.
    4. Select "Calculate weights & fee" at the bottom of the Upload Model dialog.
    5. After the upload fee has been calculated, select the "Upload" button.
    6. Verify that the mesh object is added to your inventory.
    7. Drag the mesh object out of your inventory onto the ground to rez it.
    8. Verify that the mesh object is rezzed.
  6. Object Creation
    1. Create a simple object using the build tools.
    2. Verify that the object is created
    3. Verify that you can take a copy of the created object into your inventory.
  7. Scripting
    1. Right click the object you created in the previous test and select edit.
    2. Select the content tab of the build floater.
    3. Click the New Script button.
    4. Double click the new script to edit.
    5. Edit the string "Hello, Avatar!" to be "Hi, Avatar!"
    6. Click save
    7. Verify that the script compiles.
    8. Verify that the object has sent the message "Hi, Avatar!".

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 connectivity 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 behaviorally very similar to the no authentication test, and should either connect or not connect.
  2. SOCKS 5 Password Security The SOCKS 5 password should not be 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 that blocks the ports used for voice communication. 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.