XML Test Specification Versioning in Code Repositories

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software testing methods are inefficient as they require tests to be developed after the software is complete, are specific to particular test engines, and do not allow for early testing, leading to inadequate testing and increased costs.

Innovation Solution

Tests are developed as specifications in XML format, allowing them to be independent of test engines and stored in code repositories for versioning, enabling modular development and reuse, and can be created early in the development cycle.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If tests are developed using record-and-playback techniques after software construction is complete, then tests can be created with existing software, but testing time is reduced and testing quality deteriorates

Engineering Contradiction:
Improvetesting qualityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by enabling test development before software construction is complete. Tests are defined in XML format that can be created independently of the finished software, allowing testing activities to start during the construction phase rather than waiting for completion. This resolves the contradiction by eliminating the sequential dependency that causes both time loss and reduced testing quality.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If tests are created as engine-specific scripts, then tests can be executed by particular test engines, but portability and reusability across different engines are limited

Engineering Contradiction:
Improvetest portabilityVSAvoidtest engine dependency
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces XML as an intermediary format between test definitions and test engines. Instead of engines requiring proprietary script formats, the XML test definition serves as a universal intermediary that can be converted to different engine-specific formats. This mediator enables portability while maintaining engine-specific execution capabilities, resolving the contradiction between versatility and complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies universality by creating test definitions in a standardized XML format that is independent of any particular test engine. The same XML test can be executed by multiple different test engines through conversion, making the test definition universally applicable. This eliminates engine-specific dependency while preserving the ability to execute tests on various engines.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If tests are developed separately after software completion, then tests can be created with full software functionality, but testing cannot proceed in parallel with development

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoidtesting timeline
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent enables preliminary action by allowing test definition creation during the software development phase rather than waiting for completion. Since tests are defined in XML format independently of the actual software implementation, testing activities can proceed in parallel with code development, significantly improving productivity and eliminating the sequential time loss.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If tests are written in engine-specific scripting languages, then tests can be executed by the test engine, but scripts cannot be easily ported between different engines

Engineering Contradiction:
Improvetest reusabilityVSAvoidscript portability
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent uses XML as an intermediary layer that separates test portability from engine-specific execution requirements. The XML format serves as a universal intermediary that can be converted to different engine-specific scripting formats, enabling easy portability between engines while maintaining engine-specific execution capabilities. This resolves the contradiction by introducing a standardized intermediate representation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9009666B1Systems and methods for testing software and for storing and tracking test assets with the software
Publication Date: 2015.04.14 UNITED SERVICES AUTOMOBILE ASSOCIATION (USAA)
  • US9009666B1 patent drawing
  • US9009666B1 patent drawing
  • US9009666B1 patent drawing

AI summary

A test for a piece of software may be created, and stored with the software. The software and the test may be stored in a code repository, where the test appears in a dependency graph, and is subject to version tracking, in a manner similar to other components of the software. These mechanisms may be used to determine whether a test is current relative to the software component that the test is used to evaluate. Tests may be developed by the software developers, by test developers, or by anyone else. Tests may be specified in a generic format, such as an eXtensible Markup Language (XML) format that meets some schema. The generic format test may be converted into a script that is usable with various script engines, thereby allowing tests to be developed in a test-engine-independent manner.