Discovery Client Find Servers Basic

Uses the FindServers Service to obtain all Servers installed on a given node. General Tests in the Request EndpointURL: is not null or empty, and contains a valid URL (syntax check) LocaleIds: syntax of each specified locale is correct, if any are specified. ServerUris: syntax of each specified Uri is correct, if any are specified. Verify that client identifies application types: SERVER_0 CLIENT_1 CLIENTANDSERVER_2 DISCOVERYSERVER_3 Example: If a client doesn`t support DISCOVERYSERVER_3 then servers matching this might not be visible in a Dialog browser.


Questions? Contact us
Generated: 22/11/2021 at 17:22:12 p.m.
Discovery Client Find Servers Basic - 36 Test Cases
Test Case Id Test Type Keywords Test Case Description Test Requirements Expected Result

001

Lab FindServers  Monitor service call and analyze passed parameter for correctness and adherence to the specifications.
A list of matching servers will be returned.
Client correctly processes the type of server as applicable by checking the ApplicationType.

002

Lab FindServers  Specify an endpointUrl of a local UA Server (not a discovery server)
Client receives/displays only the details of the server it connected to.

003

Lab FindServers  Specify an endpointUrl of a remote UA Server (not a discovery server)
Client receives/displays only the details of the server it connected to.

004

Lab FindServers  Connect to a discovery server on the local computer.
Verify that client reports the list of servers returned by the discovery server.

005

Lab Connect to discovery server on remote Computer using the below conditions:
1. Computer name or IP Address.
2. Discovery server endpoint (GUI clients may incorporate a browser for this).
3. Discovery server endpoint where serverURIs identifies a server (server exists).
4. Discovery server endpoint where serverURIs identifies multiple servers (servers exist).
5. Discovery server endpoint where ServerURIs identifies a server (server does not exist).
6. Discovery server endpoint where ServerURIs identifies multiple servers (servers do not exist).
Step #
Action
Expected Result(s)

1

Verify that client is able to create a well known URL for the discovery server (e.g. automatically adding the protocol identifier and default TCP/IP port number etc). Verify that client reports the list of servers returned by the discovery server.

2

Verify that client reports the list of servers returned by the discovery server.

3

Verify that client reports the specified server as returned by the discovery server.

4

Verify that client reports the requested list of servers as returned by the discovery server.

5

Verify that client reports empty result.

6

Verify that client reports empty result.

006

FindServers  Connect to discovery server which returns multiple records for the same server (i.e., server can be accessed via multiple paths)
Verify client is able to report each unique record (although some may be identifying the same server).

007

FindServers  Connect to discovery server which returns URL of discovery server.
Verify that client can use the returned URL and call FindServers. Verify that client reports the list of servers returned by the second call.

008

FindServers  Connect to discovery server which returns a Gateway URI.
Verify that client identifies the Gateway URI and is able to connect to it (the Gateway) instead of the UA Server directly.

009

FindServers  Connect to discovery server which returns a discovery profile URI identifying use of an alternate discovery profile.
Note: Alternative discovery profiles include UDDI and LDAP.
Verify that client identifies the alternate discovery profile and whether or not the client supports the profile.
The Client may be able to query the availability of UA Server(s) via the alternate discovery mechanism. Or, the Client indicates that it is unable to use Discovery because it does not support the alternate profile(s).

010

FindServers  Connect to discovery server which requires SSL/TLS.
Note: protocol is https
Verify that the Client uses its application instance certificate as the SSL/TLS client certificate.

011

FindServers  Multilingual client passes in the locales that it supports into the LocaleIDs parameter.
Verify the client uses this information to connect to a Server using a locale specified in this list, and not necessarily the default locale of either the Client or Server.

012

FindServers  Specify a Server Uri (as a URL) in the ServerURIs field.
Verify client correctly provides the filter information in the call.
Check to make sure the Client processes the received data correctly.

013

FindServers  Specify a Server Uri (as a GUID) in the ServerURIs field.
Verify client correctly provides the filter information in the call.
Check to make sure the Client processes the received data correctly.

014

FindServers  Use default parameters while communicating with a Hierarchical Discovery Server.
Client is able to receive the first level of information (Local Discovery Servers on the PC), and again calls FindServers to a selected LDS.
Requires the Client to correctly validate GatewayServerUris.

015

CTT FindServers  ServiceResult = Good, the first Servers[] item`s gatewayServerUri field contains a valid Uri.
Verify that the UA Client accesses the UA Server via the Gateway UA Server.

