Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/504282.504305acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Regression test selection for Java software

Published: 01 October 2001 Publication History

Abstract

Regression testing is applied to modified software to provide confidence that the changed parts behave as intended and that the unchanged parts have not been adversely affected by the modifications. To reduce the cost of regression testing, test cases are selected from the test suite that was used to test the original version of the software---this process is called regression test selection. A safe regression-test-selection algorithm selects every test case in the test suite that may reveal a fault in the modified software. Safe regression-test-selection technique that, based on the use of a suitable representation, handles the features of the Java language. Unlike other safe regression test selection techniques, the presented technique also handles incomplete programs. The technique can thus be safely applied in the (very common) case of Java software that uses external libraries of components; the analysis of the external code is note required for the technique to select test cases for such software. The paper also describes RETEST, a regression-test-selection algorithm can be effective in reducing the size of the test suite.

References

[1]
Aristotle Research Group, Georgia Institute of Technology. Java Architecture for Bytecode Analysis. 2000.
[2]
D. F. Bacon and P. F. Sweeney. Fast static analysis of C++ virtual function calls. In Proceedings of the 11th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 324- 341, Oct. 1996.
[3]
T. Ball. On the limit of control ow analysis for regression test selection. In ACM Int'l Symp. on Softw. Testing and Analysis, pages 134-142, Mar. 1998.
[4]
J. Bible and G. Rothermel. A unifying framework supporting the analysis and development of safe regression test selection techniques. Technical Report 99-60- 11, Oregon State University, Dec. 1999.
[5]
J. Bible, G. Rothermel, and D. Rosenblum. A comparative study of coarse- and fine-grained safe regression test selection. ACM Transactions on Software Engineering and Methodology, 10(2):149-183, Apr. 2001.
[6]
A. Carzaniga, D. S. Rosenblum, and A. L. Wolf. Design and evaluation of a wide-area event notification service. ACM Transactions on Computer Systems, 19(3):332- 383, Aug. 2001.
[7]
T. Cheatham and L. Mellinger. Testing object-oriented software systems. In Proceedings of the 1990 Computer Science Conference, pages 161-165, 1990.
[8]
Y. F. Chen, D. S. Rosenblum, and K. P. Vo. TestTube: A system for selective regression testing. In Proceedings of the 16th International Conference on Software Engineering, pages 211-222, May 1994.
[9]
B. F. Cooper, H. B. Lee, and B. G. Zorn. Profbuilder: A package for rapidly building java execution profilers. Technical report, University of Colorado.
[10]
J. Dean, D. Grove, and C. Chambers. Optimizations of object-oriented programs using static class hierachy analysis. In European Conference on Object-Oriented Programming, pages 77-101, 1995.
[11]
S. P. Fielder. Object-oriented unit testing. Hewlett- Packard Journal, 40(2):69-74, Apr. 1989.
[12]
T. Graves, M. J. Harrold, J.-M. Kim, A. Porter, and G. Rothermel. An empirical study of regression test selection techniques. In Proceedings of the International Conference on Software Engineering, pages 188-197, Apr. 1998.
[13]
M. J. Harrold, J. D. McGregor, and K. J. Fitzpatrick. Incremental testing of object-oriented class inheritance structures. In Proceedings of the 14th International Conference on Software Engineering, pages 68-80, May 1992.
[14]
P. Hsia, X. Li, D. Kung, C-T. Hsu, L. Li, Y. Toyoshima, and C. Chen. A technique for the selective revalidation of OO software. Software Maintenance: Research and Practice, 9:217-233, 1997.
[15]
J.-M. Kim, A. Porter, and G. Rothermel. An empirical study of regression test application frequency. In Proceedings of the 22nd International Conference on Software Engineering, pages 126-135, Jun. 2000.
[16]
D. Kung, J. Gao, P. Hsia, Y. Toyoshima, and C. Chen. Firewall regression testing and software maintenance of object-oriented systems. Journal of Object-Oriented Programming, 1994.
[17]
D. Kung, J. Gao, P. Hsia, Y. Toyoshima, C. Chen, Y- S. K im, and Y-K. Song. Developing an object-oriented software testing and maintenance environment. Communications of the ACM, 38(10):75-87, Oct. 1995.
[18]
D. Kung, J. Gao, P. Hsia, F. Wen, Y. Toyoshima, and C. Ch en. On regression testing of object-oriented programs. The Journal of Systems and Software, 32(1):21- 40, Jan. 1996.
[19]
D. Kung, J. Gao, P. Hsia, Y. Wen, and Y. Toyoshima. Change impact identification in object-oriented software maintenance. In Proceedings of the International Conference on Software Maintenance '94, pages 202- 211, Sep. 1994.
[20]
H. K. N. Leung and L. J. White. A study of integration testing and software regression at the integration level. In Proceedings of the Conference on Software Maintenance - 1990, pages 290-300, Nov. 1990.
[21]
H. K. N. Leung and L. J. White. Insights into testing and regression testing global variables. Journal of Software Maintenance: Research and Practice, 2:209-222, Dec. 1990.
[22]
H. K. N. Leung and L. J. White. A cost model to compare regression test strategies. In Proceedings of the Conference on Software Maintenance '91, pages 201- 208, Oct. 1991.
[23]
D. Liang, M. Pennings, and M. J. Harrold. Extending and evaluating ow-insensitive and context-insensitive points-to analyses for java. In Proceedings of the ACM Workshop on Program Analyses for Software Tools and Engineering, Jun. 2001.
[24]
C. E. McDowell and D. P. Helmbold. Debugging concurrent programs. ACM Computing Surveys, 21(4):593-622, Dec. 1989.
[25]
Sun Microsystems. Java Virtual Machine Debug Interface. http://java.sun.com/products/jdk/1.2/docs/guide/jvmdi/.
[26]
Sun Microsystems. Java Virtual Machine Profiler Interface. http://java.sun.com/products/jdk/- 1.2/docs/guide/jvmpi/jvmpi.html.
[27]
Sun Microsystems. Java2 Platform, API Specification. http://java.sun.com/j2se/1.3/docs/api/.
[28]
Sun Microsystems. The Java Foundation Class Abstract Window Toolkit. http://java.sun.com/products/jdk/awt/.
[29]
G. Rothermel and M. J. Harrold. A safe, efficient regression test selection technique. ACM Transactions on Software Engineering and Methodology, 6(2):173-210, Apr. 1997.
[30]
G. Rothermel and M. J. Harrold. Empirical studies of a safe regression test selection technique. IEEE Transactions on Software Engineering, 24(6):401-419, Jun. 1998.
[31]
G. Rothermel, M. J. Harrold, and J. Dedhia. Regression test selection for C++ software. Journal of Software Testing, Verification, and Reliability, 10(6):77- 109, Jun. 2000.
[32]
Gregg Rothermel and Mary Jean Harrold. Analyzing regression test selection techniques. IEEE Transactions on Software Engineering, 22(8):529-551, Aug. 1996.
[33]
S. Sinha and M. J. Harrold. Analysis and testing of programs with exception-handling constructs. IEEE Transactions on Software Engineering, pages 849-871, Sep. 2000.
[34]
F. Tip and J. Palsberg. Scalable propagation-based call graph construction algorithms. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 281-293, Oct. 2000.
[35]
F. Vokolos and P. Frankl. Pythia: A regression test selection tool based on text differencing. In International Conference on Reliability, Quality, and Safety of Software Intensive Systems, May 1997.
[36]
L. J. White and K. Abdullah. A firewall approach for regression testing of object-oriented software. In Proceedings of 10th Annual Software Quality Week, May 1997.
[37]
L. J. White and H. K. N. Leung. A firewall concept for both control- ow and data- ow in regression integration testing. In Proceedings of the Conference on Software Maintenance - 1992, pages 262-270, Nov. 1992.

