Skip to main content

Verifikation und Integration von Software

  • 9542 Accesses

Part of the Xpert.press book series (XPERT.PRESS)

Zusammenfassung

Liegen Teile der Software implementiert vor, kann damit begonnen werden, die Software zu verifizieren und die Teile zu integrieren. Typischerweise werden einzelne Teile zunächst für sich getestet und dann, soweit sie vorgegebenen Qualitätsanforderungen genügen, mit anderen Teilen zusammengefügt. Abhängig von der Vorgehensweise kann wieder sehr früh damit begonnen werden, Programmcode Schritt für Schritt aufzubauen und zu vervollständigen. Liegen einzelne Funktionen implementiert vor, werden diese unmittelbar getestet. Im Optimum heißt das, dass nach jedem Schritt ein ablauffähiges System vorliegt, wobei Implementierung, Test und Integration Hand in Hand gehen. Es ist aber auch möglich, einzelne Module oder Klassen zunächst individuell zu testen, dann zu größeren Softwareeinheiten zu integrieren, wobei der Zusammenbau in sogenannten Integrationstests auf Fehler überprüft wird, um schließlich die einzelnen Teile zu einem Gesamtsystem zu integrieren und dieses zu testen. Dieses Kapitel führt in die Grundlagen des Testens von Software ein. Dies umfasst die wesentlichen Konzepte und Vorgehensweisen im manuellen und automatisierten Softwaretest. Kaum zu trennen von den Testaufgaben ist die Integration. Die Strategien für die Software- und Systemintegration bilden den zweiten Teil dieses Kapitels, welches mit einem Überblick über Methoden und Techniken der kontinuierlichen Integration und DevOps abgeschlossen wird.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-662-50263-1_12
  • Chapter length: 72 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   54.99
Price excludes VAT (USA)
  • ISBN: 978-3-662-50263-1
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Hardcover Book
USD   69.99
Price excludes VAT (USA)
Abb. 12.1
Abb. 12.2
Abb. 12.3

(In Anlehnung an [57])

Abb. 12.4
Abb. 12.5
Abb. 12.6
Abb. 12.7
Abb. 12.8
Abb. 12.9
Abb. 12.10
Abb. 12.11
Abb. 12.12
Abb. 12.13
Abb. 12.14
Abb. 12.15
Abb. 12.16
Abb. 12.17
Abb. 12.18
Abb. 12.19
Abb. 12.20
Abb. 12.21
Abb. 12.22
Abb. 12.23
Abb. 12.24

(Die drei DevOps-Prinzipien nach [37])

Abb. 12.25
Abb. 12.26
Abb. 12.27

Notes

  1. 1.

    Nach Wagner [57] wird auch der Begriff Defect als Oberbegriff für die Klassen Fault und Error verwendet.

  2. 2.

    International Software Testing Qualifications Board (ISTQB) – Gemeinnützige Zertifizierungsstelle für Softwaretester. Das ISTQB bietet ein mehrstufiges Qualifikations- und Zertifizierungsprogramm an. Online: https://www.istqb.org.

  3. 3.

    Man beachte den Unterschied zwischen Testen, der Überprüfung der Qualität fertiggestellten Codes und Debugging, der Fehlersuche während der Entwicklung des Codes.

  4. 4.

    Man beachte, dass das Test-driven Development (siehe Abschn. 12.2.6) hier einen anderen Ansatz verfolgt und daher der Entwicklungs-, Integrations- und Testzyklus anders organisiert ist.

  5. 5.

    Die Grundannahme hier ist, dass, wenn ein Parameter ungültig ist, die Wahrscheinlichkeit, dass eine Kompensation durch andere Parameter erfolgt nur sehr gering ist. Zudem ist auch davon auszugehen, dass eine Funktion auch bei nur einer ungültigen Eingabe einen Fehler meldet, das gewünschte Verhalten ist.

  6. 6.

    Achtung: Durch die Art des Beispiels aus Abb. 12.15 liegen keine Verfeinerungen im Hinblick auf Module vor. Daher ist für die Abb. 12.17 der Einfachheit halber anzunehmen, dass jede Komponente genau ein Modul enthält.

  7. 7.

    Siehe beispielsweise International Conference on Software Testing, Verification, and Validation (ICST) oder die German Testing Days.

