IP Library Granted Patent US 12,117,925
Granted Patent B2
US 12,117,925 · App. 18/118,248 · Granted Oct 15, 2024

Immutable protection of software and/or computing hardware testing data

Inventors: Vishal Moondhra (San Jose, CA); Peter Theunis (Walnut Creek, CA)
Assignee: Methodics, Inc.
G06F11/3688G06F9/5005G06F11/3664G06F11/3684G06F11/3692G06F16/125G06F2209/5011
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,117,925
App. No.
18/118,248
Granted
Oct 15, 2024
Kind
B2
Abstract

Disclosed is a method, a device, a system and/or a manufacture of immutable protection of software and/or computing hardware testing data. In one embodiment, a method for immutably securing testing data includes initiating an operation filesystem to operate from and copying a software application and/or computer hardware design to define a workspace data. A test script is selected and executed. The method provides input data including the testing data to a hash function. The testing data may include the result data. A hash value from the hash function is generated that is uniquely determined based on the input data. A blockchain transaction is generated that includes the hash value. The hash value is submitted to a node of a blockchain network that includes a distributed network of two or more nodes maintaining a ledger database reconciled through a consensus mechanism to immutably protect the testing data.

Claims (158)

1. A method for immutably securing testing data, the method comprising:

initiating an operation filesystem to operate from;

copying at least one of a software application, a script, a computer hardware design, and a circuit design into the operation filesystem to define a workspace data;

selecting a test script;

executing the test script to test at least one of the software application, the script, the computer hardware design, and the circuit design;

generating a result data that is output from execution of the test script;

providing input data to a hash function, the input data comprising the testing data,

wherein the testing data comprising at least one of the result data, the test script, metadata of a test version of the test script, and metadata of the test script;

generating a hash value from the hash function that is uniquely determined based on the input data;

generating a blockchain transaction comprising the hash value;

submitting the hash value to a node of a blockchain network comprising a distributed network of two or more nodes maintaining a ledger database reconciled through a consensus mechanism to immutably protect the testing data;

generating a validation request to validate reproducibility of the testing of at least one of the software application, the script, the computer hardware design, and the circuit design;

querying the ledger database for data specifying the test script, a runtime environment data, and at least one of the software application, the script, the computer hardware design, and the circuit design;

reassembling the workspace data;

executing the test script in the workspace data utilizing the runtime environment data to validate the test of at least one of the software application, the script, the computer hardware design, and the circuit design;

generating a second result data;

providing a second input data to the hash function, the second input data comprising a second testing data,

wherein the second testing data comprises the second result data, and

wherein the testing data that is input into the hash function comprises the result data;

generating a second hash value from the hash function that is uniquely determined based on the second input data;

comparing the hash value to the second hash value; and

determining a match to certify the testing data as unaltered.

2. The method of claim 1 , wherein the input data provided to the hash function further comprising at least one of the software application, metadata of the software application, the script, metadata of the script, the computer hardware design, metadata of the computer hardware design, the circuit design, and metadata of the circuit design.

3. The method of claim 2 , wherein the input data provided to the hash function further comprising at least one of a runtime environment data of a runtime environment in which the script was applied against at least one of the software application, the script, the computer hardware design, and the circuit design.

4. The method of claim 1 , further comprising:

defining a workspace master from the workspace data;

initiating a discrete environment that is at least one of a computing container and a virtual computer;

cloning the workspace master to generate a workspace clone; and

mounting the workspace clone to the discrete environment,

wherein executing the test script writes to the workspace clone.

5. The method of claim 4 , further comprising:

selecting a filesystem root of a substrate filesystem to be operated on by the test script;

cloning the substrate filesystem to be operated on to generate a substrate filesystem clone; and

mounting the workspace clone to the discrete environment and associating the workspace clone with the substrate filesystem clone,

wherein the input data provided to the hash function further comprising at least one of the substrate filesystem and metadata data of the substrate filesystem.

6. The method of claim 4 , wherein:

the test script is selected from two or more test scripts within a test fileset,

the workspace clone mounted to the discrete environment is one of two or more workspace clones generated from the workspace data, and

each of the two or more test scripts within the test fileset is isolation tested through execution within a different instance of each of the two or more workspace clones.

7. The method of claim 6 , further comprising:

querying the ledger database for the hash value,

querying the input data provided to the hash function that resulting in generation of the hash value; and

re-calculating a second hash value by re-inputting the input data into the hash function.

8. The method of claim 7 , further comprising:

comparing the hash value with the second hash value; and

determining a match to validate the testing data was generated prior to the generation of the blockchain transaction and is unaltered.

