Authors:
Zhenyu Zhang
1
;
Zijian Tong
2
and
Xiaopeng Gao
3
Affiliations:
1
Institute of Software, Chinese Academy of Sciences, China
;
2
R&D, Sohu.com Inc., China
;
3
School of Computer Science and Technology, Beihang University, China
Keyword(s):
Regression Testing, Test Case Prioritization, Continuous Integration, Pipeline Scheduling.
Related
Ontology
Subjects/Areas/Topics:
Software Engineering
;
Software Engineering Methods and Techniques
;
Software Testing and Maintenance
Abstract:
When software evolves, its functionalities are evaluated using regression testing. In a regression testing process, a test suite is augmented, reduced, prioritized, and run on a software build version. Regression testing has been used in industry for decades; while in some modern software activities, we find that regression testing is yet not practical to apply. For example, according to our realistic experiences in Sohu.com Inc., running a reduced test suite, even concurrently, may cost two hours or longer. Nevertheless, in an urgent task or a continuous integration environment, the version builds and regression testing requests may come more often. In such a case, it is not strange that a new round of test suite run needs to start before all the previous ones have terminated. As a solution, running test suites on different build versions in parallel may increase the efficiency of regression testing and facilitate evaluating the fitness of software evolutions. On the other hand, har
dware and software resources limit the number of paralleled tasks. In this paper, we raise the problem of testing in parallel, give the general problem settings, and use a pipeline presentation for data visualization. Solving this problem is expected to make practical regression testing.
(More)