Skip to content
Published on

Intellectual Property, Test Plans and Plugins

Categorized
Articles

Test plans play a central role in test automation. Plugins extend the functionality of a test automation platform and enhance the functionality of test plans. But should test plans and plugins be treated as intellectual property (IP) on a par with other types of software, patented tech and methods, and trade secrets? This blog examines the nature and status of these entities and how they fit in the IP strategy of OpenTAP ecosystem participants.

Are Test Plans Software?

Do test plans satisfy the dictionary definition of software? At Dictionary.com, software is defined as

noun

  1. programs used to direct the operation of a computer, as well as documentation giving instructions on how to use them. 

  2. anything that is not hardware but is used with hardware

With OpenTAP, test plans execute either directly, via command-line invocation

tap run MyTestPlan.TapPlan

or under control of a test plan execution environment or editor, e.g., TUI, EditorX, and the editors that are part of Keysight KS8400B and KS8500B test plan automation platforms.

Test plans consist of test steps, which can include both test code and control directives, comparable to programs in other environments.

So test plans appear to be software.

Aren't Test Plans Just XML?

Well, yes - OpenTAP test plans are implemented as XML.

<?xml version="1.0" encoding="utf-8"?>
<TestPlan type="OpenTap.TestPlan">
  <Steps>
    <TestStep type="OpenTap.Plugins.BasicSteps.LogStep" Id="a5d8babd-6d13-4b6d-bb1c-f0da9eaf99e0">
      <LogMessage>Starting IoT Test</LogMessage>
      <Severity>Info</Severity>
      <Name Metadata="Step Name">Log Output</Name>
      <ChildTestSteps />
    </TestStep>
    <TestStep type="OpenTap.Plugins.BasicSteps.DialogStep" Id="fa570016-be72-4986-8290-d374f72fa143">
      <Message>Starting Test - Continue?</Message>
      <Title>Title</Title>
      <Buttons>OkCancel</Buttons>
      <PositiveAnswer>NotSet</PositiveAnswer>
      <NegativeAnswer>NotSet</NegativeAnswer>
      <UseTimeout>false</UseTimeout>
      <Timeout>5</Timeout>
      <DefaultAnswer>NotSet</DefaultAnswer>
      <ShowPicture>false</ShowPicture>
      <PictureSource />
      <PictureDescription />
      <Name Metadata="Step Name">Dialog</Name>
      <ChildTestSteps />
    </TestStep>

Strictly speaking, XML itself is not a programming language and cannot be used to write executable programs in the traditional sense. XML is a markup language designed to store and transport data, not define logic or behavior that a computer can execute directly. However, some domain-specific languages use XML to describe logic or workflows (e.g.,, XSLT for transformations, Ant build files, or Android layout files). In these cases, XML is used as a configuration or scripting format, but the actual “execution” happens in a processing engine or interpreter.

So, in the context of execution by OpenTAP, test plans do function as programs. OpenTAP is a test plan interpreter.

Are Test Plans subject to copyright? Are they licensable?

The short answer is YES. Keysight, as well as Keysight partners and customers, deliver some test plans as commercial products, under copyright and subject to proprietary software licenses. In some cases, test plan may be encrypted.

These same ecosystem participants also create test plans as open source and/or shareware. Most frequently, test plans carry neither copyright or license (even if they should).

What about Plugins?

An OpenTAP plugin is a software component that extends the functionality of the OpenTAP platform. Technically, it is a C# class (or a set of classes) that either inherits from a base class provided by OpenTAP or implements an interface recognized by OpenTAP. These plugins are compiled into .NET assemblies (DLL files) and are distributed in package files.

Plugins can also be written in Python using the Python Plugin.

Licensing Practices

Across the OpenTAP ecosystem, plugins are variously licensed and distributed as open source and proprietary code, in source code and as binary (C# is a compiled language, executing via CLI and a JIT interpreter, very much like Java, while Python is an interpreted language that generates bytecode at runtime). 

Many (most) OpenTAP plugins are licensed under the Mozilla Public License (MPL 2.0) for compatibility with the platform itself. MPL is a "liberal" license, chosen by the project for its ease of compliance and permitted interoperability of MPL code with other licenses, including closed source code.

How do OpenTAP partners and Keysight customers treat test plans and plugins?

Test plans and plugins are most often treated as closely-held proprietary IP. This practice presents challenges to building and maintaining a commercial ecosystem and a user/developer community. While it may seem "simpler" to share, most organizations are not set up to create and publish - corporate default is to retain all possible rights and access. Moreover, creating and licensing code as open source actually requires incremental effort legal clearance, patent searching, release approval, etc. As such, commercial needs and practices often win out.

Conclusion

This short blog just scratches the surface of intellectual property in test automation in general and of IP in and around OpenTAP in particular. Reference here are past blogs on licensing plugins and other licensing topics.