A Pattern Language for Software Debugging
Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 33122
A Pattern Language for Software Debugging

Authors: Mehdi Amoui, Mohammad Zarafshan, Caro Lucas

Abstract:

In spite of all advancement in software testing, debugging remains a labor-intensive, manual, time consuming, and error prone process. A candidate solution to enhance debugging process is to fuse it with testing process. To achieve this integration, a possible solution may be categorizing common software tests and errors followed by the effort on fixing the errors through general solutions for each test/error pair. Our approach to address this issue is based on Christopher Alexander-s pattern and pattern language concepts. The patterns in this language are grouped into three major sections and connect the three concepts of test, error, and debug. These patterns and their hierarchical relationship shape a pattern language that introduces a solution to solve software errors in a known testing context. Finally, we will introduce our developed framework ADE as a sample implementation to support a pattern of proposed language, which aims to automate the whole process of evolving software design via evolutionary methods.

Keywords: Coding Errors, Software debugging, Testing, Patterns, Pattern Language

Digital Object Identifier (DOI): doi.org/10.5281/zenodo.1331119

Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 1415

References:


[1] Brooks, F.P., Jr., "The Mythical Man-Month: Essays on Software Engineering," Anniversary Edition, Reading, MA: Addison-Wesley Pub., 1995.
[2] Miller, E.F., Jr., "Program testing: guest editor-s introduction," IEEE Computer, vol. 11 no. 4, April 1978, pp. 10-12.
[3] Lieberman, H., "The debugging scandal and what to do about it," Communications of the ACM, vol. 40 no. 4, April 1997, pp. 26-29.
[4] Eisenstadt, M., "My hairiest bug war stories," Communications of the ACM, vol. 40 no. 4, April 1997, pp. 30-37.
[5] Dick S. H., "Computational Intelligence in Software Quality Assurance," PhD Thesis, Department of Computer Science and Engineering, College of Engineering, University of South Florida, 2002.
[6] Grindal, M.; Offutt, J.; Andler, SF., "Combination testing strategies: a survey," Software Testing, Verification and Reliability, vol 15 no. 3, 2005, pp. 167-199.
[7] Weyuker, E. J.; Weiss, S. N.; and Hamlet, D., "Comparison of program testing strategies," In Proceedings Fourth Symposium on Software Testing, Analysis, and Verification, ACM Press, Oct. 1991, pp. 1-10.
[8] Tonella, P., "Evolutionary testing of classes," in Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis, Boston, MA, July 2004, pp. 119-128.
[9] McMinn, P., "Search-based software test data generation: A survey," Journal of Software Testing, Verification and Reliability, vol. 14 no. 2, June 2004, pp. 105-156.
[10] Christopher Alexander et al., "A Pattern Language," Oxford University Press, New York, 1977.
[11] Coplien, J., "Software Patterns," SIGS books, 1996.
[12] Christopher Alexander, "The Timeless Way of Building," Oxford University Press, New York, 1979.
[13] Friedman, M.A.; Voas, J.M., "Software Assessment: Reliability, Safety, Testability," New York: John Wiley & Sons, Inc., 1995.
[14] Peters, J.F.; Pedrycz, W., "Software Engineering: An Engineering Approach," New York: John Wiley & Sons, 2000.
[15] Saraph, P.; Kandel, A., "Test Case Generation and Reduction by Automated Input-Output Analysis," IEEE, 2003
[16] TogetherSoft, TogetherSoft Home Page, http://www.borland.com/together/index.html
[17] Gray, J.; Bapty, T.; Neema, S.; and Tuck, J., "Handling Crosscutting Constraints In Domain Specific," Modeling, CACM, Vol. 44 no. 10, 2001.
[18] Stankovic, J. A.; Zhu, R.; Poornalingam, R.; Lu, C.; Yu, Z.; Humphrey, M.; and Ellis, B., "Vest: an aspect-based composition tool for real-time systems," in Proceedings of the IEEE Real-Time and Embedded Technology and Applications Symposium, 2003, pp. 58-69.
[19] Duran, J.W.; Wiorkowski, J.J., "Quantifying software validity by sampling," IEEE Transactions on Reliability, vol. 29 no. 2, June 1980, pp. 141-144.
[20] De Almeida, M.A.; Lounis, H.; Melo, W.L., "An investigation on the use of machine learned models for estimating software correctability," International Journal of Software Engineering and Knowledge Engineering, vol. 9 no. 5, 1999, pp. 565-593.
[21] Ebert, C.; Baisch, E., "Knowledge-based techniques for software quality management," in W. Pedrycz, W.; Peters, J.F., Eds., Computational Intelligence in Software Engineering, River Edge, NJ: World Scientific, 1998, pp. 295-320.
[22] Sedigh-Ali, S.; Ghafoor, A.; Paul, R.A., "Software engineering metrics for COTS-based systems," IEEE Computer, vol. 35 no. 5, May 2001, pp. 44-50.
[23] Brown, N., "Industrial-strength management strategies," IEEE Software, vol. 13 no. 4, July 1996, pp. 94-103.
[24] Tokuda, L., "Evolving Object-Oriented Designs with Refactorings," Ph.D. thesis, University of Texas at Austin, 1999.
[25] McMinn, P., "Improving Evolutionary Testing in the Presence of State Behavior," Ph.D thesis, University of Sheffield, 2002.
[26] Agustin, J. M., "Improving software quality through extreme coverage with JBlanket," M.S. Thesis CSDL-02-06, Department of Information and Computer Sciences, University of Hawaii, Honolulu, 2003.
[27] B. Korel, A. M. Al-Yami, "Assertion-oriented automated test data generation," In Proceedings of the 18th International Conference on Software Engineering (ICSE), 1996, pp. 71-80
[28] G. Meszaros, J. Doble, "A Pattern Language for Pattern Writing,",