Seattle, Washington
June 14, 2015
June 14, 2015
June 17, 2015
978-0-692-50180-1
2153-5965
Software Engineering Constituent Committee Technical Session 2
Software Engineering Constituent Committee
Diversity
13
26.42.1 - 26.42.13
10.18260/p.23383
https://peer.asee.org/23383
638
Dr. Weifeng Xu is an associate professor in the department of computer science at Bowie State University. He received his B.S. and M.S. degrees in Computer Science from Southeast Missouri State University and Towson University at Maryland, respectively. He also received his Ph.D. in Software Engineering from North Dakota State University. His current research efforts focus on search-based software engineering, mining software engineering data, and software testing. He is a senior member of the IEEE.
Aqeel Raza Syed obtained his master’s degree from the department of Computer and Information Sciences, Gannon University in 2013. He is currently working as a software engineer at AT&T labs.
Qing Zheng received the M. Eng. degree from the National University of Singapore in 2003 and the D. Eng. degree from the Cleveland State University in 2009, both in electrical engineering. She is currently an assistant professor in the Electrical and Computer Engineering Department at Gannon University. Her research interests include active disturbance rejection control, multivariable control and optimization with emphasis on their applications in biomedical systems, power systems, MEMS, fuel cell, cargo ship steering, chemical processes, and other real industrial problems.
A Force-Directed Program Graph Visualizer for Teaching White-Box Testing TechniquesAbstractSoftware engineering, as an emerging discipline, has been distinguished from computer science.There are 22 ABET and 105 Department of Education's recognized institutes in U.S offering abachelor degree program in software engineering. In addition to the traditional needs of prepar-ing graduates to analyze, design and implement systems, both organizations indicate that soft-ware engineering curriculum must prepare graduates to validate software systems.White-box testing is a critical validation technique that software engineers can use to examine iftheir code works as expected. White-box testing requires students generating test paths for a giv-en test criterion. However, students taking software testing related courses often find that study-ing and exercising white-box testing techniques is tedious and error prone due to the nature ofthe testing process. The testing process for white-box testing usually consists of three key activi-ties: (1) convert source code to a program graph, (2) generate paths for a given test criterion, e.g.,decision coverage, and (3) verify the correctness of generated paths and the total number of pathsgenerated. It is hard for students to derive and verify correct paths from unit under testing manu-ally based on a variety of test coverages.In this paper, we demonstrate an automated testing visualization tool to help software engineer-ing students to study and exercise white-box testing techniques. The teaching tool has three keycomponents: (1) a program graph generator: it automatically generates program graphs from Javasource code, (2) a path finder: it finds all paths based on test coverages, and (3) a program graphvisualizer: it automatically displays program graphs and test paths.Developing such an automated testing tool is a challenging task. Two critical issues need to betaken into consideration: (1) how to handle compound conditions. Compound condition consistsof multiple simple conditions, e.g., (a>b) && (b>c) contains two simple predicates a>b and b>c.Compound conditions need to be recognized automatically so that different paths can be derivedfrom program graph based on decision, condition and multi-condition coverages and (2) how tovisualize program graphs. It is essentially a graph auto-layout problem, which computes the posi-tion of each node and edge of a program graph. However, current graph auto-layout algorithmsdo not distinguish source and sink nodes of program graph from rest of nodes.To address these issues, we use Java byte code to represent the Java source code so that a com-pound condition can be decomposed to several simple predicates. In addition, we extend a force-directed graph auto-layout algorithm to compute the positions of source and sink nodes. We suc-cessfully implement a teaching tool based on our approach. We demonstrate our tool using sev-eral legacy programs, including Triangle program, Commission program, etc. The demo video isavailable https://www.youtube.com/watch?v=Ey4JfVhhHQg
Xu, W., & Syed, A. R., & ZHENG, Q. (2015, June), A Force-Directed Program Graph Visualizer for Teaching White-Box Testing Techniques Paper presented at 2015 ASEE Annual Conference & Exposition, Seattle, Washington. 10.18260/p.23383
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2015 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015