Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/11549468_81guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Multi-threaded testing with AOP is easy, and it finds bugs!

Published: 30 August 2005 Publication History

Abstract

We investigate the suitability of AOP (Aspect Oriented Programming) for testing tools by trying to implement the ConTest testing tool using AspectJ, a tool that implements AOP for the Java programming language. We examine whether the entire set of features can be implemented this way, in the context of the larger problem where moving to a higher level of abstraction means that some details cannot be implemented.
Our conclusion from this exercise is that AOP is very suitable for the implementation of a number of classes of test tools. These include multi-threaded noise makers such as ConTest, in addition to coverage analyzers, data-race detectors, network traffic simulators, runtime bug pattern detectors, and others. The main advantage is that the instrumentation part of the tool creating method, which usually contains little scientific contribution but consumes most of the work, becomes much easier to perform and requires less expertise. In our specific exercise, a task that took more than half a year and required specialized knowledge, was reduced to two weeks work by a relative novice.

References

[1]
Aspectj getting started, http://www.elipse.org/aspectj.
[2]
J.-D. Choi and H. Srinivasan. Deterministic replay of java multithreaded applications. In Proceedings of the SIGMETRICS Symposium on Parallel and Distributed Tools, August 1998.
[3]
J. C. Corbett, M. Dwyer, J. Hatcliff, C. Pasareanu, Robby, S. Laubach, and H. Zheng. Bandera: Extracting finite-state models from Java source code. In Proc. 22nd International Conference on Software Engineering (ICSE). ACM Press, June 2000.
[4]
O. Edelstein, E. Farchi, E. Goldin, Y. Nir, G. Ratsaby, and S. Ur. Testing multithreaded java programs. submitted to the IBM System Journal Special Issue on Software Testing, February 2002.
[5]
O. Edelstein, E. Farchi, Y. Nir, G. Ratsaby, and S. Ur. Multithreaded Java program test generation. IBM Systems Journal, 41(1):111-125, 2002. Also available as http://www.research.ibm.com/journal/sj/411/edelstein.html.
[6]
A. Hartman, A. Kirshin, and K. Nagin. A test execution environment running abstract tests for distributed software. In Proceedings of Software Engineering and Applications, SEA 2002, 2002.
[7]
K. Havelund and T. Pressburger. Model checking java programs using java pathfinder. International Journal on Software Tools for Technology Transfer, STTT, 2(4), April 2000.
[8]
E. Itzkovitz, A. Schuster, and O. Zeev-Ben-Mordehai. Towards integration of datarace detection in dsm systems. Journal of Parallel and Distributed Computing. Special Issue on Software Support for Distributed Computing, 59(2):180-203, Nov 1999.
[9]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. Lecture Notes in Computer Science, 2072:327-355, 2001.
[10]
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Akşit and S. Matsuoka, editors, Proceedings European Conference on Object-Oriented Programming, volume 1241, pages 220-242. Springer-Verlag, Berlin, Heidelberg, and New York, 1997.
[11]
Y. Malaiya, N. Li, J. Bieman, R. Karcich, and B. Skibbe. Software test coverage and reliability. Technical report, Colorado State University, 1996.
[12]
S. Porat, M. Biberstein, L. Koved, and B. Mendelson. Automatic detection of immutable fields in java. In Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research, page 10. IBM Press, 2000.
[13]
B. Richards and J. R. Larus. Protocol-based data-race detection. In Proceedings of the 2nd SIGMETRICS Symposium on Parallel and Distributed Tools, August 1998.
[14]
S. Savage. Eraser: A dynamic race detector for multithreaded programs. ACM Transactions on Computer Systems, 15(4):391-411, November 1997.
[15]
S. D. Stoller. Model-checking multi-threaded distributed java programs. In Proceedings of the 7th International SPIN Workshop on Model Checking, 2000.
[16]
S. D. Stoller. Model-checking multi-threaded distributed Java programs. International Journal on Software Tools for Technology Transfer, 4(1):71-91, Oct. 2002.
[17]
S. D. Stoller. Testing concurrent java programs using randomized scheduling. In In Proceedings of the Second Workshop on Runtime Verification (RV), volume 70(4) of Electronic Notes in Theoretical Computer Science. Elsevier, 2002.

Cited By

View all
  • (2011)Research in concurrent software testingProceedings of the Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging10.1145/2002962.2002964(1-5)Online publication date: 17-Jul-2011
  • (2010)A meta-aspect protocol for developing dynamic analysesProceedings of the First international conference on Runtime verification10.5555/1939399.1939415(153-167)Online publication date: 1-Nov-2010
  • (2010)Localizing defects in multithreaded programs by mining dynamic call graphsProceedings of the 5th international academic and industrial conference on Testing - practice and research techniques10.5555/1885930.1885939(56-71)Online publication date: 3-Sep-2010
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
Euro-Par'05: Proceedings of the 11th international Euro-Par conference on Parallel Processing
August 2005
1294 pages
ISBN:3540287000
  • Editors:
  • José C. Cunha,
  • Pedro D. Medeiros

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 30 August 2005

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2011)Research in concurrent software testingProceedings of the Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging10.1145/2002962.2002964(1-5)Online publication date: 17-Jul-2011
  • (2010)A meta-aspect protocol for developing dynamic analysesProceedings of the First international conference on Runtime verification10.5555/1939399.1939415(153-167)Online publication date: 1-Nov-2010
  • (2010)Localizing defects in multithreaded programs by mining dynamic call graphsProceedings of the 5th international academic and industrial conference on Testing - practice and research techniques10.5555/1885930.1885939(56-71)Online publication date: 3-Sep-2010
  • (2009)Aspect-oriented support for synchronization in parallel computingProceedings of the 1st workshop on Linking aspect technology and evolution10.1145/1509847.1509848(1-5)Online publication date: 3-Mar-2009
  • (2008)Improving developers' confidence in test results of multi-threaded systemsCompanion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications10.1145/1449814.1449898(899-900)Online publication date: 19-Oct-2008
  • (2008)Towards a better collaboration of static and dynamic analyses for testing concurrent programsProceedings of the 6th workshop on Parallel and distributed systems: testing, analysis, and debugging10.1145/1390841.1390849(1-9)Online publication date: 20-Jul-2008
  • (2007)Testing concurrent programs using value schedulesProceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering10.1145/1321631.1321678(313-322)Online publication date: 5-Nov-2007
  • (2007)ConTest listenersFourth international workshop on Software quality assurance: in conjunction with the 6th ESEC/FSE joint meeting10.1145/1295074.1295077(9-16)Online publication date: 3-Sep-2007
  • (2005)An extensible open-source compiler infrastructure for testingProceedings of the First Haifa international conference on Hardware and Software Verification and Testing10.1007/11678779_9(116-133)Online publication date: 13-Nov-2005
  • (2005)Choosing among alternative futuresProceedings of the First Haifa international conference on Hardware and Software Verification and Testing10.1007/11678779_17(247-264)Online publication date: 13-Nov-2005

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media