Skip to main content

2022 | OriginalPaper | Buchkapitel

5. Abdeckungsgesteuertes Testen für skalierbare Verifikation virtueller Prototypen

verfasst von : Vladimir Herdt, Daniel Große, Rolf Drechsler

Erschienen in: Verbessertes virtuelles Prototyping

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Zusammenfassung

In diesem Kapitel werden fortgeschrittene abdeckungsorientierte Testverfahren vorgestellt, die auf Testfallgenerierung und Simulation beruhen, um formale Verifikationsmethoden zu ergänzen, die immer noch anfällig für eine Explosion des Zustandsraums sein können. Im Vergleich zum bestehenden simulationsbasierten Verifikationsablauf werden in diesem Kapitel stärkere Überdeckungsmetriken sowie fortgeschrittene automatische Testfallgenerierung und -verfeinerungstechniken untersucht. Insbesondere werden die Data Flow Testing (DFT)-Abdeckung und das Coverage-guided Fuzzing (CGF) betrachtet, die sich beide im SW-Bereich als sehr effektiv erwiesen haben und auf die Verifikation von VPs zugeschnitten sind. Für DFT wurde eine Reihe von SystemC-spezifischen Abdeckungskriterien entwickelt, die die SystemC-Semantik der Verwendung von nicht-präemptivem Thread-Scheduling mit Shared-Memory-Kommunikation und ereignisbasierter Synchronisation berücksichtigen. CGF wird für die Verifikation von Instruktionssatzsimulatoren (ISSs) eingesetzt, d. h. ein abstraktes Modell eines Prozessorkerns, und wird durch die Integration von funktionaler Abdeckung und einem auf die ISS-Verifikation zugeschnittenen Mutationsverfahren weiter verbessert.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
Technisch gesehen, verwenden wir ein Linker-Skript, das einen leeren Abschnitt in der ELF-Vorlage erzeugt. Dann verwenden wir das Dienstprogramm objcopy mit dem Argument -update-section, um den leeren Abschnitt mit dem (binären) Befehlsbytestrom zu überschreiben.
 
2
Technisch gesehen haben wir im Wesentlichen eine neue Tracing-Collector-Klasse hinzugefügt und die Größe des Datentyps für die Merkmalsdarstellung erweitert. Dieser Schritt erforderte eine Anpassung des Fuzzer-Kerns, um aufgrund des größeren Merkmalszustandsraums spärliche Datenstrukturen anstelle von Arrays fester Größe zu verwenden.
 
3
Derzeit verwenden wir im Falle einer Ergebnisabweichung automatische Debug-Skripte, die die Eingabebefehlssequenz aufteilen und wiederholt eine neue ELF-Datei auf beiden ISSs erzeugen und ausführen, indem sie einen Befehl nach dem anderen hinzufügen. Auf diese Weise können wir die genaue Position der Fehlanpassung ermitteln, was wiederum den Aufwand für die Fehlersuche und -analyse erheblich verringert (insbesondere bei längeren Befehlssequenzen).
 