Literatur

  1. J. Albrecht-Zölch. Testdaten und Testdatenmanagement: Vorgehen, Methoden und Praxis. dpunkt.verlag GmbH, January 2018.

    Google Scholar 

  2. Apache.org. Apache ant version 1.10.7. Online: https://ant.apache.org (abgerufen: 2020-01-03), September 2019.

  3. Apache.org. Apache maven version 3.6.3. Online: https://maven.apache.org (abgerufen: 2020-01-03), November 2019.

  4. K. Apt, F. S. de Boer, and E.-R. Olderog. Verification of Sequential and Concurrent Programs. Texts in Computer Science. Springer-Verlag, 3 edition, 2009.

    Google Scholar 

  5. T. Arora and U. Shigihalli. Azure DevOps Server 2019 Cookbook: Proven recipes to accelerate your DevOps journey with Azure DevOps Server 2019. Cookbook. Packt Publishing, 2 edition, May 2019.

    Google Scholar 

  6. A. Avizienis, J.-C. Laprie, B. Randell, and C. Landwehr. Basic concepts and taxonomy of dependable and secure computing. IEEE Transactions on Dependable and Secure Computing, 1(1):11–33, 2004.

    Google Scholar 

  7. K. Beck. Test Driven Development. By Example. Addison-Wesley Longman, 2002.

    Google Scholar 

  8. M. Beller, A. Bacchelli, A. Zaidman, and E. Jürgens. Modern code reviews in open-source projects: Which problems do they fix? In Proceedings of the 11th Working Conference on Mining Software Repositories, MSR, pages 202–211, New York, NY, USA, 2014. ACM.

    Google Scholar 

  9. M. Beller, G. Gousios, A. Panichella, S. Proksch, S. Amann, and A. Zaidman. Developer testing in the ide: Patterns, beliefs, and behavior. IEEE Transactions on Software Engineering, 45(3):261–284, 2019.

    Google Scholar 

  10. T. Bennett and P. Wennberg. Eliminating Embedded Software Defects Prior to Integration Test. Quality Assurance Institute Journal, 2006.

    Google Scholar 

  11. M. Broy and M. Kuhrmann. Projektorganisation und Management im Software Engineering. Number 978-3-642-29289-7 in Xpert.press. Springer Verlag, Berlin Heidelberg, 1 edition, 2013.

    Google Scholar 

  12. J. Burch, E. Clarke, K. McMillan, D. Dill, and L. Hwang. Symbolic model checking: 1020 states and beyond. Information and Computation, 98(2):142–170, 1992.

    Google Scholar 

  13. J. N. Buxton and B. Randell. Report of the nato software engineering conference on software engineering techniques. Conference report, NATO Science Committee, October 1969.

    Google Scholar 

  14. E. M. Clarke, O. Grumberg, and D. A. Peled. Model Checking. MIT Press, 1999.

    Google Scholar 

  15. CMMI Product Team. CMMI for Development, Version 1.3. Technical Report CMU/SEI-2010-TR-033, Software Engineering Institute, Carnegie Mellon University, 2010.

    Google Scholar 

  16. M. Daigl and R. Glunz. ISO 29119 - Die Softwaretest-Normen verstehen und anwenden. dpunkt.verlag GmbH, January 2016.

    Google Scholar 

  17. F. Deißenböck. Continuous Quality Control of Long-Lived Software Systems. PhD thesis, Technische Universität München, October 2009.

    Google Scholar 

  18. F. Deißenböck and B. Hummel. Kontinuierliches qualitäts-controlling: Mittel gegen den qualitätsverfall in der softwarewartung. OBJEKTspektrum, 5:34–38, 2011.

    Google Scholar 

  19. F. Deissenböck, E. Jürgens, B. Hummel, S. Wagner, B. M. Parareda, and M. Pizka. Tool support for continuous quality control. IEEE Software, 25(5):60–67, September 2008.

    Google Scholar 

  20. W. E. Deming. Out of the Crisis. (Reprint). MIT Press, 2 edition, August 2000.

    Google Scholar 

  21. ECSS Secretariat. Space product assurance, software metrication programme definition and implementation. Standard ECSS-Q-HB-80-04A, ESA-ESTEC Requirements and Standards Division, March 2011.

    Google Scholar 

  22. M. E. Fagan. Design and code inspections to reduce errors in program development. IBM Systems Journal, 15(3):182–211, Sept. 1976.

    Google Scholar 

  23. Gradle Enterprise. Gradle build tool version 6.6.1. Online: https://gradle.org (abgerufen: 2020-09-13), August 2020.

  24. M. Grochtmann and K. Grimm. Classification trees for partition testing. Software Testing, Verification and Reliability, 3(2):63–82, 1993.

    Google Scholar 

  25. T. Hall, A. Rainer, and N. Baddoo. Implementing software process improvement: an empirical study. Software Process: Improvement and Practice, 7(1):3–15, 2002.

    Google Scholar 

  26. C. A. R. Hoare. An axiomatic basis for computer programming. Commun. ACM, 12(10):576–583, Oct. 1969.

    Google Scholar 

  27. W. S. Humphrey. Managing the Software Process. Addison-Wesley Professional, January 1989.

    Google Scholar 

  28. IEEE 829-2008. IEEE Standard for Software and System Test Documentation. IEEE, July 2008.

    Google Scholar 

  29. IEEE Std 1012-2004. IEEE Standard for Software Verification and Validation. IEEE, 2004.

    Google Scholar 

  30. IEEE Std 1028-1997. IEEE Standard for Software Reviews. IEEE, 1998.

    Google Scholar 

  31. ISO 26262:2018. Road vehicles – Functional safety. International Organization for Standardization, 2018.

    Google Scholar 

  32. ISO/IEC 25010:2011. Systems and software engineering – System and software quality models. International Organization for Standardization, 2011.

    Google Scholar 

  33. ISO/IEC 25023:2016. Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – Measurement of system and software product quality. International Organization for Standardization, 2016.

    Google Scholar 

  34. ISO/IEC/IEEE 24765:2010. Systems and software engineering – Vocabulary. International Organization for Standardization, 2010.

    Google Scholar 

  35. ISO/IEC/IEEE 29119:2013. ISO/IEC/IEEE International Standard – Software and systems engineering – Software testing – Part 2: Test processes. International Organization for Standardization, 2013.

    Google Scholar 

  36. Jenkins Community. Jenkins version 2.210. Online: https://jenkins.io (abgerufen: 2020-01-03), December 2019.

  37. G. Kim, J. Humble, P. Debois, and J. Willis. The DevOps Handbook. NBN TRADESELECT, 2016.

    Google Scholar 

  38. S. Kleuker. Formale Modelle der Softwareentwicklung: Model-Checking, Verifikation, Analyse und Simulation. Studium. Vieweg+Teubner Verlag, September 2009.

    Google Scholar 

  39. S. Kleuker. Qualitätssicherung durch Softwaretests: Vorgehensweisen und Werkzeuge zum Testen von Java-Programmen. Springer Vieweg, 2 edition, July 2019.

    Google Scholar 

  40. J. Klünder, R. Hebig, P. Tell, M. Kuhrmann, J. Nakatumba-Nabende, R. Heldal, S. Krusche, M. Fazal-Baqaie, M. Felderer, M. F. G. Bocco, S. Küpper, S. A. Licorish, G. Lopez, F. McCaffery, Ö. Ö. Top, C. R. Prause, R. Prikladnicki, E. Tüzün, D. Pfahl, K. Schneider, and S. G. MacDonell. Catching up with Method and Process Practice: An Industry-Informed Baseline for Researchers. In Proceedings of 41st International Conference on Software Engineering, ICSE-SEIP, pages 255–264. ACM, 2019.

    Google Scholar 

  41. R. Kneuper. Software Process and Life Cycle Models. Springer International Publishing, 2018.

    Google Scholar 

  42. I. Koren and C. M. Krishna. Fault-Tolerant Systems. Morgan Kaufmann, April 2007.

    Google Scholar 

  43. M. Kuhrmann, P. Diebold, and J. Münch. Software process improvement: A systematic mapping study on the state of the art. PeerJ Computer Science, 2(1):1–38, May 2016.

    Google Scholar 

  44. A. Magana and J. Muli. Version Control with Git and GitHub. Packt Publishing, December 2018.

    Google Scholar 

  45. R. C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall, 2008.

    Google Scholar 

  46. R. C. Martin and M. Marin. Agile Principles, Patterns, and Practices in C#. Prentice Hall, 2007.

    Google Scholar 

  47. S. McIntosh, Y. Kamei, B. Adams, and A. E. Hassan. The Impact of Code Review Coverage and Code Review Participation on Software Quality: A Case Study of the Qt, VTK, and ITK Projects. In Proceedings of the 11th Working Conference on Mining Software Repositories, MSR, pages 192–201, New York, NY, USA, 2014. ACM.

    Google Scholar 

  48. S. Mujtaba, R. Feldt, and K. Petersen. Waste and lead time reduction in a software product customization process with value stream maps. In 2010 21st Australian Software Engineering Conference, pages 139–148, April 2010.

    Google Scholar 

  49. S. R. Palmer and J. M. Felsing. A Practical Guide to Feature-Driven Development. Prentice Hall, February 2002.

    Google Scholar 

  50. K. Petersen. A palette of lean indicators to detect waste in software maintenance: A case study. In C. Wohlin, editor, Agile Processes in Software Engineering and Extreme Programming, pages 108–122, Berlin, Heidelberg, 2012. Springer Berlin Heidelberg.

    Google Scholar 

  51. C. R. Prause, J. Werner, K. Hornig, S. Bosecker, and M. Kuhrmann. Is 100% Test Coverage a Reasonable Requirement? Lessons Learned from a Space Software Project. In Product-Focused Software Process Improvement, PROFES, pages 351–367, Cham, 2017. Springer International Publishing.

    Google Scholar 

  52. P. Runeson, C. Andersson, T. Thelin, A. Andrews, and T. Berling. What do we know about defect detection methods? IEEE Softw., 23(3):82–90, May 2006.

    Google Scholar 

  53. T. Sedano, P. Ralph, and C. Péraire. Software development waste. In Proceedings of the 39th International Conference on Software Engineering, ICSE ’17, pages 130–140, Piscataway, NJ, USA, 2017. IEEE Press.

    Google Scholar 

  54. A. Spillner and U. Breymann. Lean Testing für C++-Programmierer: Angemessen statt aufwendig testen. dpunkt.verlag GmbH, June 2016.

    Google Scholar 

  55. A. Spillner and T. Linz. Basiswissen Softwaretest. dpunkt.verlag GmbH, 6 edition, June 2019.

    Google Scholar 

  56. S. Wagner. A literature survey of the quality economics of defect-detection techniques. In Proceedings of the 2006 ACM/IEEE International Symposium on Empirical Software Engineering, ISESE ’06, pages 194–203, New York, NY, USA, 2006. ACM.

    Google Scholar 

  57. S. Wagner. Software Product Quality Control. Springer Verlag, 2013.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Manfred Broy .

Rights and permissions

Reprints and Permissions

Copyright information

© 2021 Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature

About this chapter

Verify currency and authenticity via CrossMark

Cite this chapter

Broy, M., Kuhrmann, M. (2021). Verifikation und Integration von Software. In: Einführung in die Softwaretechnik. Xpert.press. Springer Vieweg, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-50263-1_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-50263-1_12

  • Published:

  • Publisher Name: Springer Vieweg, Berlin, Heidelberg

  • Print ISBN: 978-3-662-50262-4

  • Online ISBN: 978-3-662-50263-1

  • eBook Packages: Computer Science and Engineering (German Language)