9. A system for securing testing data, comprising:

a server comprising:

a processor of the server,

a memory of the server,

a first set of computer readable instructions that when executed:

initiate an operation filesystem to operate from;

copy at least one of a software application, a script, a computer hardware design, and a circuit design into the operation filesystem to define a workspace data; and

select a test script;

execute the test script to test at least one of the software application, the script, the computer hardware design, and the circuit design;

generate a result data that is output from execution of the test script;

a blockchain transaction engine comprising computer readable instructions that when executed:

generate a blockchain transaction comprising at least one of the result data, the test script, the software application, the script, the computer hardware design, the circuit design, metadata of the test script, metadata of the software application, metadata of the script, metadata of the computer hardware design, and metadata of the circuit design; and

submit the blockchain transaction to a node of a blockchain network comprising a distributed network of two or more nodes maintaining a ledger database reconciled through a consensus mechanism to immutably protect the testing data, and

a certification server comprising:

a processor of the certification server;

a memory of the certification server;

computer readable instructions that when executed:

query the ledger database for a hash value,

query an input data provided to a hash function that resulting in generation of the hash value; and

a hash validation engine comprising computer readable instructions that when executed:

re-calculate a second hash value by re-inputting the input data into the hash function,

compare the hash value with the second hash value, and

determine a match to validate the testing data was generated prior to the generation of the blockchain transaction and is unaltered, and

a network communicatively coupling the server and the certification server.

10. The system of claim 9 , where the server further comprising a hash function and wherein the blockchain transaction engine further comprising computer readable instructions that when executed:

provide input data to the hash function, the input data comprising the testing data,

wherein the testing data comprising at least one of the result data, the test script, the software application, the script, the computer hardware design, the circuit design, metadata of the test script, metadata of the software application, metadata of the script, metadata of the computer hardware design, and metadata of the circuit design, and

generate a hash value from the hash function that is uniquely determined based on the input data,

wherein data of the blockchain transaction comprising the hash value.

11. The system of claim 10 , further comprising:

a workspace assembly server comprising:

a processor of the workspace assembly server,

a memory of the workspace assembly server, and

a master assembly engine comprising computer readable instructions that when executed define a workspace master from the workspace data; and

a test orchestration server comprising:

a processor of the test orchestration server,

a memory of the test orchestration server,

a test fractionation routine comprising computer readable instructions that when executed initiate a discrete environment that is at least one of a computing container and a virtual computer,

a cloning engine comprising computer readable instructions that when executed:

clone the workspace master to generate a workspace clone, and

mount the workspace clone to the discrete environment,

wherein executing the test script writes to the workspace clone.

12. The system of claim 11 ,

wherein the test script is selected from two or more test scripts within a test fileset,

wherein the workspace clone mounted to the discrete environment is one of two or more workspace clones generated from the workspace data, and

wherein each of the two or more test scripts within the test fileset is isolation tested through execution within a different instance of each of the two or more workspace clones.

13. The system of claim 12 , wherein the certification server further comprising:

computer readable instructions that when executed receive a validation request to validate reproducibility of the test of at least one of the software application, the script, the computer hardware design, and the circuit design;

a test condition extraction routine comprising computer readable instructions that when executed query the ledger database for data specifying the test script, a runtime environment data, and at least one of the software application, the script, the computer hardware design, and the circuit design;

a workspace re-assembly routine comprising computer readable instructions that when executed reassemble the workspace data; and

a test re-execution system comprising computer readable instructions that when executed:

execute the test script in the workspace data utilizing the runtime environment data to validate the test of at least one of the software application, the script, the computer hardware design, and the circuit design, and

generate a second result data.

14. The system of claim 12 , wherein the certification server further comprising:

a hash validation engine comprising computer readable instructions that when executed:

provide a second input data to the hash function, the second input data comprising a second testing data,

wherein the second testing data comprises a second result data and

the testing data that is input into the hash function comprises the result data,

generate a second hash value from the hash function that is uniquely determined based on the second input data,

compare the hash value to the second hash value, and

determine a match to certify the testing data as unaltered.

15. The system of claim 11 ,

wherein the master assembly engine further comprising computer readable instructions that when executed:

select a filesystem root of a substrate filesystem to be operated on by the test script; and

wherein the cloning engine further comprising computer readable instructions that when executed:

clone the substrate filesystem to be operated on to generate a substrate filesystem clone, and

mount the workspace clone to the discrete environment and associate the workspace clone with the substrate filesystem clone.

16. A non-transitory computer readable media comprising computer executable instructions for immutably securing testing data that when executed on one or more processors:

