Regression Test Selection
We analyze changes between the older version ππππ πππ0 and the new version ππππ πππ1 for the code, the design flowchart and the art resource files. Then, we leverage change impact analysis to identify those states and transitions in the STG that are affected by the changes. Considering the large number of test cases created to cover huge input space and the large number of versions generated from the frequent updates of the game, an efficient test selection method is needed to select as few test cases as possible. Based on the STG, we propose a greedy-based RTS technique with the guidance of the affected states and transitions.Β
We re-run the selected test cases on the new version (i.e., ππππ πππ1) to detect the regression bugs. For the test cases that are no longer feasible to the new version due to the changes, we applied the random exploration strategy from the last reached states. Finally, we update the STG of the old version after running regression tests for the new version. The updated STG will be used in future regression testing (e.g., ππππ πππ2).
The inputs of the algorithm include the set of affected states πΆπ , the set of affected actions πΆπ΄, and the STG of the game. The output is a set of test cases. Each test case is a sequence of states and actions, starting the initial state of the STG, π 0, and ending at the final state of the STG π π β πΉ . In general, the method π ππ performs a recursive traversal over the STG. It performs a greedy strategy to select the traces on STG that can cover all affected states and actions.
Changed File Type Representative
For State changes: Nodes with Background in Orange
For code/method Action changes: Dashed Edges in Blue
For design/JSON config Action changes: Dotted Edges in Red
Selected Trace Representative
Trace 1: Pointer Trace inΒ Purple
Trace 2: Pointer Trace in Bright Red
You can find the selected traces (i.e., regression tests) at here:Β Download Data