Abstract
Regression testing is to check whether a new software version fails to preserve specification properties that its previous versions have preserved. It is needed when new version has been filed for fixing a previously reported bug. We present artificial intelligence (AI) techniques to enhance the accuracy of test selection in such a setting. The core technique of our regression testing is an adaptive fitness function that learns how to select test cases based on their similarity to the bug-revealing test cases. The evaluation of similarity between two test cases is in turn based on feature variables extracted with the LCS (longest common subsequences) algorithm. We implemented our techniques with a symbolic simulator of the models of the software under test. We also show how to take the capabilities of the simulator into consideration to learn for better testing performance. Experiment report shows the potentials of applying AI techniques to software verification.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bäck, T., Schwefel, H.-P.: An overview of evolutionary algorithms for parameter optimization. Evolutionary computation 1(1), 1–24 (1993)
Baresi, L., Young, M.: Test oracles. Technical Report CIS-TR-01-02, University of Oregon, Dept. of Computer and Information Science, Eugene, Oregon, U.S.A (August 2001), http://www.cs.uoregon.edu/~michal/pubs/oracles.html
Beizer, B.: Software Testing Techniques, 2nd edn. Van Nostrand Reinhold, New York (1990)
Burch, J., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.: Symbolic model checking: 1020 states and beyond. In: IEEE LICS 1990 (1990)
Cormen, T., Leiserson, C., Rivest, R., Stein, C.: Introduction to Algorithms, 2nd edn. MIT Press and McGraw-Hill (2001)
Fraser, G., Wotawa, F., Ammann, P.E.: Testing with model checkers: a survey. Software Testing, Verification and Reliability 19(3), V215–V261 (2009)
Godefroid, P.: Model checking for programming languages using verisoft. In: 24th ACM Symposium on Principles of Programming Languages (POPL), pp. 174–186 (1997)
Guyon, I., Elisseeff, A.: An introduction to variable and feature selection. Journal of Machine Learning Research 3, 1157–1182 (2003)
Kaner, C., Falk, J., Nguyen, H.Q.: Testing Computer Software, 2nd edn. John Wiley (1999)
Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992)
Last, M., Kandel, A., Bunke, H.: Artificial intelligence methods in software testing. Machine Perception Artificial Intelligence, vol. 56. World Scientific Pub. (2004)
Lewis, D.D., Shapire, R.E., Callan, J.P., Rapka, R.: raining algorithm for linear text classifiers. In: 19th Annual International ACM SIGIR Conference on Research and Development in Information Retrival, pp. 298–306. ACM (1996)
Maier, D.: The complexity of some problems on subsequences and supersequences. Journal of ACM 25(2), 322–336 (1978)
Miller, D.: Multiple-valued logic design tools, invited address. In: Proceedings of the 23rd International Symposium on Multiple-Valued Logic, pp. 2–11 (1993)
Mitchell, T.: Machine Learning. McGraw-Hill (1997)
Nilsson, N.: Artificial Intelligence: A New Synthesis. Morgan Kaufmann (1998)
Quinlan, J.R.: C4.5: Programs for machine learning. Morgan Kaufmann (1993)
Rocchio, J.J.: The SMART retrieval system: Experiments in automatic document processing. Prentice-Hall (1971)
Rothermel, G., Untch, R., Chu, C., Harrold, M.J.: Prioritizing test cases for regression testing. IEEE Trans. on Software Eng. 27(10), 929–948 (2001)
Schach, S.: Software engineering, 7th edn. McGraw Hill (1992)
Srikanth, H.: Requirements-based test case prioritization. In: Student Research Forum in 12th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (2004)
Wang, F.: Efficient Verification of Timed Automata with BDD-like Data-Structures. In: Zuck, L.D., Attie, P.C., Cortesi, A., Mukhopadhyay, S. (eds.) VMCAI 2003. LNCS, vol. 2575, pp. 189–205. Springer, Heidelberg (2002)
Weyuker, E.J.: The evaluation of program-based software test data adequacy criteria. Comm. ACM 31, 668–675 (1988)
Widrow, B., Stearns, S.: Adaptive Signal Processing. Prentice-Hall (1985)
Xie, T., Notkin, D.: Checking inside the black box: Regression testing based on value spectra differences. In: 20th IEEE International Conference on Software Maintenance, ICSM 2004 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Wang, F., Wu, C.J., Lee, YC., Yao, L.W. (2011). Regression Testing of Bug-Fixes with AI Techniques. In: Wang, Y., Li, T. (eds) Practical Applications of Intelligent Systems. Advances in Intelligent and Soft Computing, vol 124. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25658-5_43
Download citation
DOI: https://doi.org/10.1007/978-3-642-25658-5_43
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-25657-8
Online ISBN: 978-3-642-25658-5
eBook Packages: EngineeringEngineering (R0)