initiate an operation filesystem to operate from;

copy at least one of a software application, a script, a computer hardware design, and a circuit design into the operation filesystem to define a workspace data;

select a test script;

execute the test script to test at least one of the software application, the script, the computer hardware design, and the circuit design;

generate a result data that is output from execution of the test script;

provide input data to a hash function, the input data comprising the testing data,

wherein the testing data comprising at least one of the result data, the test script, metadata of a test version of the test script, and metadata of the test script;

generate a hash value from the hash function that is uniquely determined based on the input data;

generate a blockchain transaction comprising the hash value;

submit the hash value to a node of a blockchain network comprising a distributed network of two or more nodes maintaining a ledger database reconciled through a consensus mechanism to immutably protect the testing data;

generate a validation request to validate reproducibility of the testing of at least one of the software application, the script, the computer hardware design, and the circuit design;

query the ledger database for data specifying the test script, a runtime environment data, and at least one of the software application, the script, the computer hardware design, and the circuit design;

reassemble the workspace data;

execute the test script in the workspace data utilizing the runtime environment data to validate the test of at least one of the software application, the script, the computer hardware design, and the circuit design;

generate a second result data;

provide a second input data to the hash function, the second input data comprising a second testing data,

wherein the second testing data comprises the second result data, and

wherein the testing data that is input into the hash function comprises the result data;

generate a second hash value from the hash function that is uniquely determined based on the second input data;

compare the hash value to the second hash value; and

determine a match to certify the testing data as unaltered.

17. The non-transitory computer readable media of claim 16 ,

wherein the input data provided to the hash function further comprising at least one of the software application, metadata of the software application, the script, metadata of the script, the computer hardware design, metadata of the computer hardware design, the circuit design, and metadata of the circuit design, and

wherein the input data provided to the hash function further comprising at least one of a runtime environment data of a runtime environment in which the script was applied against at least one of the software application, the script, the computer hardware design, and the circuit design.

18. The non-transitory computer readable media of claim 17 , further comprising computer readable instructions that when executed on one or more processors:

define a workspace master from the workspace data;

initiate a discrete environment that is at least one of a computing container and a virtual computer;

clone the workspace master to generate a workspace clone;

mount the workspace clone to the discrete environment,

wherein executing the test script writes to the workspace clone;

select a filesystem root of a substrate filesystem to be operated on by the test script;

clone the substrate filesystem to be operated on to generate a substrate filesystem clone; and

mount the workspace clone to the discrete environment and associate the workspace clone with the substrate filesystem clone,

wherein the input data provided to the hash function further comprising at least one of the substrate filesystem and metadata data of the substrate filesystem,

wherein the test script is selected from two or more test scripts within a test fileset,

wherein the workspace clone mounted to the discrete environment is one of two or more workspace clones generated from the workspace data, and

wherein each of the two or more test scripts within the test fileset is isolation tested through execution within a different instance of each of the two or more workspace clones.

19. The non-transitory computer readable media of claim 18 , further comprising computer readable instructions that when executed on one or more processors:

query the ledger database for the hash value; and

query the input data provided to the hash function that resulting in generation of the hash value.

20. The non-transitory computer readable media of claim 19 , further comprising computer readable instructions that when executed on one or more processors:

re-calculate a second hash value by re-inputting the input data into the hash function;

compare the hash value with the second hash value; and

determine a match to validate the testing data was generated prior to the generation of the blockchain transaction and is unaltered.

Assignments (4)
SECURITY INTEREST Recorded Apr 7, 2026
From: PERFORCE SOFTWARE, INC.; DELPHIX CORP.; AKANA, INC.; ROGUE WAVE SOFTWARE, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 075368/0968 →
RELEASE OF SECURITY INTEREST Recorded Apr 7, 2026
From: CORTLAND CAPITAL MARKET SERVICES, AS COLLATERAL AGENT
To: ROGUE WAVE SOFTWARE, INC.; AKANA, INC.; GLIFFY, INC.; DELPHIX CORP.
Reel/Frame 075365/0519 →
MERGER AND CHANGE OF NAME Recorded Dec 19, 2025
From: METHODICS, INC.; PERFORCE SOFTWARE, INC.
To: PERFORCE SOFTWARE, INC.
Reel/Frame 073278/0801 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2023
From: MOONDHRA, VISHAL; THEUNIS, PETER
To: METHODICS, INC.
Reel/Frame 062925/0868 →
Continuity (3)
Continuation 17895093 · Aug 25, 2022
Continuation 16897259 · Jun 9, 2020
Related Publication 20230205682A1 · Jun 29, 2023