main| new issue| archive| editorial board| for the authors| publishing house|
Ðóññêèé
Main page
New issue
Archive of articles
Editorial board
For the authors
Publishing house

 

 


ABSTRACTS OF ARTICLES OF THE JOURNAL "INFORMATION TECHNOLOGIES".
No. 11. Vol. 30. 2024

DOI: 10.17587/it.30.579-584

A. S. Protsenko,
Ivannikov Institute for System Programming of the Russian Academy of Sciences, Moscow, Russian Federation

Architecture Independent Test Templates for Virtual Machines and Microprocessors

To ensure the quality of compilers, virtual machines and microprocessors, testing with the use of test programs is applied. Test templates, i.e. parameterized descriptions of test programs, are used to reduce the resources spent on test creation. For verification of test objects with different architectures, test templates testing the same functional properties can be used. A task of describing templates in an architecture-independent form and its customization for a target architecture arises. The paper proposes a method for creating and using architecture independent test templates. The method is as follows. Architecture dependent constructs that are needed to describe a test template are defined. Based on these constructs, an architecture independent test template is created. Then the template is customized to the architecture of the object under test by describing implementations of the architecture dependent constructs. Realizations of the constructs can be described by different sets of architecturally dependent operations, differing both by the type of data used and by the operations used. Different strategies for selecting the implementations to be used, such as full brute force, random selection, and others, can be applied in the test templates. Providing an interface as the architecture dependent constructs allows the use of third-party generators to create the architecturally independent templates. Rewriting the implementations of the constructs allows the test programs to be derived from the given templates for new architectures. This method was successfully applied to check optimizations in a virtual machine compiler.
Keywords: test templates, testing, instruction set architecture, virtual machines, test program generator

P. 579-584

References

  1. Behm M., Ludden J., Lichtenstein Y., Rimon M., Vinov M. Industrial experience with test generation languages for processor verification, Proceedings of the 41th Design Automation Conference, DAC, 2004, pp. 36—40.
  2. Tatarnikov A. D. Combinatorial Test Program Generation for Microprocessors Based on Formal Specifications of Instruction Set Architecture, Problemy razrabotki perspektivnyh mikro- i nanoelektronnyh sistem (MES), 2016, no. 2, pp. 38—45.
  3. Stocks P., Carrington D. A. Test templates: a specification-based testing framework, Proceedings — International Conference on Software Engineering, 1993, pp. 405—414, doi: 10.1109/ ICSE.1993.346025.
  4. Zang Zh., Wiatrek N., Gligoric M., Shi A. Compiler Testing using Template Java Programs, Proceedings of the 37th IEEE/ ACM International Conference on Automated Software Engineering, ASE, 2022.
  5. Kamkin A. S. Generation of test programs for microprocessors (in Russian), Trudy ISP RAN, 2008, vol. 14, no. 2, pp. 23—64.
  6. Adir A., Almog E., Fournier L., Marcus E., Rimon M., Vinov M., Ziv A. Genesys-Pro: Innovations in Test Program Gene­ration for Functional Processor Verification, IEEE Design & Test of Computers, 2004, vol. 21, no. 2, pp. 84—93.
  7. Mahapatra R. N., Bhojwani P., Lee J., Kim Y. Microprocessor Evaluations for Safety-Critical, Real-Time Applications: Authority for Expenditure. Phase 3 Report. NTIS, Springfield, Virginia 22161, 2009, no. 43. 43 p.
  8. Archive of presentation slides "Introducing Obsidian Software and RAVEN-GCS for PowerPC" [Online], available at: https://www.slideshare.net/DVClub/introducing-obsidian-soft-ware-and-ravengcs-for-powerpc.
  9. Gribkov I. V., Zakharov A. V., Koltsov P. P. et al. Development of the INTEG microprocessor stochastic testing system, Programmnyye produkty i sistemy, 2010, no. 2, pp. 14—23 (in Russian).
  10. Tatarnikov A. D. Language for Describing Templates for Test Program Generation for Microprocessors, Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS), 2016, vol. 28, no. 4, pp. 77—98, doi: 10.15514/ISPRAS-2016-28(4)-5.
  11. Ruby language [Online], available at: http://www.ruby-lang.org.
  12. Seonghun J., Youngchul Cho, Daeyong S., Changyeon J., Yenjo H., Soojung R., Jeongwook K., Bernhard E. Random Test Program Generation for Reconfigurable Architectures, 13th International Workshop on Microprocessor Test and Verification (MTV), 2012, 6 p.
  13. Egger B., Song E., Lee H., Shin D. Random Test Program Generation for Verification and Validation of the Samsung Reconfigurable Processor, Journal of Systems Architecture, 2019, vol. 97, doi: 10.1016/j.sysarc.2019.05.007.
  14. Chen J., Wang G., Hao D., Xiong Y., Zhang H., Zhang L. History-Guided Configuration Diversification for Compiler Test-Program Generation, 2019 34th IEEE/ACM International Confe­rence on Automated Software Engineering (ASE), San Diego, CA, USA, 2019, pp. 305—316, doi: 10.1109/ASE.2019.00037.
  15. Rabin Md R. I., Alipour M. Configuring Test Generators Using Bug Reports: A Case Study of GCC Compiler and Csmith, The 36th ACM/SIGAPP Symposium on Applied Computing, SAC, 2021, pp. 1750—1758, doi: 10.1145/3412841.3442047.
  16. Loop-Invariant Code Motion (LICM) [Online], available at: https://en.wikipedia.org/wiki/Loop-invariant_code_motion.
  17. Zelenov S. V., Zelenova S. A. Model-Based Testing of Optimizing Compilers, TestCom/FATES 2007, LNCCN, vol. 4581, pp. 365—377.
  18. MicroTESK test program generator [Online], available at: https://forge.ispras.ru/projects/microtesk.

 

To the contents