Keyboard Input Delay Algorithm for Anti-Automation Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing automated test tools, such as Unified Functional Testing (UFT) Device Replay, struggle to mimic human-like keyboard and mouse inputs due to their inability to replicate the natural delays between keystrokes and mouse clicks, which are detectable by anti-automation mechanisms.

Innovation Solution

A keyboard model anthropomorphic algorithm that determines the input delay between each character based on the distance between keys on the keyboard, mimicking human typing behavior by introducing delays that vary with the proximity of keyboard keys.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If automated test tools enter input strings simultaneously without delays, then testing efficiency is improved, but detectability by anti-automation mechanisms increases

Engineering Contradiction:
Improvetesting efficiencyVSAvoidanonymity of automated input
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system dynamically adjusts input timing by calculating delays between individual characters based on their physical distance on the keyboard layout. Instead of static simultaneous input, the algorithm introduces variable time intervals that mimic human typing patterns, where closer keys produce shorter delays and farther keys produce longer delays.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the time parameter of input by introducing delays between characters. The delay duration is calculated based on the Euclidean distance between key positions on the keyboard layout, transforming the input pattern from simultaneous to sequential with variable intervals that replicate human behavior.

Inventive Principle:
Principle #35Parameter changes

2Loss of time

If the entire input string is entered at once, then the testing process is faster, but it becomes easily distinguishable from human input

Engineering Contradiction:
Improveinput timeVSAvoiddetectability of automated input
Core Design Contradiction:
Loss of timeVSDifficulty of detecting and measuring

Solution Approach 1:

The system segments the input string into individual characters and processes them sequentially rather than as a single block. Each character is entered separately with calculated delays between them, breaking down the monolithic input operation into discrete timed events that mimic natural human typing behavior.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary calculation of delays between each pair of consecutive characters based on their keyboard positions before executing the input sequence. This pre-computed timing information is then applied during input execution to ensure realistic timing patterns.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If delays are introduced between each character to mimic human typing, then anonymity is improved, but input speed decreases

Engineering Contradiction:
Improveanonymity of automated inputVSAvoidinput speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The system applies different delay durations to different character transitions based on their specific positions on the keyboard layout. Characters that are physically closer together receive shorter delays, while characters farther apart receive longer delays, creating locally optimized timing that reflects actual human typing patterns rather than using a uniform delay.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20250061032A1Method and system for improving keyboard input in automated testing
Publication Date: 2025.02.20 MICRO FOCUS LLC
  • US20250061032A1 patent drawing
  • US20250061032A1 patent drawing
  • US20250061032A1 patent drawing

AI summary

Method and system to improve keyboard input in an automated test environment. The method includes determining a keyboard layout. The method also includes receiving an input, wherein the input comprises a plurality of characters. The method further includes processing the input to determine an input delay between each character of the plurality of characters and entering each character of the plurality of characters with the determined input delay between each character.