This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Structural Testing of Concurrent Programs
March 1992 (vol. 18 no. 3)
pp. 206-215

Although structural testing techniques are among the weakest available with regard to developing confidence in sequential programs, they are not without merit. The authors extend the notion of structural testing criteria to concurrent programs and propose a hierarchy of supporting structural testing techniques. Coverage criteria described include concurrency state coverage, state transition coverage and synchronization coverage. Requisite support tools include a static concurrency analyzer and either a program transformation system or a powerful run-time monitor. Also helpful is a controllable run-time scheduler. The techniques proposed are suitable for Ada or CSP-like languages. Best results are obtained for programs having only static naming of tasking objects.

[1] R. N. Taylor and C. D. Kelly, "Structural testing of concurrent programs," inProc. Workshop on Software Test. (Banff, AB, Canada), July 1986, pp. 164-169.
[2] W.R. Adrion, M.A. Brandstad, and J.C. Cherniavsky, "Validation, verification, and testing of computer software,"Computing Surveys, vol. 14, no. 2, pp. 159-191, June 1982.
[3] W. E. Howden, "A survey of dynamic analysis methods," inTutorial: Software Testing and Validation Techniques, 2nd ed., E. Miller and W. Howden, Eds. Los Alamitos, CA: IEEE Computer Soc. Press, 1981, pp. 209-231.
[4] L. A. Clarke, A. Podgurski, D. J. Richardson, and S. J. Zeil, "A comparison of data flow path selection criteria," inProc. 8th Inf. Conf. Sofware Eng.(London UK), Aug. 1985. Los Alamitos, CA: IEEE Computer Soc., 1985, pp. 244-251.
[5] E. J. Weyuker, "The cost of data flow testing: an empirical study,"IEEE Trans. Software Eng., vol. 16, pp. 121-128, Feb. 1990.
[6] L. A. Clarke, D. J. Richardson, and S. J. Zeil, "TEAM: a support environment for testing, evaluation, and analysis," inProc. ACM SIGSOFT '88: 3rd Symp. on Software Development Environ., Nov. 1988, pp. 153-162.
[7] K. R. Apt, "A static analysis of CSP programs," inProc. Workshop on Program Logic(Pittsburgh, PA), June 1983.
[8] R. N. Taylor, "A general purpose algorithm for analyzing concurrent programs,"Commun. ACM, vol. 26, no. 5, pp. 362-376, May 1983.
[9] S. M. German, D. P. Helmbold, and D. C. Luckham, "Monitoring for deadlocks in Ada tasking," inProc. AdaTEC Conf. on Ada(Arlington, VA), pp. 10-25, Oct. 1982.
[10] J. L. Peterson, "Petri nets,"ACM Comput. Surveys, vol. 9, no. 3, pp. 223-252, Sept. 1977.
[11] M. Young, R. N. Taylor, K. Forester, and D. Brodbeck, "Integrated concurrency analysis in a software development environment," inProc. ACM SIGSOFT '89 3rd Symp. on Software Testing, Analysis and Verification, R. A. Kemmerer, Ed., pp. 200-209 (also published inSoftware Eng. Notes, vol. 14, no. 8).
[12] R. K. Keller, M. Cameron, R. N. Taylor, and D. B. Troup, "User interface development and software environments: the Chiron-1 system," inProc. 13th Int. Conf. on Software Eng.(Austin, TX), May 1991, pp. 208-218.
[13] D. L. Long and L. A. Clarke, "Task interaction graphs for concurrency analysis," inProc. 11th Int. Conf. on Software Eng.(Pittsburgh, PA), May 1989.
[14] G. K. Wampler, "Static concurrency analysis of Ada programs," Master's thesis, Univ. California, Irvine, 1985.
[15] D. S. Rosenblum, "A methodology for the design of Ada transformation tools in a DIANA environment,"IEEE Software, vol. 2, pp. 24-33, Mar. 1985.
[16] J. Gait, "A probe effect in concurrent programs,"Software-Practice and Experience, vol. 16, no. 3, pp. 225-233, Mar. 1986.
[17] R. N. Taylor, "Analysis of concurrent software by cooperative application of static and dynamic techniques," inSoftware Validation, H. L. Hausen, Ed. Amsterdam: Elsevier Science, 1984, pp. 127-137.
[18] L. A. Clarke, "A system to generate test data and symbolically execute programs,"IEEE Trans. Software Eng., vol. SE-2, pp. 215-222, Sept. 1976.
[19] W. E. Howden, "Symbolic testing and the DISSECT symbolic evaluation system,"IEEE Trans. Software Eng., vol. SE-3, pp. 266-278, July 1977.
[20] A. F. Brindle, R. N. Taylor, and D. F. Martin, "A debugger for Ada tasking,"IEEE Trans. Software Eng., vol. 15, pp. 293-304, Mar. 1989.
[21] K. C. Tai, R. H. Carver, and E. E. Obaid, "Debugging concurrent Ada programs by deterministic execution,"IEEE Trans. Software Eng., vol. 17, pp. 45-63, Jan. 1991.
[22] T. J. LeBlanc and J. M. Meller-Crummey, "Debugging parallel programs with instant replay,"IEEE Trans. Comput., vol. C-36, no. 4, pp. 471-482, Apr. 1987.
[23] S. N. Weiss, "A formal framework for the study of concurrent program testing," inProc. 2nd Workshop on Software Test., Analysis, and Verification(Banff, AB, Can.), July 1988, pp. 106-113.
[24] S. Morasca and M. Pezzè, "Using high-level Petri nets for testing concurrent and real-time systems," inReal-Time Systems: Theory and Applications. New York: Elsevier Science, 1990, pp. 119-131.
[25] W. J. Yeh and M. Young, "Compositional reachability analysis using process algebra," inProc. Symp. on Software Test., Analysis, and Verification (TAV4), (Victoria, BC, Can.), Oct. 1991, pp. 49-59.
[26] R.N. Taylor, R. W. Selby, M. Young, F. C. BeIz, L. A. Clarke, J. C. Wileden, L. Osterweil, and A. L. Wolf, "Foundations for the Arcadia environment architecture," inACM SIGSOFT '88: Third Symp. Software Development Environments, Boston, MA, Nov. 1988, pp. 1-13; see alsoSIGSOFT Software Eng. Notes, vol. 13, no. 5, Nov. 1988; see alsoSIGPLAN Notices, vol. 24, no. 2, Feb. 1989.

Index Terms:
structural testing techniques; sequential programs; structural testing criteria; concurrent programs; concurrency state coverage; state transition coverage; synchronization coverage; support tools; static concurrency analyzer; program transformation system; powerful run-time monitor; controllable run-time scheduler; Ada; CSP-like languages; static naming; tasking objects; concurrency control; parallel programming; program testing; scheduling; software metrics
Citation:
R.N. Taylor, D.L. Levine, C.D. Kelly, "Structural Testing of Concurrent Programs," IEEE Transactions on Software Engineering, vol. 18, no. 3, pp. 206-215, March 1992, doi:10.1109/32.126769
Usage of this product signifies your acceptance of the Terms of Use.