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

Selected Trace Representative

You can find the selected traces (i.e., regression tests) at here:Β  Download Data

Trace Selection Result for Task 1 in Version 0


Click image to view full trace file

Trace Selection Result for Task 1 in Version 1


Click image to view full trace file