Abstract
The current approaches for regression test selection of embedded programs are usually based on data- and control-dependency analyses, often augmented with human reasoning. Existing techniques do not take into account additional execution dependencies which may exist among code elements in such programs due to features such as tasks, task deadlines, task precedences, and intertask communications. In this context, we propose a model-based regression test selection technique for such programs. Our technique first constructs a graph model of the program; the proposed graph model has been designed to capture several characteristics of embedded programs, such as task precedence order, priority, intertask communication, timers, exceptions and interrupt handlers, which we consider important for regression-test selection. Our regression test selection technique selects test cases based on an analysis of the constructed graph model. We have implemented our technique to realize a prototype tool. The experimental results obtained using this tool show that, on average, our approach selects about 28.33% more regression test cases than those selected by a traditional approach. We observed that, on average, 36.36% of the fault-revealing test cases were overlooked by the existing regression test selection technique.
- Aho, A., Sethi, R., and Ullman, J. 2008. Compilers: Principles, Techniques and Tools 2nd Ed. Dorling Kindersley (India) Pvt Ltd. Google Scholar
Digital Library
- Allen, M. and Horwitz, S. 2003. Slicing java programs that throw and catch exceptions. In Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'03). ACM, New York, NY, 44--54. Google Scholar
Digital Library
- Bates, S. and Horwitz, S. 1993. Incremental program testing using program dependence graphs. In Proceedings of the Conference Record of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, New York, NY, 384--396. Google Scholar
Digital Library
- Binkley, D. 1997. Semantics guided regression test cost reduction. IEEE Trans. Softw. Eng. 23, 8, 498--516. Google Scholar
Digital Library
- Biswas, S. 2011. Model-based regression test selection and optimization for embedded programs. M.S. thesis, Indian Institute of Technology, Kharagpur, India.Google Scholar
- Biswas, S., Mall, R., Satpathy, M., and Sukumaran, S. 2009. A model-based regression test selection approach for embedded applications. ACM SIGSOFT Softw. Eng. Notes 34, 4, 1--9. Google Scholar
Digital Library
- Biswas, S., Mall, R., Satpathy, M., and Sukumaran, S. 2011. Task dependency analysis for regression test selection of embedded programs. IEEE Embed. Syst. Lett. 3, 4, 117--120. Google Scholar
Digital Library
- Cartaxo, E., Machado, P., and Neto, F. 2011. On the use of a similarity function for test case selection in the context of model-based testing. Softw. Test. Verification Reliab. 21, 2, 75--100. Google Scholar
Digital Library
- Cleve, A., Henrard, J., and Hainaut, J. 2006. Data reverse engineering using system dependency graphs. In Proceedings of the 13th Working Conference on Reverse Engineering. IEEE Computer Society, Los Alamitos, CA, 157--166. Google Scholar
Digital Library
- Do, H., Mirarab, S., Tahvildari, L., and Rothermel, G. 2010. The effects of time constraints on test case prioritization: A series of controlled experiments. IEEE Trans. Softw. Eng. 36, 5, 593--617. Google Scholar
Digital Library
- Ferrante, J., Ottenstein, K., and Warren, J. 1987. The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst. 9, 3, 319--349. Google Scholar
Digital Library
- Guan, J., Offutt, J., and Ammann, P. 2006. An industrial case study of structural testing applied to safety-critical embedded software. In Proceedings of the ACM/IEEE International Symposium on Empirical Software Engineering. ACM, New York, NY, 272--277. Google Scholar
Digital Library
- Harrold, M., Jones, J., Li, T., Liang, D., Orso, A., Pennings, M., Sinha, S., Spoon, S. A., and Gujarathi, A. 2001. Regression test selection for java software. In Proceedings of the 16th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications. ACM, New York, NY, 312--326. Google Scholar
Digital Library
- Hatley, D. and Pirbhai, I. 1987. Strategies for Real-Time System Specification. Dorset House Publishing Company. Google Scholar
Digital Library
- Horwitz, S., Reps, T., and Binkley, D. 1990. Interprocedural slicing using dependence graphs. ACM Trans. Program. Lang. Syst. 12, 1, 26--61. Google Scholar
Digital Library
- Jiang, S., Zhou, S., Shi, Y., and Jiang, Y. 2006. Improving the preciseness of dependence analysis using exception analysis. In Proceedings of the 15th IEEE International Conference on Computing. IEEE Computer Society, Los Alamitos, CA, 277--282. Google Scholar
Digital Library
- Kapfhammer, G. 2004. The Computer Science Handbook 2nd Ed. CRC Press, Boca Raton, FL, (Chapter on Software Testing.)Google Scholar
- Knuth, D. 1974. Structured programming with go to statements. ACM Comput. Surv. 6, 4, 261--301. Google Scholar
Digital Library
- Kondoh, H. and Futatsugi, K. 2006. To use or not to use the goto statement: Programming styles viewed from Hoare Logic. Sci. Comput. Program. 60, 1, 82--116. Google Scholar
Digital Library
- Leung, H. and White, L. 1989. Insights into regression testing. In Proceedings of the Conference on Software Maintenance. 60--69.Google Scholar
- Liang, D. and Harrold, M. 1998. Slicing objects using system dependence graphs. In Proceedings of the International Conference on Software Maintenance. IEEE Computer Society, Los Alamitos, CA, 358--367. Google Scholar
Digital Library
- Mall, R. 2007. Real-Time Systems Theory and Practice 1st Ed. Pearson Education. Google Scholar
Digital Library
- Marwedel, P. 2007. Embedded System Design. Springer. Google Scholar
Digital Library
- Mathworks. 2011. MATLAB. http://www.mathworks.com.Google Scholar
- McConell, S. 2004. Code Complete: A Practical Handbook of Software Construction 2nd Ed. Microsoft Press.Google Scholar
- Netkow, M. and Brylow, D. 2010. Xest: An automated framework for regression testing of embedded software. In Proceedings of the Workshop on Embedded Systems Education (WESE'10). ACM, New York, NY, 7:1--7:8. Google Scholar
Digital Library
- Orso, A., Shi, N., and Harrold, M. 2004. Scaling regression testing to large software systems. In Proceedings of the 12th ACM SIGSOFT 12th International Symposium on Foundations of Software Engineering. ACM, New York, NY, 241--251. Google Scholar
Digital Library
- OSEK. 2001. OSEK/VDX time-triggered operating system specification 1.0. http://portal.osek-vdx.org.Google Scholar
- Romanovsky, A., Xu, J., and Randell, B. 1998. Exception handling in object-oriented real-time distributed systems. In Proceedings of the 1st IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'98). IEEE Computer Society, Los Alamitos, CA 32--42. Google Scholar
Digital Library
- Rothermel, G. and Harrold, M. 1996. Analyzing regression test selection techniques. IEEE Trans. Softw. Eng. 22, 8, 529--551. Google Scholar
Digital Library
- Rothermel, G. and Harrold, M. 1997. A safe, efficient regression test selection technique. ACM Trans. Softw. Eng. Methodol. 6, 2, 173--210. Google Scholar
Digital Library
- Sales, J. 2005. Symbian OS Internals: Real-Time Kernel Programming. John Wiley & Sons. Google Scholar
Digital Library
- Salewski, F. and Taylor, A. 2007. Fault handling in FPGAs and microcontrollers in safety-critical embedded applications: A comparative survey. In Proceedings of the ACM/IEEE International Symposium on Empirical Software Engineering (ISESE'06). 124--131. Google Scholar
Digital Library
- Sangiovanni-Vincentelli, A. and Natale, M. D. 2007. Embedded system design for automotive applications. IEEE Computer 40, 42--51. Google Scholar
Digital Library
- Schotland, T. and Petersen, P. 2011. Exception Handling in C without C++. http://www.on-time.com/ddj0011.htm.Google Scholar
- Seo, J., Ki, Y., Choi, B., and La, K. 2008. Which spot should I test for effective embedded software testing? In Proceedings of the 2nd International Conference on Secure System Integration and Reliability Improvement (SSIRI'08). IEEE Computer Society, Los Alamitos, CA, 135--142. Google Scholar
Digital Library
- Silberschatz, A., Galvin, P., and Gagne, G. 2010. Operating System Concepts 8th Ed. Wiley India Pvt Ltd. Google Scholar
Digital Library
- Sinha, S., Harrold, M., and Rothermel, G. 1999. System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow. In Proceedings of the 21st International Conference on Software Engineering. ACM, New York, NY, 432--441. Google Scholar
Digital Library
- Sinha, S. and Harrold, M. J. 1998. Analysis of programs with exception-handling constructs. In Proceedings of the International Conference on Software Maintenance (ICSM'98). IEEE Computer Society, 348. Google Scholar
Digital Library
- Sundmark, D., Pettersson, A., Eldh, S., Ekman, M., and Thane, H. 2007. Efficient system-level testing of embedded real-time software. In Proceedings of the Work in Progress Session of the 17th Eurmicro Conference on Real-Time System. 53--56.Google Scholar
- Vahid, F. and Givargis, T. 2002. Embedded System Design: A Unified Hardware/Software Introduction 1st Ed. John Wiley & Sons. Google Scholar
Digital Library
- Vokolos, F. and Frankl, P. 1997. Pythia: A regression test selection tool based on textual differencing. In Proceedings of the 3rd International Conference on Reliability, Quality & Safety of Software-Intensive Systems (ENCRESS'97). Chapman & Hall, Ltd., London, 3--21. Google Scholar
Digital Library
- Ward, P. and Mellor, S. 1991. Structured Development for Real-Time Systems. Prentice Hall Professional Technical Reference. Google Scholar
Digital Library
- Wind River Systems. 2010. Wind River VxWorks: Embedded RTOS with support for POSIX and SMP. http://www.windriver.com/products/vxworks/.Google Scholar
- Zheng, J., Robinson, B., Williams, L., and Smiley, K. 2006. Applying regression test selection for COTS-based applications. In Proceedings of the 28th International Conference on Software Engineering (ICSE'06). ACM, New York, NY, 512--522. Google Scholar
Digital Library
Index Terms
A regression test selection technique for embedded software
Recommendations
Empirical Studies of a Safe Regression Test Selection Technique
Regression testing is an expensive testing procedure utilized to validate modified software. Regression test selection techniques attempt to reduce the cost of regression testing by selecting a subset of a program's existing test suite. Safe regression ...
A heuristic-based regression test case prioritization approach for object-oriented programs
We propose a novel regression test case prioritization technique based on an analysis of a dependence model for object-oriented programs. We first construct an intermediate dependence model of a program from its source code. When the program is modified,...
Regression Test Selection of Manual System Tests in Practice
CSMR '11: Proceedings of the 2011 15th European Conference on Software Maintenance and ReengineeringRegression testing analyzes whether software maintenance has inadvertently broken existing functionality. Since it is costly–especially for manual testing–it is typically limited to a subset of test cases. Since impact analysis of code modifications on ...






Comments