Cited By

View all
  • (2024)When Automated Program Repair Meets Regression Testing—An Extensive Study on Two Million PatchesACM Transactions on Software Engineering and Methodology10.1145/367245033:7(1-23)Online publication date: 13-Jun-2024
  • (2024)SIRO: Empowering Version Compatibility in Intermediate Representations via Program SynthesisProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3620666.3651366(882-899)Online publication date: 27-Apr-2024
  • (2023)Detecting Android API Compatibility Issues With API DifferencesIEEE Transactions on Software Engineering10.1109/TSE.2023.327415349:7(3857-3871)Online publication date: Jul-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
October 2001
382 pages
ISBN:1581133359
DOI:10.1145/504282
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 2001

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

OOPSLA01
Sponsor:

Acceptance Rates

OOPSLA '01 Paper Acceptance Rate 27 of 145 submissions, 19%;
Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)29
  • Downloads (Last 6 weeks)2
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)When Automated Program Repair Meets Regression Testing—An Extensive Study on Two Million PatchesACM Transactions on Software Engineering and Methodology10.1145/367245033:7(1-23)Online publication date: 13-Jun-2024
  • (2024)SIRO: Empowering Version Compatibility in Intermediate Representations via Program SynthesisProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3620666.3651366(882-899)Online publication date: 27-Apr-2024
  • (2023)Detecting Android API Compatibility Issues With API DifferencesIEEE Transactions on Software Engineering10.1109/TSE.2023.327415349:7(3857-3871)Online publication date: Jul-2023
  • (2023)BinaryRTS: Cross-language Regression Test Selection for C++ Binaries in CI2023 IEEE Conference on Software Testing, Verification and Validation (ICST)10.1109/ICST57152.2023.00038(327-338)Online publication date: Apr-2023
  • (2023)Test Selection for Unified Regression Testing2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)10.1109/ICSE48619.2023.00145(1687-1699)Online publication date: May-2023
  • (2023)GameRTS: A Regression Testing Framework for Video GamesProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00122(1393-1404)Online publication date: 14-May-2023
  • (2023)Efficient regression testing of distributed real-time reactive systems in the context of model-driven developmentSoftware and Systems Modeling10.1007/s10270-023-01086-522:5(1565-1587)Online publication date: 6-Mar-2023
  • (2022)Build System Aware Multi-language Regression Test Selection in Continuous Integration2022 IEEE/ACM 44th International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP)10.1109/ICSE-SEIP55303.2022.9793870(87-96)Online publication date: May-2022
  • (2022) MahtabJournal of Systems and Software10.1016/j.jss.2019.110403158:COnline publication date: 21-Apr-2022
  • (2021)Continuous test suite failure predictionProceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3460319.3464840(553-565)Online publication date: 11-Jul-2021
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media