Abstract
Software regression is a bug that makes software stop functioning normally after a certain event. In this paper, we investigate detecting regression when software evolves to a new version. In this context, regression bugs occur in parts of software that already passed testing process in the old version. Hence, such kind of bugs is difficult to be discovered if normal strategy like white-box testing is applied. Moreover, since both old and new versions must be taken into account during the testing process, the computational cost is usually high in this con-text.
Concolic testing in an emerging extension of white-box testing that can reduce significantly the number of execution paths needed to be analyzed. However, the typical concolic testing is not really efficient when dealing with software regression. Thus, we propose a new approach based on combined constraint to solve this problem, known as CTGE (Efficient Constraint-based Test-cases Generation) approach. The soundness of our theoretical contribution is formally proved and supported by some initial experiments conducted in education environment.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Beckman, N.E., Nori, A.V., Rajamani, S.K., Simmons, R.J., Tetali, S.D., Thakur, A.V.: Proofs from Tests. IEEE Transactions on Software Engineering (2012)
Bjørner, N., Moura, L.D.: Z310: Applications, Enablers, Challenges and Directions. In: Proceedings of Workshop on Constraints in Formal Verification (2009)
Cadar, C., Dunbar, D., Engler, D.R.: Klee: Unassisted and automatic generation of high-coverage tests for complex systems programs. In: USENIX Symposium on Operating Systems Design and Implementations (2008)
Godefroid, P., Klarlund, N., Sen, K.: DART: Directed automated random testing. In: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, vol. 40(6), pp. 213–223. ACM (2005), doi:10.1145/1065010.1065036
Godefroid, P.: Random testing for security: blackbox vs. whitebox fuzzing. In: Proceedings of the 2nd International Workshop on Random Testing: Co-located with the 22nd IEEE/ACM International Conference on Automated Software Engineering, p. 1. ACM (2007), doi:10.1145/1292414.1292416
Hutcheson, M.L.: Software Testing Fundamentals-Methods and Metrics. Wiley Publishing (2003)
King, J.C.: Symbolic execution and program testing. Communications of the ACM 19(7), 385–394 (1976), doi:10.1145/360248.360252
Morasca, S., Taibi, D., Tosi, D.: T-DOC: A Tool for the Automatic Generation of Testing Documentation for OSS Products. In: Ågerfalk, P., Boldyreff, C., González-Barahona, J.M., Madey, G.R., Noll, J. (eds.) OSS 2010. IFIP AICT, vol. 319, pp. 200–213. Springer, Heidelberg (2010)
Orso, A., Harrold, M.J., Rosenblum, D., Rothermel, G., Soffa, M.L., Do, H.: Using component metacontent to support the regression testing of component-based software. In: Proceedings of IEEE International Conference on Software Maintenance (2001)
Pressman, R.: Software Engineering: A Practitioner’s Approach. McGraw Hill, Boston (2001)
Qi, D., Roychoudhury, A., Liang, Z.: Test generation to expose changes in evolving programs. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, pp. 397–406. ACM (2010), doi:10.1145/1858996.1859083
Sen, K., Marinov, D., Agha, G.: CUTE: a concolic unit testing engine for C. In: Proceedings of the 10th European Software Engineering Conference Held Jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, vol. 30(5), pp. 263–272. ACM (2005), doi:10.1145/1081706.1081750
Sen, K., Agha, G.: CUTE and jCUTE: Concolic Unit Testing and Explicit Path Model-Checking Tools. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 419–423. Springer, Heidelberg (2006)
Spillner, A., Linz, T., Schaefer, H.: Software Testing Foundations. Rocky Nook, California (2006)
Wang, T., Roychoudhury, A.: Dynamic slicing on java bytecode traces. ACM Transactions on Programming Languages and Systems 30(2) (2008), doi:10.1145/1330017.1330021
Williams, N., Marre, B., Mouy, P., Roger, M.: PathCrawler: Automatic Generation of Path Tests by Combining Static and Dynamic Analysis. In: Dal Cin, M., Kaâniche, M., Pataricza, A. (eds.) EDCC 2005. LNCS, vol. 3463, pp. 281–292. Springer, Heidelberg (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Le, A.D., Quan, T.T., Huynh, N.T., Nguyen, P.H., Le, NV. (2013). Combined Constraint-Based Analysis for Efficient Software Regression Detection in Evolving Programs. In: Escalona, M.J., Cordeiro, J., Shishkov, B. (eds) Software and Data Technologies. ICSOFT 2011. Communications in Computer and Information Science, vol 303. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36177-7_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-36177-7_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-36176-0
Online ISBN: 978-3-642-36177-7
eBook Packages: Computer ScienceComputer Science (R0)