logo-opclabs-new

Professional OPC Development Tools and Services

opc logo

About Developer Blog

This section of our site contains blog articles from our developers. The articles topics may vary, but many relate to the underlying technologies we use, or to specific aspects of our products that may be of interest but miss a more formal description yet. We expect this section to get filled slowly but perpetually and to evolve into a useful resource not only for users of our products, but to general developers' community as well.

A (Partial) Story of OPC URLs

Have you ever seen something like this, when connecting to an OPC server?

opcda://TEST-OPC/Kepware.KEPServerEX.V5/{B3AF0BF6-4C0C-4804-A122-6F3B160F4397}

It looks like an URL. But, is it an URL? In this case, you might guess that it refers to an OPC Data Access server, and that the TEST-OPC is the name of the computer, "KEPServerEX.V5" is the OPC server's ProgID, and {B3AF0BF6-4C0C-4804-A122-6F3B160F4397} is its CLSID.

Automated Testing of OPC Clients using the CTT

For long time, we have been performing automated tests of our OPC client libraries. This is basically a combination of unit tests and integration tests, and we have developed these tests along with the products themselves.

This year (2013), however, we have been been going through the OPC compliance certification procedures for OPC Unified Architecture (OPC-UA) with our QuickOPC product, and a new area of tests has emerged. The OPC Foundation provides a Compliance Test Tool (CTT) that allows testing of both OPC servers and clients. It is a script-based engine and GUI. For client testing, the original design of the CTT assumed that the tester would manually enable certain scripts in the CTT (such as for error injection), then run the sequence of operation in the client, and observe and evaluate the results (both in the client and in the CTT) to see if everything went as expected.

This process gets VERY tedious over the time. Consider the facts that there are hundreds of tests in the basic CTT suite, that they are (at least sometimes) quite complicated to set up, and that the whole testing process needs to be repeated over and over, for regression testing. It seems that nobody has really gone through this for the OPC client testing so far. In fact the CTT test script themselves are not yet finished, and we have contributed multiple improvements and bug fixes to the OPC Foundation during our work. Even with the corrected scripts, it was not feasible to perform this kind of testing manually. We have therefore suggested a handful of changes to the CTT tool (engine) itself, and OPC Foundation has implemented them, with us being the reviewer.