ATOM: a system for building customized program analysis tools
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
ACM SIGPLAN Notices
Performance analysis of embedded software using implicit path enumeration
DAC '95 Proceedings of the 32nd annual ACM/IEEE Design Automation Conference
Communications of the ACM
Efficient algorithms for bidirectional debugging
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Instruction-level reverse execution for debugging
Proceedings of the 2002 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Hi-index | 0.01 |
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.