Multi-layer Architecture for Automated Software Testing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software testing technologies face challenges in automating tests for applications with dynamic user interfaces across multiple technologies, requiring frequent software updates and complicating the creation and maintenance of control identification algorithms and test libraries.
Innovation Solution
A multi-layer architecture system that encapsulates and abstracts dependencies, separating responsibilities between system developers and automated test designers, allowing for extensible and display-independent software testing across various platforms using a drag-and-drop method for designing control test suites and transformation rules.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Extent of automation
If existing software testing technologies are used to automate tests for applications with dynamic user interfaces across multiple technologies, then test automation capability is provided, but frequent software updates are required and creation and maintenance of control identification algorithms and test libraries becomes complicated
Solution Approach 1:
The system segments the testing architecture into multiple independent layers: the presentation layer handles display-specific rendering, the abstraction layer provides technology-neutral control identification, and the test library layer manages test cases. This segmentation allows each layer to be developed and maintained independently, reducing overall system complexity while maintaining automation capability across multiple technologies.
Solution Approach 2:
The patent introduces an abstraction layer as an intermediary between the presentation layer and test library layer. This intermediary contains technology-independent control identification algorithms that translate between different display technologies and a unified control model, eliminating the need for separate algorithms for each technology and reducing maintenance complexity.
2Productivity
If existing software testing technologies are used for applications with dynamic user interfaces, then test execution is possible, but the system requires frequent software updates to maintain compatibility
Solution Approach 1:
The abstraction layer implements universal control identification algorithms that work across multiple display technologies and programming languages simultaneously. By creating a technology-neutral intermediate representation of user interface controls, the system can execute tests against applications built with different technologies without requiring technology-specific updates, significantly reducing update frequency and time loss.
3Extent of automation
If manual testing processes are automated without abstraction layers, then automation is achieved, but the system lacks flexibility and reusability across different platforms
Solution Approach 1:
The patent adds an intermediate dimension (the abstraction layer) between the presentation layer and test library layer. This additional dimensional layer provides a technology-neutral control model that enables test libraries to be reused across multiple platforms and technologies without modification, while still maintaining full automation capability through systematic translation of control identifiers.
Data Source
AI summary
An automated software testing system tests a running application from a viewpoint of user of a graphical user interface of the running application. A programmed processor executes a plurality of meta-layer implementations defining controls of the graphical user interface using algorithms. Each of the meta-layer implementations receives at least one abstraction layer object as input and generates a second at least one abstraction layer object as output responsive to at least one of the algorithm for an associated identity, property, collection or meta-object. A plurality of declarative function modules define each algorithm for each of the plurality of meta-layer implementations. Each of the plurality of declarative function modules encapsulates a predetermined result responsive to execution of the declarative function without providing any detail of how the predetermined result is achieved.