016

CTT 1. ServiceResult = Good, the first Servers [] item`s applicationType field is set to DISCOVERYSERVER_3.
2. ServiceResult = Good, the first Servers[] ApplicationType is SERVER_0 and DiscoveryProfileUri is not specified.
3. ServiceResult = Good, the first Servers[] ApplicationType is CLIENTANDSERVER_1 and DiscoveryProfileUri is not specified.
Step #
Action
Expected Result(s)

1

If the client displays this type of server in a browser, it should appear differently and behave such that it can be browsed, perhaps by clicking on it to see the list of Servers provided by it.

2

Client should log and/or display an information message that the returned list contains a Discovery server, or simply filters the list to show only the supported applicationTypes.

3

Client should log and/or display an information message that the returned list contains a Discovery server, or simply filters the list to show only the supported applicationTypes.

017

FindServers  ServiceResult = Good, the first Servers[] ApplicationType is SERVER_0 and DiscoveryProfileUri is specified as one of the native UA Discovery profile type, with each being individually tested:
a) http:///UADiscovery
b) opc.ua://hostname:4840
c) http://hostname:52601/UADiscovery/
Client treats the first Server response as a valid response.
If Client is unable to use the discoveryProfileUri then a message should be reported to the end-user and/or any visual representation of the endpoint should clearly show the entry in an invalid/error sate to indicate that it cannot be used.

018

FindServers  ServiceResult = Good, the first Servers[] ApplicationType is CLIENTANDSERVER_1 and DiscoveryProfileUri is specified as one of the native UA Discovery profile type, with each being individually tested:
a) http:///UADiscovery
b) opc.ua://hostname:4840
c) http://hostname:52601/UADiscovery/
Client treats the first Server response as a valid response.
If Client is unable to use the discoveryProfileUri then a message should be reported to the end-user and/or any visual representation of the endpoint should clearly show the entry in an invalid/error sate to indicate that it cannot be used.

Err-001

FindServers  Inject one of the following Service Result status-codes.
Repeat this test several times each time varying the code used:

1. Bad_NothingToDo
2. Bad_InternalError
3. Bad_OutOfMemory
4. Bad_RequestTooLarge
5. Bad_ResponseTooLarge
6. Bad_UnexpectedError
7. Bad_UserAccessDenied
8. Bad_ServerUriInvalid
Client should log and/or display an informational message to the end-user.
If the client uses a dialog “browser” then the message needs to be visible to the end-user, for example:
• Use a MessageBox
• Show error in titlebar
• Show error in place of an endpoint etc.
• Use different color icon with tooltip etc.

Err-002

CTT FindServers  ServiceResult = Good. Client specifies a single URI in ServerURIs parameter. Server result does not match criteria.
Client checks result and may choose to report that it has received an invalid response, likewise it may also filter the list and choose not to display a message.

Err-003

CTT FindServers  ServiceResult = Good. Client specifies multiple URIs in ServerURIs parameter. Server results do not match criteria.
Client checks result and may choose to report that it has received an invalid response, likewise it may also filter the list and choose not to display a message.

Err-004

CTT FindServers  ServiceResult = Good. Client specifies multiple URIs in ServerURIs parameter. Some server results match specified criteria, some do not match.
Client checks result and may choose to report that it has received an invalid response, likewise it may also filter the list and choose not to display a message.

Err-005

CTT FindServers  ServiceResult = Good, Servers[] are returned as an empty list.
Client handles the situation, and it may choose to log and/or displays a warning to the end-user but this is not an expectation. It could simply show an empty screen!

Err-006

CTT FindServers  ServiceResult = Good, but duplicate the contents of the Servers collection so that it is returned with duplicate entries, i.e. size = size * 2.
Client may choose to indicate to the end-user that duplicate entries were received.
An ideal Client would remove any duplicate entries, but this is not an expectation.
If the Client simply displayed what it received then this would be acceptable providing that the ServiceResult=Good.

Err-007

CTT FindServers  ServiceResult = Good.
The Servers[] list is huge (100+ elements). The data within the results can be randomly generated to `appear` real.
Client does not crash due to the large quantity of data. The client processes it in a reasonable manner (if the list is displayed - it is scrollable or paged, but is available in some manner that can be accessed)

Err-008

CTT FindServers  Client receives a mix-match of ApplicationUri`s in the Servers parameter:
Servers [0] URI contains a host name.
Servers [1] URI as valid IPv4.
Servers [2] URI as valid IPv6.
Servers [3] URI is empty.
Client accepts the first 3 parameters but generates an error/log of the 4th.
IPv6 addresses are different to IPv4 but should be validated nonetheless even if IPv6 is not supported/available on the Client`s computer.

Err-009

CTT FindServers  Servers[0] ApplicationURI contains invalid IP, e.g. 192.168.0.300 or 256.100.100.100 etc.
Client rejects the IP address and logs and/or displays a message to the end-user.

Err-010

CTT FindServers  ServiceResult = Good, the first Servers [] item`s ProductUri parameter is empty.
ProductUri is a required field, so client should log and/or display a warning to the end-user and/or visually identifies the first Server differently such to indicate that it is in an error state, perhaps a different color or is disabled (not clickable) etc.

