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

Static and dynamic analysis of call chains in java

Published: 01 July 2004 Publication History

Abstract

This work presents a parameterized framework for static and dynamic analysis of call chains in Java components. Such analyses have a wide range of uses in tools for software understanding and testing. We also describe a test coverage tool built with these analyses and the use of the tool on a real-world test suite. Our experiments evaluate the exact precision of several instances of the framework and provide a novel approach for estimating the limits of class analysis technology for computing precise call chains.

References

[1]
A. Abdurazik and J. Offutt. Using UML collaboration diagrams for static checking and test generation. In Int. Conf. Unified Modeling Language (UML'00), pages 383--395, 2000.
[2]
G. Ammons, T. Ball, and J. Larus. Exploiting hardware performance counters with flow and context sensitive profiling. In Conf. Programming Language Design and Implementation, pages 85--96, 1997.
[3]
L. O. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen, 1994.
[4]
D. Bacon and P. Sweeney. Fast static analysis of C++ virtual function calls. In Conf. Object-Oriented Programming Systems, Languages, and Applications, pages 324--341, 1996.
[5]
R. Binder. Testing Object-Oriented Systems: Models, Patterns, and Tools. Addison-Wesley, 1999.
[6]
R. Bodik, R. Gupta, and M. L. Soffa. Refining data flow information using infeasible paths. In Symp. Foundations of Software Engineering, pages 361--377, 1997.
[7]
L. Briand and Y. Labiche. A UML-based approach to system testing. J. Software and Systems Modeling, 1(1), 2002.
[8]
F. Fraikin and T. Leonhardt. SeDiTeC---testing based on sequence diagrams. In Int. Conf. Automated Software Engineering, pages 261--266, 2002.
[9]
A. Goldberg, T. C. Wang, and D. Zimmerman. Applications of feasible path analysis to program testing. In Int. Symp. Software Testing and Analysis, pages 80--94, 1994.
[10]
J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification. Addison-Wesley, 2 edition, 2000.
[11]
D. Grove and C. Chambers. A framework for call graph construction algorithms. ACM Trans. Programming Languages and Systems, 23(6):685--746, Nov. 2001.
[12]
L. H. Holley and B. Rosen. Qualified data flow problems. IEEE Trans. Software Engineering, 7(1):60--78, Jan. 1981.
[13]
P. Jorgenson and C. Erickson. Object-oriented integration testing. Commun. ACM, 37(9):30--38, Sept. 1994.
[14]
O. Lhoták and L. Hendren. Scaling Java points-to analysis using Spark. In Int. Conf. Compiler Construction, LNCS 2622, pages 153--169, 2003.
[15]
D. Liang, M. Pennings, and M. J. Harrold. Extending and evaluating flow-insensitive and context-insensitive points-to analyses for Java. In Workshop on Program Analysis for Software Tools and Engineering, pages 73--79, June 2001.
[16]
T. McCabe and C. Butler. Design complexity measurement and testing. Commun. ACM, 32(12):1415--1425, Dec. 1989.
[17]
M. Robillard and G. Murphy. Concern graphs: Finding and describing concerns using structural program dependencies. In Int. Conf. Software Engineering, 2002.
[18]
A. Rountev, S. Kagan, and M. Gibas. Evaluating the imprecision of static analysis. In Workshop on Program Analysis for Software Tools and Engineering, June 2004.
[19]
A. Rountev, A. Milanova, and B. G. Ryder. Points-to analysis for Java based on annotated constraints. In Conf. Object-Oriented Programming Systems, Languages, and Applications, pages 43--55, Oct. 2001.
[20]
A. Rountev, A. Milanova, and B. G. Ryder. Fragment class analysis for testing of polymorphism in Java software. IEEE Trans. Software Engineering, 2004.
[21]
J. Rumbaugh, I. Jacobson, and G. Booch. The Unified Modeling Language Reference Manual. Addison-Wesley, 1999.
[22]
B. G. Ryder. Dimensions of precision in reference analysis of object-oriented programming languages. In Int. Conf. Compiler Construction, 2003.
[23]
O. Shivers. Control-Flow Analysis of Higher-Order Languages. PhD thesis, Carnegie Mellon University, 1991.
[24]
S. Sinha and M. J. Harrold. Analysis and testing of programs with exception handling constructs. IEEE Trans. Software Engineering, 26(9):849--871, Sept. 2000.
[25]
A. Souter and L. Pollock. Characterization and automatic identification of type infeasible call chains. Information and Software Technology, 44:721--732, 2002.
[26]
A. Souter and L. Pollock. The construction of contextual def-use associations for object-oriented systems. IEEE Trans. Software Engineering, 29(11):1005--1018, Nov. 2003.
[27]
M. Streckenbach and G. Snelting. Points-to for Java: A general framework and an empirical comparison. Technical report, U. Passau, Sept. 2000.
[28]
C. Szyperski. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 2nd edition, 2002.
[29]
P. Tonella and A. Potrich. Reverse engineering of the interaction diagrams from C++ code. In Int. Conf. Software Maintenance, pages 159--168, 2003.
[30]
Y. Wu, M.-H. Chen, and J. Offutt. UML-based integration testing for component-based software. In Int. Conf. COTS-Based Software Systems, 2003.

Cited By

View all
  • (2023)That’s a Tough Call: Studying the Challenges of Call Graph Construction for WebAssemblyProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598104(892-903)Online publication date: 12-Jul-2023
  • (2022)Test mimicry to assess the exploitability of library vulnerabilitiesProceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3533767.3534398(276-288)Online publication date: 18-Jul-2022
  • (2022)Striking a balanceProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510166(2043-2055)Online publication date: 21-May-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ISSTA '04: Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
July 2004
294 pages
ISBN:1581138202
DOI:10.1145/1007512
  • cover image ACM SIGSOFT Software Engineering Notes
    ACM SIGSOFT Software Engineering Notes  Volume 29, Issue 4
    July 2004
    284 pages
    ISSN:0163-5948
    DOI:10.1145/1013886
    Issue’s Table of Contents
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 July 2004

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. call chains
  2. call graph
  3. dynamic analysis
  4. static analysis

Qualifiers

  • Article

Conference

ISSTA04
Sponsor:

Acceptance Rates

Overall Acceptance Rate 58 of 213 submissions, 27%

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2023)That’s a Tough Call: Studying the Challenges of Call Graph Construction for WebAssemblyProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598104(892-903)Online publication date: 12-Jul-2023
  • (2022)Test mimicry to assess the exploitability of library vulnerabilitiesProceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3533767.3534398(276-288)Online publication date: 18-Jul-2022
  • (2022)Striking a balanceProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510166(2043-2055)Online publication date: 21-May-2022
  • (2021)Virtual Static Security Analyzer for Web Applications2021 IEEE 20th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom)10.1109/TrustCom53373.2021.00119(840-848)Online publication date: Oct-2021
  • (2021)Call Frequency-Based Fault Localization2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER50967.2021.00041(365-376)Online publication date: Mar-2021
  • (2021)Qualitative and Quantitative Analysis of Callgraph Algorithms for Python2021 International Conference on Code Quality (ICCQ)10.1109/ICCQ51190.2021.9392986(1-15)Online publication date: 27-Mar-2021
  • (2021)TaintBench: Automatic real-world malware benchmarking of Android taint analysesEmpirical Software Engineering10.1007/s10664-021-10013-527:1Online publication date: 29-Oct-2021
  • (2020)Leveraging Contextual Information from Function Call Chains to Improve Fault Localization2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER48275.2020.9054820(468-479)Online publication date: Feb-2020
  • (2017)Control-flow recovery from partial failure reportsACM SIGPLAN Notices10.1145/3140587.306236852:6(390-405)Online publication date: 14-Jun-2017
  • (2017)Control-flow recovery from partial failure reportsProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062368(390-405)Online publication date: 14-Jun-2017
  • 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