Test Generation: A Heuristic Approach

  • O. Goloubeva
  • M. Sonza Reorda
  • M. Violante
Part of the Springer Series in Advanced Microelectronics book series (MICROELECTR., volume 17)

4.1 Abstract

The adoption of the System-on-Chip design paradigm creates new challenges for designers and test engineers. In this chapter a high-level test generation approach is presented, which is able to produce high-quality vectors that can be fruitfully exploited for test and validation purposes of both the hardware and software components of System-on-Chip designs. Experimental results are reported showing that our high-level test generation algorithm produces high-quality vectors in terms of stuck-at fault coverage for hardware components and code mutants for software components. The vectors produced can also be exploited for validation purposes, as the results gathered while validating a processor core suggest.


Test Generation Processor Core Test Vector Input Stimulus Symbolic Execution 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Beizer B (1990) Software testing techniques. Van Nostrand Rheinold, New YorkGoogle Scholar
  2. [2]
    Boué J, Pétillon P, Crouzer Y (1998) MEFISTO-L: a VHDL-based fault injection tool for the experimental assessment of fault tolerance. In: Int’l Symposium on Fault Tolerant Computing, 168–173Google Scholar
  3. [3]
    Chiusano S, Corno F, Prinetto P (1999) Exploiting behavioral information in gate level ATPG. The Journal of Electronic Testing: Theory and Applications, Kluwer Academic Publishers, (14): 141–148Google Scholar
  4. [4]
    Corno F, Sonza Reorda M, Squillero G, Violante M (2001) On the test of microprocessor IP cores, In: IEEE Design, Automation & Test in Europe, 209–213Google Scholar
  5. [5]
    Corno F, Cumani G, Sonza Reorda M, Squillero G (2003) Fully automatic test program generation for microprocessor cores. In: IEEE Design, Automation & Test in Europe, 1006–1011Google Scholar
  6. [6]
    Corno F, Sonza Reorda M, Squillero G (2000) High level observability for effective high level ATPG. In: 18th IEEE VLSI Test Symposium, 411–416Google Scholar
  7. [7]
    Coward PD (1990) Symbolic execution and testing. In: IEE Colloquium on Software Testing for Critical Systems, 2/1–2/3Google Scholar
  8. [8]
    DeMillo RA, Guindi DS, McCracken WM, Offutt AJ, King KN (1988) An extended overview of the Mothra software testing environment. In: IEEE Workshop on Software Testing, Verification, and Analysis, 142–151Google Scholar
  9. [9]
    Edwards S, Lavagno L, Lee EA, Sangiovanni Vincentelli A (1997) Design of embedded systems: formal models, validation, and synthesis. Proceedings of IEEE, 85(3): 366–390CrossRefGoogle Scholar
  10. [10]
    Fallah F, Ashar P, Devadas S (1999) Simulation vector generation from HDL descriptions for observability-enhanced statement coverage. In: Design Automation Conference, 666–671Google Scholar
  11. [11]
    Ferrandi F, Fummi F, Sciuto D (1998) Implicit test generation for behavioral VHDL Models. In: IEEE Int’l Test Conference, 587–596Google Scholar
  12. [12]
    Ferrandi F, Fummi F, Sciuto D (2002) Test generation and testability alternatives exploration of critical algorithms for embedded applications. IEEE Transactions on Computers, 51(2): 200–215CrossRefGoogle Scholar
  13. [13]
    Harman NA, Verifying a simple pipelined microprocessor using MAUDE, In: Lecture Notes in Computer Science, 2001, vol. 2267, 128–142zbMATHGoogle Scholar
  14. [14]
    Howden WE (1976) Reliability of the path analysis testing strategy. IEEE Transactions on Software Engineering, 2(3): 208–215zbMATHMathSciNetGoogle Scholar
  15. [15]
    Howden WE (1978) Functional program testing. In: IEEE Int’l Conference on Software and Applications, 321–325Google Scholar
  16. [16]
    Jervan G, Peng Z, Goloubeva O, Sonza Reorda M, Violante M (2002) High-level and hierarchical test sequence generation. In: IEEE Int’l Workshop on High Level Design Validation and Test, 169–174Google Scholar
  17. [17]
    King JS (1976) Symbolic execution and program testing. Communications of the ACM, (19): 385–394CrossRefzbMATHGoogle Scholar
  18. [18]
    Moundanos D, Abraham JA, Hoskote Y (1996) A unified framework for design validation and manifacturing test. In: IEEE Int’l Test Conference, 875–884Google Scholar
  19. [19]
    Offutt AJ (1994) A practical system for mutation testing: help for the common programmer. In: IEEE Int’l Test Conference, 1994, 824–830Google Scholar
  20. [20]
    OPENCORES, WISHBONE system-on-chip (SOC) interconnection architecture for portable IP cores, Revision B.3, September 2002Google Scholar
  21. [21]
    Rudnick EM, Vietti R, Ellis A, Corno F, Prinetto P, Sonza Reorda M (1998) Fast sequential circuit test generation using high level and gate level techniques. In: IEEE European Design Automation and Test Conference, 570–576Google Scholar
  22. [22]
    Santos MB, Goncalves FM, Teixeira IC, Teixeira JP (2000) RTL-based functional test generation for high defects coverage in digital SOCs. In: IEEE European Test Workshop, 99–104Google Scholar
  23. [23]
    SystemC User’s Guide, Synopsys, CoWare, Frontier DesignGoogle Scholar
  24. [24]
    Van Campenhout D, Mudge TN, Hayes JP, High-level test generation for design verification of pipelined microprocessors, In: Design Automation Conference, 1999, 185–188Google Scholar
  25. [25]
    Velev MN, Bryant RE, Formal verification of superscalar microprocessors with multicycle functional units, Exception, And Branch Prediction, In: Design Automation Conference, 2000, 112–117Google Scholar
  26. [26]
    www.keil.comGoogle Scholar

Copyright information

© Springer-Verlag London Limited 2005

Authors and Affiliations

  • O. Goloubeva
    • 1
  • M. Sonza Reorda
    • 1
  • M. Violante
    • 1
  1. 1.Dipartimento di Automatica e InformaticaPolitecnico di TorinoTorinoItaly

Personalised recommendations