Literatur
79.
Zurück zum Zitat M. Hassan, V. Herdt, H.M. Le, M. Chen, D. Große, R. Drechsler, Data flow testing for virtual prototypes, in Proceedings of the 2017 Design, Automation and Test in Europe (2017), S. 380–385 M. Hassan, V. Herdt, H.M. Le, M. Chen, D. Große, R. Drechsler, Data flow testing for virtual prototypes, in Proceedings of the 2017 Design, Automation and Test in Europe (2017), S. 380–385
102.
Zurück zum Zitat V. Herdt, D. Große, H.M. Le, R. Drechsler, Verifying instruction set simulators using coverage-guided fuzzing, in Proceedings of the 2019 Design, Automation and Test in Europe (2019), S. 360–365 V. Herdt, D. Große, H.M. Le, R. Drechsler, Verifying instruction set simulators using coverage-guided fuzzing, in Proceedings of the 2019 Design, Automation and Test in Europe (2019), S. 360–365
43.
Zurück zum Zitat R. A. DeMillo, R. J. Lipton, F. G. Sayward, Hints on test data selection: Help for the practicing programmer. Computer 11(4), 34–41 (1978)CrossRef R. A. DeMillo, R. J. Lipton, F. G. Sayward, Hints on test data selection: Help for the practicing programmer. Computer 11(4), 34–41 (1978)CrossRef
22.
Zurück zum Zitat N. Bombieri, F. Fummi, G. Pravadelli, A mutation model for the SystemC TLM 2.0 communication interfaces, in Proceedings of the 2008 Design, Automation and Test in Europe (2008), S. 396–401 N. Bombieri, F. Fummi, G. Pravadelli, A mutation model for the SystemC TLM 2.0 communication interfaces, in Proceedings of the 2008 Design, Automation and Test in Europe (2008), S. 396–401
23.
Zurück zum Zitat N. Bombieri, F. Fummi, G. Pravadelli, On the mutation analysis of SystemC TLM-2.0 standard, in MTV Workshop (2009), S. 32–37 N. Bombieri, F. Fummi, G. Pravadelli, On the mutation analysis of SystemC TLM-2.0 standard, in MTV Workshop (2009), S. 32–37
190.
Zurück zum Zitat A. Sen, Concurrency-oriented verification and coverage of system-level designs. TODAES 16(4), 37 (2011)CrossRef A. Sen, Concurrency-oriented verification and coverage of system-level designs. TODAES 16(4), 37 (2011)CrossRef
73.
Zurück zum Zitat D. Große, H.M. Le, M. Hassan, R. Drechsler, Guided lightweight software test qualification for IP integration using virtual prototypes, in ICCD (2016), S. 606–613 D. Große, H.M. Le, M. Hassan, R. Drechsler, Guided lightweight software test qualification for IP integration using virtual prototypes, in ICCD (2016), S. 606–613
130.
Zurück zum Zitat J. W. Laski, B. Korel, A data flow oriented program testing strategy. IEEE Trans. Soft. Eng. 9(3), 347–354 (1983)CrossRefMATH J. W. Laski, B. Korel, A data flow oriented program testing strategy. IEEE Trans. Soft. Eng. 9(3), 347–354 (1983)CrossRefMATH
175.
Zurück zum Zitat S. Rapps, E. J. Weyuker, Selecting software test data using data flow information. IEEE Trans. Soft. Eng. 11(4), 367–375 (1985)CrossRefMATH S. Rapps, E. J. Weyuker, Selecting software test data using data flow information. IEEE Trans. Soft. Eng. 11(4), 367–375 (1985)CrossRefMATH
201.
Zurück zum Zitat T. Su, Z. Fu, G. Pu, J. He, Z. Su, Combining symbolic execution and model checking for data flow testing, in Proceedings of the 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (2015), S. 654–665 T. Su, Z. Fu, G. Pu, J. He, Z. Su, Combining symbolic execution and model checking for data flow testing, in Proceedings of the 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (2015), S. 654–665
213.
Zurück zum Zitat M. Vivanti, A. Mis, A. Gorla, G. Fraser, Search-based data-flow test generation, in Proceedings of the 2013 IEEE 24th International Symposium on Software Reliability Engineering (ISSRE) (2013), S. 370–379 M. Vivanti, A. Mis, A. Gorla, G. Fraser, Search-based data-flow test generation, in Proceedings of the 2013 IEEE 24th International Symposium on Software Reliability Engineering (ISSRE) (2013), S. 370–379
7.
Zurück zum Zitat R. T. Alexander, J. Offutt, A. Stefik, Testing coupling relationships in object-oriented programs. STVR 20(4), 291–327 (2010) R. T. Alexander, J. Offutt, A. Stefik, Testing coupling relationships in object-oriented programs. STVR 20(4), 291–327 (2010)
45.
Zurück zum Zitat G. Denaro, A. Margara, M. Pezzè, M. Vivanti, Dynamic data flow testing of object oriented systems, in Proceedings of the 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (2015), S. 947–958 G. Denaro, A. Margara, M. Pezzè, M. Vivanti, Dynamic data flow testing of object oriented systems, in Proceedings of the 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (2015), S. 947–958
189.
Zurück zum Zitat T. Schuster, R. Meyer, R. Buchty, L. Fossati, M. Berekovic, Socrocket – A virtual platform for the European space agency’s SoC development, in ReCoSoC (2014), S. 1–7, http://github.com/socrocket. Zugegriffen im 2020 T. Schuster, R. Meyer, R. Buchty, L. Fossati, M. Berekovic, Socrocket – A virtual platform for the European space agency’s SoC development, in ReCoSoC (2014), S. 1–7, http://​github.​com/​socrocket. Zugegriffen im 2020
2.
Zurück zum Zitat A. Adir, E. Almog, L. Fournier, E. Marcus, M. Rimon, M. Vinov, A. Ziv, Genesys-pro: Innovations in test program generation for functional processor verification. Des. Test Comput. 21(2), 84–93 (2004)CrossRef A. Adir, E. Almog, L. Fournier, E. Marcus, M. Rimon, M. Vinov, A. Ziv, Genesys-pro: Innovations in test program generation for functional processor verification. Des. Test Comput. 21(2), 84–93 (2004)CrossRef
52.
Zurück zum Zitat R. Emek, I. Jaeger, Y. Naveh, G. Bergman, G. Aloni, Y. Katz, M. Farkash, I. Dozoretz, A. Goldin, X-gen: A random test-case generator for systems and SOCS, in Proceedings of the 7th IEEE International High-Level Design Validation and Test Workshop, 2002 (2002), S. 145–150 R. Emek, I. Jaeger, Y. Naveh, G. Bergman, G. Aloni, Y. Katz, M. Farkash, I. Dozoretz, A. Goldin, X-gen: A random test-case generator for systems and SOCS, in Proceedings of the 7th IEEE International High-Level Design Validation and Test Workshop, 2002 (2002), S. 145–150
121.
Zurück zum Zitat Y. Katz, M. Rimon, A. Ziv, Generating instruction streams using abstract CSP, in Proceedings of the 2012 Design, Automation and Test in Europe (2012), S. 15–20 Y. Katz, M. Rimon, A. Ziv, Generating instruction streams using abstract CSP, in Proceedings of the 2012 Design, Automation and Test in Europe (2012), S. 15–20
147.
Zurück zum Zitat W. Ma, A. Forin, J. Liu, Rapid prototyping and compact testing of CPU emulators, in RSP (2010), S. 1–7 W. Ma, A. Forin, J. Liu, Rapid prototyping and compact testing of CPU emulators, in RSP (2010), S. 1–7
56.
Zurück zum Zitat S. Fine, A. Ziv, Coverage directed test generation for functional verification using bayesian networks, in Proceedings of the 40th annual Design Automation Conference (2003), S. 286–291 S. Fine, A. Ziv, Coverage directed test generation for functional verification using bayesian networks, in Proceedings of the 40th annual Design Automation Conference (2003), S. 286–291
63.
Zurück zum Zitat P. Godefroid, N. Klarlund, K. Sen, Dart: Directed automated random testing, in Proceedings of the 2005 ACM SIGPLAN conference on Programming language Design and Implementation (2005), S. 213–223 P. Godefroid, N. Klarlund, K. Sen, Dart: Directed automated random testing, in Proceedings of the 2005 ACM SIGPLAN conference on Programming language Design and Implementation (2005), S. 213–223
192.
Zurück zum Zitat K. Sen, D. Marinov, G. Agha, Cute: A concolic unit testing engine for C, in SEN (2005), S. 263–272 K. Sen, D. Marinov, G. Agha, Cute: A concolic unit testing engine for C, in SEN (2005), S. 263–272
214.
Zurück zum Zitat H. Wagstaff, T. Spink, B. Franke, Automated ISA branch coverage analysis and test case generation for retargetable instruction set simulators, in Proceedings of the 2014 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (2014), S. 1–10 H. Wagstaff, T. Spink, B. Franke, Automated ISA branch coverage analysis and test case generation for retargetable instruction set simulators, in Proceedings of the 2014 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (2014), S. 1–10
154.
Zurück zum Zitat B. P. Miller, L. Fredriksen, B. So, An empirical study of the reliability of unix utilities. Commun. ACM 33(12), 32–44 (1990)CrossRef B. P. Miller, L. Fredriksen, B. So, An empirical study of the reliability of unix utilities. Commun. ACM 33(12), 32–44 (1990)CrossRef
149.
Zurück zum Zitat L. Martignoni, R. Paleari, G.F. Roglia, D. Bruschi, Testing CPU emulators, in ISSTA (2009), S. 261–272 L. Martignoni, R. Paleari, G.F. Roglia, D. Bruschi, Testing CPU emulators, in ISSTA (2009), S. 261–272
88.
Zurück zum Zitat V. Herdt, H.M. Le, D. Große, R. Drechsler, Compiled symbolic simulation for SystemC, in Proceedings of the 2016 IEEE/ACM International Conference on Computer-Aided Design (ICCAD) (2016), S. 52:1–52:8 V. Herdt, H.M. Le, D. Große, R. Drechsler, Compiled symbolic simulation for SystemC, in Proceedings of the 2016 IEEE/ACM International Conference on Computer-Aided Design (ICCAD) (2016), S. 52:1–52:8
100.
Zurück zum Zitat V. Herdt, H. M. Le, D. Große, R. Drechsler, Verifying SystemC using intermediate verification language and stateful symbolic simulation. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 38(7), 1359–1372 (2019)CrossRef V. Herdt, H. M. Le, D. Große, R. Drechsler, Verifying SystemC using intermediate verification language and stateful symbolic simulation. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 38(7), 1359–1372 (2019)CrossRef
222.
Zurück zum Zitat J. Yuan, C. Pixley, A. Aziz, Constraint-Based Verification (Springer, Berlin, 2006)MATH J. Yuan, C. Pixley, A. Aziz, Constraint-Based Verification (Springer, Berlin, 2006)MATH
77.
Zurück zum Zitat F. Haedicke, H.M. Le, D. Große, R. Drechsler, CRAVE: An advanced constrained random verification environment for SystemC, in SoC (2012), S. 1–7 F. Haedicke, H.M. Le, D. Große, R. Drechsler, CRAVE: An advanced constrained random verification environment for SystemC, in SoC (2012), S. 1–7
91.
Zurück zum Zitat V. Herdt, H.M. Le, D. Große, R. Drechsler, Towards early validation of firmware-based power management using virtual prototypes: A constrained random approach, in FDL (2017), S. 1–8 V. Herdt, H.M. Le, D. Große, R. Drechsler, Towards early validation of firmware-based power management using virtual prototypes: A constrained random approach, in FDL (2017), S. 1–8
4.
Zurück zum Zitat M. Aharoni, S. Asaf, L. Fournier, A. Koifman, R. Nagel, FPGEN – A test generation framework for datapath floating-point verification, in Proceedings of the 8th IEEE International High-Level Design Validation and Test Workshop (2003), S. 17–22 M. Aharoni, S. Asaf, L. Fournier, A. Koifman, R. Nagel, FPGEN – A test generation framework for datapath floating-point verification, in Proceedings of the 8th IEEE International High-Level Design Validation and Test Workshop (2003), S. 17–22
65.
Zurück zum Zitat P. Godefroid, H. Peleg, R. Singh, Learn and fuzz: Machine learning for input fuzzing, in ASE (2017), S. 50–59 P. Godefroid, H. Peleg, R. Singh, Learn and fuzz: Machine learning for input fuzzing, in ASE (2017), S. 50–59
103.
Zurück zum Zitat V. Herdt, D. Große, R. Drechsler, Closing the RISC-V compliance gap: Looking from the negative testing side, in Design Automation Conference (2020) V. Herdt, D. Große, R. Drechsler, Closing the RISC-V compliance gap: Looking from the negative testing side, in Design Automation Conference (2020)
105.
Zurück zum Zitat V. Herdt, D. Große, R. Drechsler, Towards specification and testing of RISC-V ISA compliance, in Proceedings of the 2020 Design, Automation and Test in Europe (2020) V. Herdt, D. Große, R. Drechsler, Towards specification and testing of RISC-V ISA compliance, in Proceedings of the 2020 Design, Automation and Test in Europe (2020)
Metadaten
Titel
Abdeckungsgesteuertes Testen für skalierbare Verifikation virtueller Prototypen
verfasst von
Vladimir Herdt
Daniel Große
Rolf Drechsler
Copyright-Jahr
2022
DOI
https://doi.org/10.1007/978-3-031-18174-0_5

Neuer Inhalt