TY - GEN
T1 - Guided test generation for finding worst-case stack usage in embedded systems
AU - Yu, Tingting
AU - Cohen, Myra B.
N1 - Publisher Copyright:
© 2015 IEEE.
PY - 2015/5/5
Y1 - 2015/5/5
N2 - Embedded systems are challenging to program correctly, because they use an interrupt programming paradigm and run in resource constrained environments. This leads to a class of faults for which we need customized verification techniques. One such class of faults, stack overflows, are caused when the combination of active methods and interrupt invocations on the stack grows too large, and these can lead to data loss and other significant device failures. Developers need to estimate the worst-case stack usage (WCSU) during system design, but determining the actual maximum value is known to be a hard problem. The state of the art for calculating WCSU uses static analysis, however this has a tendency to over approximate the potential stack which can lead to wasted resources. Dynamic techniques such as random testing often under approximate the WCSU. In this paper, we present SIMSTACK, a framework that utilizes a combination of static analysis and a genetic algorithm to search for WCSUs. We perform an empirical study to evaluate the effectiveness of SIMSTACK and show that SIMSTACK is competitive with the WCSU values obtained by static analysis, and improves significantly over a random algorithm. When we use only the genetic algorithm, SIMSTACK performs almost as well as the guided technique, but takes significantly longer to converge on the maximum WCSUs.
AB - Embedded systems are challenging to program correctly, because they use an interrupt programming paradigm and run in resource constrained environments. This leads to a class of faults for which we need customized verification techniques. One such class of faults, stack overflows, are caused when the combination of active methods and interrupt invocations on the stack grows too large, and these can lead to data loss and other significant device failures. Developers need to estimate the worst-case stack usage (WCSU) during system design, but determining the actual maximum value is known to be a hard problem. The state of the art for calculating WCSU uses static analysis, however this has a tendency to over approximate the potential stack which can lead to wasted resources. Dynamic techniques such as random testing often under approximate the WCSU. In this paper, we present SIMSTACK, a framework that utilizes a combination of static analysis and a genetic algorithm to search for WCSUs. We perform an empirical study to evaluate the effectiveness of SIMSTACK and show that SIMSTACK is competitive with the WCSU values obtained by static analysis, and improves significantly over a random algorithm. When we use only the genetic algorithm, SIMSTACK performs almost as well as the guided technique, but takes significantly longer to converge on the maximum WCSUs.
UR - http://www.scopus.com/inward/record.url?scp=84935099514&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84935099514&partnerID=8YFLogxK
U2 - 10.1109/ICST.2015.7102592
DO - 10.1109/ICST.2015.7102592
M3 - Conference contribution
AN - SCOPUS:84935099514
T3 - 2015 IEEE 8th International Conference on Software Testing, Verification and Validation, ICST 2015 - Proceedings
BT - 2015 IEEE 8th International Conference on Software Testing, Verification and Validation, ICST 2015 - Proceedings
T2 - 8th IEEE International Conference on Software Testing, Verification and Validation, ICST 2015
Y2 - 13 April 2015 through 17 April 2015
ER -