US 12,067,386 B2
Systems and methods for determining software parity
Komal Krishna Pandamaneti, Frisco, TX (US); Lavanya Raja, Frisco, TX (US); Sairam Kommireddy, Frisco, TX (US); Maria Rabinowitz, Arlington, VA (US); Steven G. Chiagouris, Plano, TX (US); Jason E. Lines, Prosper, TX (US); and Brittany Nicole Geron Courtney, Celina, TX (US)
Assigned to Capital One Services, LLC, McLean, VA (US)
Filed by Capital One Services, LLC, McLean, VA (US)
Filed on Sep. 29, 2022, as Appl. No. 17/936,460.
Prior Publication US 2024/0111509 A1, Apr. 4, 2024
Int. Cl. G06F 8/65 (2018.01); G06F 11/36 (2006.01)
CPC G06F 8/65 (2013.01) [G06F 11/3608 (2013.01)] 15 Claims
OG exemplary drawing
 
1. A system for determining that a new software program is in parity with a legacy software program, the new software program executing in parallel with the legacy software program, the system comprising:
one or more processors; and
a non-transitory, computer-readable medium comprising instructions that, when executed by the one or more processors, cause operations comprising:
receiving, in chronological order, information for a plurality of threads processed by a legacy software program, the information including input data and corresponding output data for each thread;
processing, using a new software program executing in parallel with the legacy software program, for a first thread from the plurality of threads, first input from the input data to generate a first output;
determining whether a variance of the first output falls within a threshold distance from a corresponding value in the output data for the first thread generated from the legacy software program;
in response to determining that the variance of the first output does not fall within the threshold distance from the corresponding value in the output data for the first thread, ceasing further processing by the new software program of the input data for the first thread;
processing, using the new software program executing in parallel with the legacy software program, for a second thread from the plurality of threads, a second input from the input data to generate a second output, wherein processing for the second thread at least partially overlaps with processing for the first thread;
determining whether a variance of the second output falls within the threshold distance from a corresponding value in the output data for the second thread generated from the legacy software program; and
in response to determining that the variance of the second output falls within the threshold distance from the corresponding value in the output data for the second thread, allowing further processing by the new software program of the input data for the second thread.