OPC UA's promise is interoperability: any certified client can talk to any certified server. In practice, interoperability is earned — through disciplined testing with the standard tooling. The OPC Foundation provides two reference tools that every integrator should know: UaExpert (the de facto standard generic client) and the Compliance Test Tool (CTT) (the certification test suite). Around them sits a small ecosystem of analyzers and simulators that turn "it works in the demo" into "it works in production."
UaExpert: The Universal Client
UaExpert is a full-featured OPC UA client used for commissioning, troubleshooting, and testing:
- Endpoint discovery — finds servers on the local network (multicast discovery) or by URL, and lists all endpoints with their security policies — the first step in any connection diagnosis.
- Certificate management — displays the server's certificate and manages the local trust store, making trust issues visible instead of mysterious.
- Address space browsing — tree view of the server's nodes, including data types and references; ideal for validating an information model.
- Data access — read, write, and subscribe to variables with configurable sampling/publishing; the "Data Access" view is the standard instrument for verifying tag behavior.
- Methods, events, and programs — call methods with typed arguments, subscribe to event filters, and drive program state machines — full protocol surface for testing.
- History — read historical data (Part 11) where the server supports it.
UaExpert is also the ideal reference client for isolating faults: if UaExpert connects and reads correctly while your application fails, the problem is in the application configuration, not the server.
The Compliance Test Tool (CTT)
The CTT is the OPC Foundation's automated test suite used for certification and self-testing. It runs hundreds of scripted test cases against a server (or client) and reports conformance to the profiles:
- Profiles — a server declares conformance profiles (e.g., "OPC UA Server", "DA Server", "Method Server", "Node Management Server") and the CTT verifies the declared subset — not the whole spec, but exactly what the server claims.
- Test suites — organized by profile: Address Space, Attribute, Subscription, Method, Event, Historical Access, etc. Each test checks behavior (correct status codes, reference consistency, notification semantics) rather than just "does it connect."
- Client tests — the CTT can also act as a server testing client behavior (subscription handling, reconnect, certificate behavior).
- Certification — passing the CTT with a certified test lab results in official certification and entry in the OPC Foundation's product directory. Even without formal certification, running the CTT in-house catches conformance gaps that integration testing misses.
For integrators, the practical value: when a server misbehaves, run the relevant CTT section to prove whether the behavior is a spec violation or an application misunderstanding — and hold vendors accountable with the evidence.
Beyond the Reference Tools
A complete test bench adds three more instruments:
- UA Simulators — model servers (e.g., the OPC Foundation's UA Simulation Server, or the free Prosys simulation server) that generate realistic data, events, and alarms for client development and load testing.
- Wireshark with the UA dissector — packet-level view of handshakes, security negotiation, and publish cycles; indispensable when diagnosing latency or malformed payloads.
- Load and fault injection — test with thousands of nodes, slow networks (traffic shaping), certificate expiry, and server restarts, because production failures are almost always edge conditions, not happy-path conformance.
A Practical Test Procedure
- Discover endpoints and confirm the security policies match the client's capabilities.
- Validate the address space against the information model document: node ids, types, and references.
- Exercise read/write/subscribe on each data class (fast, slow, boolean, array) and verify quality and timestamps.
- Test methods with valid and invalid arguments; verify error status codes.
- Test events and alarms end to end, including acknowledge and shelve.
- Test reconnect behavior: kill the server, restart it, and verify the client recovers subscriptions without manual intervention.
- Run the CTT sections matching the declared profiles and archive the results with the project documentation.
Summary
OPC UA interoperability is verified, not assumed. Use UaExpert as the universal client for commissioning and fault isolation, run the CTT to prove conformance to the declared profiles, and complete the bench with simulators, packet analysis, and fault injection. The tools are free or inexpensive; the discipline of testing the failure paths is what makes a UA integration survive contact with production.