Nothing Special   »   [go: up one dir, main page]

skip to main content
10.5555/2819419.2819428acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Towards classification of concurrency bugs based on observable properties

Published: 16 May 2015 Publication History

Abstract

In software engineering, classification is a way to find an organized structure of knowledge about objects. Classification serves to investigate the relationship between the items to be classified, and can be used to identify the current gaps in the field. In many cases users are able to order and relate objects by fitting them in a category. This paper presents initial work on a taxonomy for classification of errors (bugs) related to concurrent execution of application level software threads. By classifying concurrency bugs based on their corresponding observable properties, this research aims to examine and structure the state of the art in this field, as well as to provide practitioner support for testing and debugging of concurrent software. We also show how the proposed classification, and the different classes of bugs, relates to the state of the art in the field by providing a mapping of the classification to a number of recently published papers in the software engineering field.

References

[1]
K. Henningsson and C. Wohlin, "Assuring fault classification agreement - an empirical evaluation," in 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04. Proceedings, Aug. 2004, pp. 95--104.
[2]
C.-S. Park and K. Sen, "Randomized active atomicity violation detection in concurrent programs," in Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering. ACM, 2008, pp. 135--145.
[3]
L. L. Wu and G. E. Kaiser, "Constructing subtle concurrency bugs using synchronization-centric second-order mutation operators," Tech. Rep., 2011.
[4]
S. Eldh, S. Punnekkat, H. Hansson, and P. Jnsson, "Component testing is not enough-a study of software faults in telecom middleware," in Testing of Software and Communicating Systems. Springer, 2007, pp. 74--89.
[5]
P. Bourque, R. Fairley, and eds., "Guide to the software engineering body of knowledge, version 3.0," 2014.
[6]
V. R. Basili and B. T. Perricone, "Software errors and complexity: an empirical investigation," Communications of the ACM, vol. 27, no. 1, pp. 42--52, 1984.
[7]
"Systems and software engineering vocabulary," ISO/IEC/IEEE 24765:2010(E), pp. 1--418, Dec. 2010.
[8]
D. Gove, Multicore Application Programming: For Windows, Linux, and Oracle Solaris. Addison-Wesley Professional, 2010.
[9]
N. Yoshiura and W. Wei, "Static data race detection for java programs with dynamic class loading," in Internet and Distributed Computing Systems. Springer, 2014, pp. 161--173.
[10]
S. Akhter and J. Roberts, Multi-core programming. Intel press Hillsboro, 2006, vol. 33.
[11]
Y. Bhatia and S. Verma, "Deadlocks in distributed systems," International Journal of Research, vol. 1, no. 9, pp. 1249--1252, 2014.
[12]
B. Chapman, G. Jost, and R. Van Der Pas, Using OpenMP: portable shared memory parallel programming. MIT press, 2008, vol. 10.
[13]
W. Stallings, Operating Systems- internals and design principles. Prentice Hall Englewood Cliffs, 2012, vol. 7th.
[14]
S. Lin, A. Wellings, and A. Burns, "Supporting lock-based multiprocessor resource sharing protocols in real-time programming languages," Concurrency and Computation: Practice and Experience, vol. 25, no. 16, pp. 2227--2251, 2013.
[15]
D. Jayasinghe and P. Xiong, "CORE: Visualization tool for fault localization in concurrent programs."
[16]
S. Lu, S. Park, E. Seo, and Y. Zhou, "Learning from mistakes: a comprehensive study on real world concurrency bug characteristics," in ACM Sigplan Notices, vol. 43, no. 3. ACM, 2008, pp. 329--339.
[17]
S. Park, R. Vuduc, and M. J. Harrold, "A unified approach for localizing non-deadlock concurrency bugs," in Software Testing, Verification and Validation (ICST), 2012 IEEE Fifth International Conference on. IEEE, 2012, pp. 51--60.
[18]
S. Park, R. W. Vuduc, and M. J. Harrold, "Falcon: fault localization in concurrent programs," in Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1. ACM, 2010, pp. 245--254.
[19]
W. Araujo, L. C. Briand, and Y. Labiche, "Enabling the runtime assertion checking of concurrent contracts for the java modeling language," in Proceedings of the 33rd International Conference on Software Engineering, ser. ICSE '11. New York, NY, USA: ACM, 2011, pp. 786--795.
[20]
J. Oh, C. J. Hughes, G. Venkataramani, and M. Prvulovic, "LIME: A framework for debugging load imbalance in multi-threaded execution," in Proceedings of the 33rd International Conference on Software Engineering, ser. ICSE '11. New York, NY, USA: ACM, 2011, pp. 201--210.
[21]
N. Rungta and E. Mercer, "Slicing and dicing bugs in concurrent programs," in Proceedings of the 32Nd ACM/IEEE International Conference on Software Engineering - Volume 2, ser. ICSE '10. New York, NY, USA: ACM, 2010, pp. 195--198.
[22]
T. Ball, S. Burckhardt, J. de Halleux, M. Musuvathi, and S. Qadeer, "Deconstructing concurrency heisenbugs," in 31st International Conference on Software Engineering - Companion Volume, 2009. ICSE-Companion 2009, May 2009, pp. 403--404.
[23]
E. Bodden and K. Havelund, "Aspect-oriented race detection in java," IEEE Transactions on Software Engineering, vol. 36, no. 4, pp. 509--527, Jul. 2010.
[24]
F. Chen, T. Serbanuta, and G. Rosu, "jPredictor," in ACM/IEEE 30th International Conference on Software Engineering, 2008. ICSE '08, May 2008, pp. 221--230.
[25]
C. Hammer, J. Dolby, M. Vaziri, and F. Tip, "Dynamic detection of atomic-set-serializability violations," in ACM/IEEE 30th International Conference on Software Engineering, 2008. ICSE '08, May 2008, pp. 231--240.
[26]
Z. Lai, S. C. Cheung, and W. K. Chan, "Detecting atomic-set serializability violations in multithreaded programs through active randomized testing," in Proceedings of the 32Nd ACM/IEEE International Conference on Software Engineering - Volume 1, ser. ICSE '10. New York, NY, USA: ACM, 2010, pp. 235--244.
[27]
Y. Lei and R. Carver, "Reachability testing of concurrent programs," IEEE Transactions on Software Engineering, vol. 32, no. 6, pp. 382--403, Jun. 2006.
[28]
P. Liu and C. Zhang, "Axis: Automatically fixing atomicity violations through solving control constraints," in Proceedings of the 34th International Conference on Software Engineering, ser. ICSE '12. Piscataway, NJ, USA: IEEE Press, 2012, pp. 299--309.
[29]
S. Lu, S. Park, and Y. Zhou, "Finding atomicity-violation bugs through unserializable interleaving testing," IEEE Transactions on Software Engineering, vol. 38, no. 4, pp. 844--860, Jul. 2012.
[30]
V. Pankratius, F. Schmidt, and G. Garreton, "Combining functional and imperative programming for multicore software: An empirical study evaluating scala and java," Jun. 2012, pp. 123--133.
[31]
T. Sheng, N. Vachharajani, S. Eranian, R. Hundt, W. Chen, and W. Zheng, "RACEZ: A lightweight and non-invasive race detection tool for production applications," in Proceedings of the 33rd International Conference on Software Engineering, ser. ICSE '11. New York, NY, USA: ACM, 2011, pp. 401--410.
[32]
L. Wang and S. Stoller, "Runtime analysis of atomicity for multithreaded programs," IEEE Transactions on Software Engineering, vol. 32, no. 2, pp. 93--110, Feb. 2006.

