Software test environment for regression testing ground combat vehicle software
First Claim
1. A verification system for combat vehicle software application comprising:
- at least one combat vehicle software application (CVSA) configured for operation on a first processor under a first operating system environment, the CVSA communicatively coupled to and configured for communication with a plurality of combat vehicle subsystems (CVSUB)s by exchanging a plurality of messages according to a first predefined protocol, each CVSUB characterized by at least one expected behavior triggered responsive to an exchange of at least one of the plurality of messages with the CVSA, wherein the CVSA is operative to generate at least a first event representing a resultant of one or more interdependent expected behaviors of a first plurality of CVSUIBs triggered responsive to the exchange, between the CVSA and the first plurality of CVSUBs, of a first ordered sequence of messages from among the plurality of messages;
a set of extensible simulation primitives comprising computer executable instructions suitable for execution on a second processor under a second operating system environment, the set of extensible simulation primitives designed so that at least one subset of extensible simulation primitives is capable of cooperating to simulate the at least one expected behavior of a selected CVSUB from among the plurality of CVSUBS;
a plurality of simulated subsystems (SIMSUB)s corresponding to the plurality of CVSUBs, each SIMSUB comprising the at least one subset of extensible simulation primitives capable of cooperating to simulate the at least one expected behavior of the CVSUB that corresponds to the SIMSUB by exchanging the at least one of the plurality of messages with the CVSA sufficient to trigger the at least one expected behavior of the CVSUB;
a graphical user interface (GUI) comprising at least one GUI panel corresponding to each of the SIMSUBs, each GUI panel associated with a selected SIMSUB adapted to enable a user to inject input to and receive output from the selected SIMSUB wherein the input and the output affect the generation of the first event;
a test vector file accessible using the second processor, the test vector file configured to store the injected input and the received output from each GUI panel associated with the first plurality of SIMSUBs involved in the exchange of the first ordered sequence of messages with the CVSA to affect generation of the first event by the CVSA;
a replay module executing on the second processor, the replay module configured to attempt regeneration of the first event by replaying the stored injected input from the data structure to recreate the exchange of the first ordered sequence of messages between the first plurality of SIMSUBs and an altered CVSA; and
a comparator module communicating with the test vector file, the replay module and the GUI, the comparator module operative to capture and dynamically compare the received output from the attempted regeneration of the first event using the altered CVSA to the received output from the generation of the first event by the unaltered CVSA and output indicia indicative of each disagreement between the two.
1 Assignment
0 Petitions
Accused Products
Abstract
A STE for automated testing of ground combat vehicle software application to validate vehicle software logic provides a system and method to conduct interactive (manual) testing of the vehicle software while under development, record information related to the interactive testing activities, including but not limited to tester inputs and expected outcomes, and perform automated testing of the combat vehicle software application using the recorded information. Preferably, reconfiguration of the STE to support changes that arise due to the evolution of the combat vehicle software application system and the subsystems under control of the evolving software system is provided.
98 Citations
36 Claims
-
1. A verification system for combat vehicle software application comprising:
-
at least one combat vehicle software application (CVSA) configured for operation on a first processor under a first operating system environment, the CVSA communicatively coupled to and configured for communication with a plurality of combat vehicle subsystems (CVSUB)s by exchanging a plurality of messages according to a first predefined protocol, each CVSUB characterized by at least one expected behavior triggered responsive to an exchange of at least one of the plurality of messages with the CVSA, wherein the CVSA is operative to generate at least a first event representing a resultant of one or more interdependent expected behaviors of a first plurality of CVSUIBs triggered responsive to the exchange, between the CVSA and the first plurality of CVSUBs, of a first ordered sequence of messages from among the plurality of messages;
a set of extensible simulation primitives comprising computer executable instructions suitable for execution on a second processor under a second operating system environment, the set of extensible simulation primitives designed so that at least one subset of extensible simulation primitives is capable of cooperating to simulate the at least one expected behavior of a selected CVSUB from among the plurality of CVSUBS;
a plurality of simulated subsystems (SIMSUB)s corresponding to the plurality of CVSUBs, each SIMSUB comprising the at least one subset of extensible simulation primitives capable of cooperating to simulate the at least one expected behavior of the CVSUB that corresponds to the SIMSUB by exchanging the at least one of the plurality of messages with the CVSA sufficient to trigger the at least one expected behavior of the CVSUB;
a graphical user interface (GUI) comprising at least one GUI panel corresponding to each of the SIMSUBs, each GUI panel associated with a selected SIMSUB adapted to enable a user to inject input to and receive output from the selected SIMSUB wherein the input and the output affect the generation of the first event;
a test vector file accessible using the second processor, the test vector file configured to store the injected input and the received output from each GUI panel associated with the first plurality of SIMSUBs involved in the exchange of the first ordered sequence of messages with the CVSA to affect generation of the first event by the CVSA;
a replay module executing on the second processor, the replay module configured to attempt regeneration of the first event by replaying the stored injected input from the data structure to recreate the exchange of the first ordered sequence of messages between the first plurality of SIMSUBs and an altered CVSA; and
a comparator module communicating with the test vector file, the replay module and the GUI, the comparator module operative to capture and dynamically compare the received output from the attempted regeneration of the first event using the altered CVSA to the received output from the generation of the first event by the unaltered CVSA and output indicia indicative of each disagreement between the two. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. The system of claim I wherein the disagreement between the received output from the attempted regeneration of the first event using the altered CVSA and the received output from the generation of the first event by the unaltered CVSA includes a time delay between an initiation of the command signal and the receipt of the respective output from the attempted regeneration of the first event using the altered CVSA and from the generation of the first event by the unaltered CVSA.
-
13. A computer-implemented method for determining an effect of changed code corresponding to a second version of a combat vehicle software application (CVSA) relative to a first version of the CVSA, the CVSA executing in a first operating system environment on a first processor and configured to interact with a plurality of external combat vehicle subsystems, the method comprising the steps of:
-
a) providing a plurality of separate combat vehicle subsystem simulators (CVSUIBS) executing in a second operating system environment on a second processor wherein some of the CVSUBS are different from others in the plurality and wherein each of the CVSUBS is equipped with a behavioral model to simulate an operation of one of the plurality of external combat vehicle subsystems by receiving command information, generated by the CVSA responsive to receiving stimuli information, and transmitting response information produced by applying the received command information to the behavioral model;
b) communicatively coupling the CVSA to the CVSUBS by using a bi-directional bus to allow each of the CVSUBS to communicate with the CVSA in accordance with a predetermined communications protocol;
c) supplying selected stimuli information to the CVSA to cause the CVSA to selectively interact with one or more CVSUBS and generate a simulation scenario from the response information output at the selected one or more CVSUBS;
d) collecting and storing the stimulus, command and response information produced during the generation of a first simulation scenario using the first version of the CVSA code and during the generation of the first simulation scenario using the second version of the CVSA code; and
e) analyzing the collected and stored information to determine the effect of changed code corresponding to the second version of the CVSA relative to the first version of the CVSA code. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A software test environment (STE) for conducting a regression test of a combat vehicle software application (CVSA) running on a first processor under a first operating system environment, the CVSA configured to interact with combat vehicle software subsystems applications (CVSUBAs) by encoded messages communicated over a data bus to generate a set of events, each event resulting from an interaction of one or more CVSUBAs with the CVSA, the STE comprising:
-
a simulated subsystem module (SSM) having computer readable instructions defining a separate logic structure for each of the CVSUBAs, the logic structures configured for operation on a second processor under a second operating system environment wherein each separate logic structure simulates at least one operation of one of the CVSUBAs wherein a first event results from one or more simulated operations representing the interaction of the at least one CVSUBA or a combination of CVSUBAs with the CVSA using a first set of electronic message interchanges;
a bi-directional communication link communicatively coupled to the first and second processors to allow an of exchange electronic messages between the CVSA and the SSM using a predetermined communications protocol;
a translator module coupled intermediate the bi-directional communication link and each of the first and second processors, the translator module configured to provide a communication interface between the CVSA and the SSM;
a graphical user interface (GUI) coupled to the SSM and having a plurality of control panels for data input so as to initiate and to continue the generation of the first event;
a record-replay module coupled to the SSM to selectively store the electronic messages interactions, associated with the generation of the first event, in a first test file and responsive to user input, replay the first test file to selectively supply at least one of the first set of electronic message interactions stored therein to the SSM, in lieu of the data input, to attempt to initiate and automatically continue the generation of the first event, the record-replay module effective to dynamically compare the resulting second set of electronic message interactions with the first set of electronic message interactions to determine a disagreement between them wherein the disagreement is indicative of the CVSA failing the regression test. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A method to verify a combat vehicle software application used to control the operation of combat vehicle subsystems wherein the combat vehicle software applications communicate with the combat vehicle subsystems over a communication bus using a MIL-STD-1553 protocol, the method comprising the steps of:
-
a) executing a combat vehicle software application (CVSA) on a first processor under a first operating system;
b) providing a table-based behavioral description of each combat vehicle subsystem (CVSUB) for access thru a computer code executing on a second processor under a second operating system, the table-based behavioral description defining a relationship between at least one command signal from the CVSA, at least one behavior associated with at least one combat vehicle subsystem (CVSUB) and at least one response signal output by the CVSUB based upon the at least one behavior;
c) creating a set of simulation primitives, each simulation primitive comprising a set of computer instructions executable on the second processor and configured to accept input, perform a basic operation based upon the input and optionally generate an output;
d) configure a selected subset of the set of simulation primitives corresponding to each selected CVSUB to create a simulated subsystem (SIMSUB) representing a behavioral model of the selected CVSUB, the subset of simulation primitives communicatively coupled through their inputs and outputs for cooperative operation wherein each subset of simulation primitives presents a common input interface and a common output interface, the SIMSUB configured to receive the at least one command signal and at least one user data input at the common input interface, retrieve the table-based behavioral description related to the at least one command signal, perform basic operations resulting in the at least one behavior associated with at least one combat vehicle subsystem (CVSUB) and output the at least one response associated with the at least one behavior of the CVSUB;
e) providing a graphical user interface (GUI) comprising one or more GUI panels, each SIMSUB associated with at least one GUI panel, each GUI panel having computer executable instructions to generate a user-manipulable display coupled to the second processor for enabling user data input to and echoing information from the SIMSUB corresponding to the GUI panel;
f) calling up the GUI panel associated with a selected SIMSUB and inputting the at least one user data input using the GUI panel, the SIMSUB configured to generate a response signal representing a stimulus for transmission to the CVSA responsive to the user data input, the stimulus effective to trigger a command signal by the CVSA;
g) sequentially recording the user data input at the GUI panel and the information from the SIMNSUB echoed at GUI panel responsive to the user data input, the user data input and the information echoed at the GUI panel affecting generation of a first event by the CVSA;
h) replaying the recorded user data input to the GUI panel after an alteration to the CVSA to attempt regeneration of the first event by the CVSA;
i) dynamically determining each agreement and each disagreement between the information from the SIMSUB echoed at the GUI panel before and after the alteration; and
j) outputting a pass and a fail corresponding to each agreement and each disagreement respectively. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34)
-
-
35. A system for testing a combat vehicle software application the system comprising:
-
a combat vehicle software (CVS) logic structure for execution in a first operating system environment on a first processor, the logic structure configured to receive a plurality of signal inputs;
a stimuli selection logic to select at least one stimulus to apply to the CVS logic structure from among the plurality of signal inputs;
at least one signal command output by the CVS logic structure responsive to the at least one stimulus;
a plurality of reconfigurable vehicle software subsystem (VSS) logic structures for execution in a second operating system environment on a second processor, the VSS logic structures configured to respond deterministically to the at least one signal command, at least one of the plurality of reconfigurable vehicle software subsystem (VSS) logic structures configured for application to the at least one signal command output corresponding to the at least one stimulus;
at least one event output resulting from the application of the at least one VSS logic structure to the at least one signal command output corresponding to the at least one stimulus;
a time delay associated with the at least one event output, the time delay representing the time elapsed between the application of the at least one stimulus and the occurrence of the at least one event output;
a bus interface communicatively coupling the first processor to the second processor, the bus interface adapted to transmit the selected at least one stimulus for receipt by the CVS logic structure and the at least one signal command for receipt by the VSS logic structure;
a test vector to store the selected at least one stimulus and information resulting from the application of the selected at least one stimulus to the CVS logic structure including the at least one signal command, the at least one event and the time delay; and
a comparator for evaluating successive test vectors generated by the CVS logic structure to determine whether the CVS logic structure is operating properly.
-
-
36. A system for regression testing combat vehicle software application configured for cooperative operation with at least one combat vehicle subsystem, the system comprising:
-
a first processor operating under the control of a first operating system;
at least one second processor operating under the control of a second operating system;
at least one data store communicatively coupled to at least one of the first and the second processors;
a combat vehicle software application configured to execute on the first processor, the combat vehicle software operative to receive regression testing related information defining at least one stimulus and to selectively generate regression testing related information defining at least one signal command responsive to the at least one stimulus; and
at least one reconfigurable logic module including instructions executable on the second processor, the instructions operative to generate regression testing related information defining a signal response responsive to the at least one signal command and regression testing related information defining a time for response, the signal response indicative of a predefined behavior of the at least one combat vehicle subsystem in response to the at least one signal command, the time for response indicative of an anomalous delay between the at least one stimulus and the signal response;
a bi-directional communication link operative to communicatively couple the first and the second processors for transmission of regression testing related information between the combat vehicle software and the at least one reconfigurable logic module;
a translator module configured to interoperate with the bi-directional communication link and the combat vehicle software at the first processor and with the bi-directional communication link and the at least one reconfigurable logic module at the second processor, the translator module operative to reformat regression testing related information for each passage of the regression testing related information to and from the bi-directional communication link;
an input device configured to receive user input and to generate regression testing related information defining an input signal; and
a record-replay module in data communication with the at least one reconfigurable logic module and the at least one data store, the record-replay module operative to record the regression testing related information corresponding to each test case wherein each test case is characterized by the regression testing related information flowing through the system beginning the regression testing related information defining at least one stimulus and ending with the regression testing related information defining the at least one signal response wherein a difference between regression testing related information corresponding to two test cases is indicative of a regression of the system.
-
Specification