DynaTest and beyond: From dynamic testing to automated error-prevention and error-detection

  • Authors:
  • David C. Pheanis;John A. Jackson;Lance G. Johnson

  • Affiliations:
  • (Corresponding author. E-mail: David.Pheanis@asu.edu) Computer Science and Engineering, Ira A. Fulton School of Engineering, Arizona State University, Tempe, Arizona 85287-8809, USA;Computer Science and Engineering, Ira A. Fulton School of Engineering, Arizona State University, Tempe, Arizona 85287-8809, USA;Computer Science and Engineering, Ira A. Fulton School of Engineering, Arizona State University, Tempe, Arizona 85287-8809, USA

  • Venue:
  • Journal of Computational Methods in Sciences and Engineering - Selected papers from the International Conference on Computer Science,Software Engineering, Information Technology, e-Business, and Applications, 2003
  • Year:
  • 2005

Quantified Score

Hi-index 0.01

Visualization

Abstract

DynaTest, which stands for Dynamic Tester, is a macro-language software-testing and validation system that verifies programs, subroutines, and interrupt-handler routines written in assembly language. A scriptwriter writes a DynaTest test driver in a test-script language that specifically supports the development of test scripts. DynaTest uses comparative analysis of a combination of automatically generated pseudo-random test cases and handpicked test cases against a known, working solution. The current version of DynaTest executes on specific hardware platforms. The documented results speak for themselves. Using DynaTest has improved error detection tremendously while dramatically decreasing test-preparation time. Unfortunately, no matter how impressive DynaTest is, it always faces the limited-resource constraints of small microprocessors in embedded systems. With the ever-increasing performance of today's personal computers, a simulated embedded-processor environment opens the way for numerous possible error-prevention and error-detection tools. By wrapping these tools around a simulated embedded-processor environment, we can completely control and analyze the execution phase of a software system. Many tools for high-level languages work by incorporating themselves into the target program, affecting the memory layout and timing of the code. With our tools, we do not modify the target program, and the simulated environment keeps the timing and the memory map unchanged.