CTGE: AN EFFECTIVE CONSTRAINT-BASED TEST-CASE GENERATION ALGORITHM FOR DETECTING REGRESSION BUGS IN EVOLVING PROGRAMS

Anh D. Le, Tho T. Quan, Nguyen T. Huynh, Phung H. Nguyen

2011

Abstract

In this paper, we investigate a kind of logic error occurring in evolving programs, known as regression bug. This error reflects a practical situation that when a program or software is evolved to meet with new requirements, it may accidentally violate the original requirements. Hence, the paper makes three theoretical contributions. First, we show that the test-case generated by typical white-box approach are not sufficient to cover all probable regression bugs. Next, we propose a new approach based on combined constraint to solve this problem. Finally, we introduce an ultimate CTGE (Efficient Constraint-based Test-cases Generation) algorithm whose complexity is reduced into linear time, thus becoming practical. The soundness of our theoretical contribution is formally proved and supported by some initial experiments conducted in education environment.

References

  1. Bjørner, N. and Moura, L. D. (2009). Z310: Applications, Enablers, Challenges and Directions. In Proceedings of Workshop on Constraints in Formal Verification.
  2. Bjørner, N. and Moura, L. D. (2009). Z310: Applications, Enablers, Challenges and Directions. In Proceedings of Workshop on Constraints in Formal Verification.
  3. Cadar, C., Dunbar, D. and Engler, D. R. (2008). Klee: Unassisted and automatic generation of high-coverage tests for complex systems programs. USENIX Symposium on Operating Systems Design and Implementations.
  4. Cadar, C., Dunbar, D. and Engler, D. R. (2008). Klee: Unassisted and automatic generation of high-coverage tests for complex systems programs. USENIX Symposium on Operating Systems Design and Implementations.
  5. Godefroid, P., Klarlund, N. and Sen, K. (2005). DART: Directed automated random testing. ACM Publisher, In Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, 40(6), 213-223. doi:10.1145/ 1065010.1065036
  6. Godefroid, P., Klarlund, N. and Sen, K. (2005). DART: Directed automated random testing. ACM Publisher, In Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, 40(6), 213-223. doi:10.1145/ 1065010.1065036
  7. Godefroid, P. (2007). Random testing for security: blackbox vs. whitebox fuzzing. ACM Publisher, In Proceedings of the 2nd international workshop on Random testing: co-located with the 22nd IEEE/ACM International Conference on Automated Software Engineering, 1-1. doi:10.1145/1292414.1292416
  8. Godefroid, P. (2007). Random testing for security: blackbox vs. whitebox fuzzing. ACM Publisher, In Proceedings of the 2nd international workshop on Random testing: co-located with the 22nd IEEE/ACM International Conference on Automated Software Engineering, 1-1. doi:10.1145/1292414.1292416
  9. Heumann, J. (2002). Generating Test Cases from Use Cases. Journal of Software Testing Professionals, 3(2).
  10. Heumann, J. (2002). Generating Test Cases from Use Cases. Journal of Software Testing Professionals, 3(2).
  11. Hutcheson, M. L. (2003). Software Testing FundamentalsMethods and Metrics, Wiley Publishing.
  12. Hutcheson, M. L. (2003). Software Testing FundamentalsMethods and Metrics, Wiley Publishing.
  13. King, J. C. (1976, July). Symbolic execution and program testing. Communications of the ACM, 19(7), 385-394. doi:10.1145/360248.360252
  14. King, J. C. (1976, July). Symbolic execution and program testing. Communications of the ACM, 19(7), 385-394. doi:10.1145/360248.360252
  15. Qi, D., Roychoudhury, A. and Liang, Z. (2010). Test generation to expose changes in evolving programs. ACM Publisher, In Proceedings of the IEEE/ACM international conference on Automated software engineering, 397-406. doi:10.1145/1858996.1859083
  16. Qi, D., Roychoudhury, A. and Liang, Z. (2010). Test generation to expose changes in evolving programs. ACM Publisher, In Proceedings of the IEEE/ACM international conference on Automated software engineering, 397-406. doi:10.1145/1858996.1859083
  17. Sen, K., Marinov, D. and Agha, G. (2005). CUTE: a concolic unit testing engine for C. ACM Publisher, In Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, 30(5), 263-272. doi:10.1145/1081706.1081750
  18. Sen, K., Marinov, D. and Agha, G. (2005). CUTE: a concolic unit testing engine for C. ACM Publisher, In Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, 30(5), 263-272. doi:10.1145/1081706.1081750
  19. Sen, K. and Agha, G. (2006). CUTE and jCUTE : Concolic Unit Testing and Explicit Path ModelChecking Tools. Springer-Verlag, Computer Aided Verification: In Proceedings of the 18th International Conference, 4144, 419-423. doi:10.1007/11817963_38
  20. Sen, K. and Agha, G. (2006). CUTE and jCUTE : Concolic Unit Testing and Explicit Path ModelChecking Tools. Springer-Verlag, Computer Aided Verification: In Proceedings of the 18th International Conference, 4144, 419-423. doi:10.1007/11817963_38
  21. Spillner, A., Linz, T. and Schaefer, H. (2006). Software Testing Foundations. California: Rocky Nook.
  22. Spillner, A., Linz, T. and Schaefer, H. (2006). Software Testing Foundations. California: Rocky Nook.
  23. Wang, T. and Roychoudhury, A. (2008). Dynamic slicing on java bytecode traces. ACM Publisher, ACM Transactions on Programming Languages and Systems, 30(2). doi:10.1145/1330017.1330021
  24. Wang, T. and Roychoudhury, A. (2008). Dynamic slicing on java bytecode traces. ACM Publisher, ACM Transactions on Programming Languages and Systems, 30(2). doi:10.1145/1330017.1330021
  25. Williams, N., Marre, B., Mouy, P. and Roger, M. (2005). PathCrawler: Automatic Generation of Path Tests by Combining Static and Dynamic Analysis. SpringerVerlag, Dependable Computing: In Proceedings of the 5th European Dependable Computing Conference, 3463, 281-292. doi:10.1007/11408901_21
  26. Williams, N., Marre, B., Mouy, P. and Roger, M. (2005). PathCrawler: Automatic Generation of Path Tests by Combining Static and Dynamic Analysis. SpringerVerlag, Dependable Computing: In Proceedings of the 5th European Dependable Computing Conference, 3463, 281-292. doi:10.1007/11408901_21