Err-011

CTT FindServers  ServiceResult = Good, the first Servers [] item`s ApplicationName parameter is empty.
Client should log and/or display a warning to the end-user and/or display a warning to the end-user and/or visually identifies the first Server differently such to indicate that it is in an error state, perhaps a different color or is disabled (not clickable) etc.

Err-012

CTT FindServers  ServiceResult = Good. ApplicationName returned is of locale not supported by client.
Client reports unsupported locale.

Err-013

CTT FindServers  ServiceResult = Good, the first Servers[] ApplicationType is SERVER_0 and DiscoveryUrls[] is empty.
Client reports no availability of the UA Server since no discovery Endpoints are available and/or visually identifies the first Server differently such to indicate that it is in an error state, perhaps a different color or is disabled (not clickable) etc.

Err-014

CTT FindServers  ServiceResult = Good, the first Servers [] item`s ApplicationType field is set to CLIENT_1.
The Client should log and/or display a message to the end-user that the list of OPC UA Servers returned contains a UA Client.
The record might not be used/displayed within a browser etc. but if it is then it should be displayed differently.

Err-015

CTT FindServers  ServiceResult = Good. Service returns ApplicationType = DISCOVERYSERVER_3 but gatewayServerUri is the same as the discovery server originally called upon.
Ideally, the Client would recognize that the URI of the response is the same as was used in the request and prevent an infinite loop. But, this is not a requirement and is merely a recommendation for good behavior.

Err-016

CTT FindServers  ServiceResult = Good, the first Servers[] ApplicationType is CLIENTANDSERVER_1 and DiscoveryUrls[] is empty.
Client reports no availability of the UA Server since no discovery endpoints are available and/or visually identifies the first Server differently such to indicate that it is in an error state, perhaps a different color or is disabled (not clickable) etc

Err-017

CTT FindServers  Unavailable  Target discovery server requires SSL/TLS. Server certificate is not trusted by the client
Client rejects the Certificate and therefore may reject calls to the FindServers method unless overridden by the end-user or via a configuration setting.

Err-018

CTT FindServers  Unavailable  Target discovery server requires SSL/TLS. Server certificate is trusted by the client but client certificate is not trusted by the server
FindServers will fail with error Bad_CertificateUntrusted. Client reports fail status.