Unified Abstraction Layer for Automated Software Test Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software testing processes face challenges in seamlessly executing test cases across different automation tools and integrating with development and deployment systems, leading to inefficiencies and delays in the DevOps process.

Innovation Solution

A system that uses a server computing device to identify and execute test cases using a set of input parameters, selects the appropriate automation testing tool, executes the test cases, and transmits results to issue tracking and deployment systems, providing a unified abstraction layer to streamline the DevOps process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple automation testing tools are used to execute test cases, then test coverage and reliability are improved, but system complexity and difficulty of integration increase

Engineering Contradiction:
Improvetest execution reliabilityVSAvoidsystem integration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements a universal automation testing platform that can execute test cases across multiple different automation testing tools (Selenium, Sahi, etc.) through a single unified interface. The server computing device maintains a database of multiple automation testing tools and can select and launch appropriate tools based on test case requirements, eliminating the need for separate integration of each tool and reducing system complexity while maintaining multi-tool capability

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

Solution Approach 2:

The system introduces an intermediary layer (the server computing device with tool-specific interfaces) between the test management system and various automation testing tools. This intermediary handles tool-specific configurations, dependencies, and report formats, allowing the core system to interact with diverse tools through standardized mechanisms while each tool maintains its own implementation details through dedicated interface classes

Inventive Principle:
Principle #24Intermediary (Mediator)

2Manufacturing precision

If automation testing tools are customized for specific applications, then test execution precision is improved, but adaptability to different applications decreases

Engineering Contradiction:
Improvetest execution precisionVSAvoidapplication adaptability
Core Design Contradiction:
Manufacturing precisionVSAdaptability or versatility

Solution Approach 1:

The system implements dynamic tool selection where the appropriate automation testing tool is chosen at runtime based on the specific test case attributes and application requirements. The server computing device evaluates test case metadata, application type, and tool capabilities to dynamically select the most suitable tool, allowing the system to adapt to different applications while maintaining precision through tool-specific optimizations

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system applies local quality by allowing different automation testing tools to be used for different test cases or application modules based on their specific requirements. Each tool can be optimized for its specific strength (e.g., Selenium for web applications, Sahi for desktop applications) while the unified system coordinates their usage, ensuring each part of the testing process uses the most appropriate tool for that specific context

Inventive Principle:
Principle #3Local quality

3Productivity

If integration between development and testing systems is enhanced, then information flow and productivity are improved, but system complexity increases

Engineering Contradiction:
Improvedevelopment productivityVSAvoidsystem integration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system merges multiple previously separate systems (source code management, issue tracking, automation testing, and deployment systems) into an integrated workflow orchestrated by a central server computing device. This integration consolidates information flow and coordination functions into a single platform, improving productivity by eliminating manual handoffs while managing complexity through centralized control and standardized communication protocols between systems

Inventive Principle:
Principle #5Merging (Combining)

4Loss of time

If manual monitoring and communication of test results are performed, then system simplicity is maintained, but loss of time and productivity decrease

Engineering Contradiction:
Improvetest result communication timeVSAvoidautomation level
Core Design Contradiction:
Loss of timeVSExtent of automation

Solution Approach 1:

The system implements self-service automation where the automation testing tools and server computing device automatically execute test cases, generate reports, parse results, and communicate outcomes to relevant systems without human intervention. The system autonomously monitors test execution, identifies failures, and triggers notifications or remediation workflows, eliminating manual monitoring while maintaining system simplicity through automated self-management capabilities

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10162740B1Automated intelligent execution of computer software test cases
Publication Date: 2018.12.25 FMR CORP
  • US10162740B1 patent drawing
  • US10162740B1 patent drawing
  • US10162740B1 patent drawing

AI summary

Methods and apparatuses are described for automated intelligent execution of computer software test cases. A server computing device identifies a plurality of computer software test cases for execution using a set of input parameters. For each computer software test case, the server selects an automation testing tool from a plurality of automated testing tools based upon one or more attributes of the software test case, launches the selected automation testing tool using a tool-specific interface, executes the software test case using the automation testing tool against a software application under development, receives one or more reports from the automation testing tool that include results of the software test case execution, parses the one or more reports to determine a status of the software test case execution, and transmits the status of the software test case execution to each of a software development issue tracking system and a software deployment system.