Download


Paper Citation


in Harvard Style

Le A., Quan T., Huynh N. and Nguyen P. (2011). CTGE: AN EFFECTIVE CONSTRAINT-BASED TEST-CASE GENERATION ALGORITHM FOR DETECTING REGRESSION BUGS IN EVOLVING PROGRAMS . In Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT, ISBN 978-989-8425-77-5, pages 36-43. DOI: 10.5220/0003501400360043


in Harvard Style

Le A., Quan T., Huynh N. and Nguyen P. (2011). CTGE: AN EFFECTIVE CONSTRAINT-BASED TEST-CASE GENERATION ALGORITHM FOR DETECTING REGRESSION BUGS IN EVOLVING PROGRAMS . In Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT, ISBN 978-989-8425-77-5, pages 36-43. DOI: 10.5220/0003501400360043


in Bibtex Style

@conference{icsoft11,
author={Anh D. Le and Tho T. Quan and Nguyen T. Huynh and Phung H. Nguyen},
title={CTGE: AN EFFECTIVE CONSTRAINT-BASED TEST-CASE GENERATION ALGORITHM FOR DETECTING REGRESSION BUGS IN EVOLVING PROGRAMS},
booktitle={Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,},
year={2011},
pages={36-43},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0003501400360043},
isbn={978-989-8425-77-5},
}


in Bibtex Style

@conference{icsoft11,
author={Anh D. Le and Tho T. Quan and Nguyen T. Huynh and Phung H. Nguyen},
title={CTGE: AN EFFECTIVE CONSTRAINT-BASED TEST-CASE GENERATION ALGORITHM FOR DETECTING REGRESSION BUGS IN EVOLVING PROGRAMS},
booktitle={Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,},
year={2011},
pages={36-43},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0003501400360043},
isbn={978-989-8425-77-5},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,
TI - CTGE: AN EFFECTIVE CONSTRAINT-BASED TEST-CASE GENERATION ALGORITHM FOR DETECTING REGRESSION BUGS IN EVOLVING PROGRAMS
SN - 978-989-8425-77-5
AU - Le A.
AU - Quan T.
AU - Huynh N.
AU - Nguyen P.
PY - 2011
SP - 36
EP - 43
DO - 10.5220/0003501400360043


in EndNote Style

TY - CONF
JO - Proceedings of the 6th International Conference on Software and Database Technologies - Volume 2: ICSOFT,
TI - CTGE: AN EFFECTIVE CONSTRAINT-BASED TEST-CASE GENERATION ALGORITHM FOR DETECTING REGRESSION BUGS IN EVOLVING PROGRAMS
SN - 978-989-8425-77-5
AU - Le A.
AU - Quan T.
AU - Huynh N.
AU - Nguyen P.
PY - 2011
SP - 36
EP - 43
DO - 10.5220/0003501400360043