Delegation test plan

Service Description

Delegation is used to delegate clients' credentials to a service. The service and client logic of delegation is done using the java delegation library. This testplan contains the descriptions for the tests for that library.

Delegation java is not a standalone service and needs to be integrated to another service to be used. Hence these tests are implemented as jUnit tests and test the routines for delegating credentials work as expected.

Features/Scenarios to be tested

'Server backend tests'
This tests should check that the server can use both database (test not implemented) and file backends.

Normal workflow - correct input
A proxy is delegated for both cases.

Pass/Fail Criteria
If the proxy is visible in the filesystem/database the test succeeds, otherwise it fails.

Error workflow - erroneous input
N/A

Pass/Fail Criteria
Delegation is present in the backend storage.

'Delegate proxy'
This tests should check that proxy delegation

Normal workflow - correct input
normally try to delegate a proxy in following cases:
  • using getProxyReq without an explicit delegation ID
  • using getProxyReq with explicit delegation ID
  • using getProxyNewReq with the default delegation ID
  • Race condition test (not implemented)
    • starting a delegation (A) for a given ID
    • starting and finishing delegation (B) for the same ID
    • putting a proxy for delegation (A)

Pass/Fail Criteria
In all succesfull cases, the result should be a working proxy. This should be confirmed on the storage side.

Error workflow - erroneous input
Test following cases, try delegating (using both getProxyReq and getNewProxyReq where possible)
  • by putting proxy without having started a delegation (not implemented)
  • by putting a proxy with an already existing delegation with that ID
  • by generating an already existing delegation ID (not implemented)
  • by delegating with an delegation ID used by another user (not implemented)

Pass/Fail Criteria
Successful scenarios should result with a proxy in the backend storage.

'Renew proxy'
This tests should check that proxy renewal works

Normal workflow - correct input
normally try to renew an existing proxy in following cases:
  • using an explicit delegation ID
  • using the default delegation ID (not implemented)

Pass/Fail Criteria
In all cases, the result should be a working proxy. This should be confirmed on the storage side.

Error workflow - erroneous input (not implemented)
Test following cases, try renewing a proxy
  • when there is no proxy with that ID (explicit)
  • when there is no proxy with that ID (default)
  • the delegation ID is used by another user

Pass/Fail Criteria
All successful delegations should result with a new delegation, with newer expiration time.

'Destroy proxy'
This tests should check that proxy removal works

Normal workflow - correct input
normally try to destroy an existing proxy in following cases:
  • using an explicit delegation ID
  • using the default delegation ID

Pass/Fail Criteria
In all cases, the proxy should have been removed

Error workflow - erroneous input
Test following cases, try destorying a proxy (not implemented)
  • when there is no proxy with that ID (explicit)
  • when there is no proxy with that ID (default)
  • the delegation ID is used by another user

Pass/Fail Criteria
All successful scenarios should result with the existing delegation removed form the backend storage.

'Get proxy information'
This tests should check that proxy removal works

Normal workflow - correct input
normally try to get info from an existing proxy in following cases:
  • using an explicit delegation ID
  • using the default delegation ID

Pass/Fail Criteria
In all cases, the proxy lifetime should be retrieved

Error workflow - erroneous input
Test following cases, try get info for a proxy
  • when there is no proxy with that ID (explicit)
  • when there is no proxy with that ID (default) (not implemented)
  • the delegation ID is used by another user (not implemented)

Pass/Fail Criteria
All successful scenarios should result with the valid proxy information (expiration time).

'Delegation with RFC and legacy proxies'
This tests should check that delegation should result with the same type of proxy as given.

Normal workflow - correct input
Delegation with RFC proxy results with delegated RFC proxy and legacy proxy results with legacy proxy.

Pass/Fail Criteria
Pass if the proxy is of the same type as the original proxy with both types of proxies.

Error workflow - erroneous input

Pass/Fail Criteria
All successful scenarios should result with the valid proxy in the backend storage.

'Delegation with voms proxy'
This tests should check that delegation with voms proxy succeeds.

Normal workflow - correct input
Delegation with voms proxy results with a valid voms proxy.

Pass/Fail Criteria
Pass if in the backend storage there is a valid proxy when delegating with voms proxy.

Error workflow - erroneous input

Pass/Fail Criteria
All successful scenarios should result with the valid proxy in the backend storage.

'Delegation while limiting proxies'
This tests should check that delegation should create a limited proxy when asked to.

Normal workflow - correct input
4 cases tested
  • legacy proxy limiting asked by client
  • legacy proxy limiting asked by server
  • rfc proxy limiting asked by client
  • rfc proxy limiting asked by server

Pass/Fail Criteria
Pass if in all cases the proxies are limited.

Error workflow - erroneous input

Pass/Fail Criteria
All successful scenarios should result with the valid proxy in the backend storage.

Features not to be tested

'Feature Summary'

Description and explanation for not being included in the current test plan -- KalleHapponen - 17-Feb-2010
Edit | Attach | Watch | Print version | History: r6 < r5 < r4 < r3 < r2 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r6 - 2013-02-20 - JoniHahkala
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    EGEE All webs login

This site is powered by the TWiki collaboration platform Powered by Perl This site is powered by the TWiki collaboration platformCopyright & by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Ask a support question or Send feedback