Cited By

View all
  • (2016)A model for systematic monitoring and debugging of starvation bugs in multicore softwareProceedings of the 1st International Workshop on Specification, Comprehension, Testing, and Debugging of Concurrent Programs10.1145/2975954.2975958(7-11)Online publication date: 3-Sep-2016
  • (2015)A Survey on Testing for Cyber Physical SystemProceedings of the 27th IFIP WG 6.1 International Conference on Testing Software and Systems - Volume 944710.1007/978-3-319-25945-1_12(194-207)Online publication date: 23-Nov-2015

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
COUFLESS '15: Proceedings of the First International Workshop on Complex faUlts and Failures in LargE Software Systems
May 2015
87 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 16 May 2015

Check for updates

Qualifiers

  • Research-article

Conference

ICSE '15
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2016)A model for systematic monitoring and debugging of starvation bugs in multicore softwareProceedings of the 1st International Workshop on Specification, Comprehension, Testing, and Debugging of Concurrent Programs10.1145/2975954.2975958(7-11)Online publication date: 3-Sep-2016
  • (2015)A Survey on Testing for Cyber Physical SystemProceedings of the 27th IFIP WG 6.1 International Conference on Testing Software and Systems - Volume 944710.1007/978-3-319-25945-1_12(194-207)Online publication date: 23-Nov-2015

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