{"id":3107,"date":"2026-01-30T00:00:00","date_gmt":"2026-01-29T23:00:00","guid":{"rendered":"https:\/\/kunden.weissblaumedia.de\/microconsult\/2017\/09\/06\/ip_oo-test\/"},"modified":"2026-02-08T20:16:15","modified_gmt":"2026-02-08T19:16:15","slug":"ip_oo-test","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/ip_oo-test\/","title":{"rendered":"Object-oriented testing of embedded software"},"content":{"rendered":"<p><strong>Introducing C++ into an embedded project is a major challenge for most teams. Underestimating the effort involved can potentially delay the entire development process. And now, the C++ software is supposed to undergo additional complex security testing? <\/strong><\/p>\n<p><strong>Is it even possible to test quality into C++ software?<\/strong><\/p>\n<p><!--more--><\/p>\n<p>Object-oriented programming, while offering attractive features, also introduces new sources of error into the project. These include complex properties such as data encapsulation, inheritance, association, aggregation, composition, polymorphism, and dynamic binding.<\/p>\n<p>Objects and instances of classes are used in different contexts or can be in different states that affect their behavior (different constructors), and they have relationships that need to be tested. With dynamic binding (polymorphism), every possible binding, as well as the shift of control flow from procedures to messages between classes, should be carefully tested.<\/p>\n<h3>What additional tests are required for C++ software?<\/h3>\n<p>At the top of the list of elements to be tested are the classes. We will examine them more closely from several perspectives. <strong>Testing class hierarchies<\/strong> This occurs vertically along the inheritance hierarchy and horizontally along the relationships to other classes.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-312 size-medium\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2017\/08\/OO-TEST_Bild1_Klassenhierarchie-255x300.png\" alt=\"Class hierarchy\" width=\"255\" height=\"300\" data-wp-pid=\"312\" \/><\/p>\n<p><em>Image 1: Class hierarchy<\/em><\/p>\n<p>The <strong>Class architectures<\/strong> Testing is performed based on the class diagrams, proceeding along the class hierarchy from the base class to the derived class. The base class is tested first. The third step involves testing the... <strong>Class integration test<\/strong>t through. Based on sequence diagrams along the associations, the interaction of the individual objects and the correct calling of functions are particularly important.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-313\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2017\/08\/OO-TEST_Bild2_Klassenverband.png\" alt=\"Class group\" width=\"650\" height=\"555\" data-wp-pid=\"313\" \/><\/p>\n<p><em>Image 2: Class structure, class hierarchy without inheritance<\/em><\/p>\n<p>Both <strong>Class and integration tests<\/strong> The most important thing is that all methods are executed and all parameters and return values are used correctly (equivalence class and boundary value tests). Does the system handle valid and invalid parameters correctly (positive and negative tests)? Is an outgoing exception thrown and an incoming exception treated as &quot;xx becomes xx&quot;? For classes with stateful behavior, it should be tested whether every state is reached and every method is executed in every state of the object, as well as all state transitions. This includes testing all relationships for incorrect or missing connections and incorrect multiplicities.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-315\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2017\/08\/OO-TEST_Bild4_Klasse_mit_Zustandsverhalten.png\" alt=\"Class with state behavior\" width=\"650\" height=\"426\" data-wp-pid=\"315\" \/><\/p>\n<p><em>Figure 3: Class with state behavior<\/em><\/p>\n<p>At the <strong>Testing for heredity<\/strong> First, we examine the methods and attributes in the base class. Since these methods and attributes can be inherited, we must also re-examine inherited methods and attributes from tested base classes in the context of the derived class. Methods of a derived class can be overridden.<\/p>\n<p><strong>Testing polymorphic structures: <\/strong>If multiple methods with the same signature appear at different hierarchy levels within an inheritance branch of a class hierarchy, we determine at runtime which method from which inheritance path is used for a given object. With deep class hierarchies, it can be difficult to trace which method is called. Ensure that the classes involved are instantiated. Every possible binding should also be tested.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-314\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2017\/08\/OO-TEST_Bild3_Polymorphie_abstrakte_Klasse_und_Interfaces.png\" alt=\"Polymorphism_abstract_class_and_interfaces\" width=\"650\" height=\"483\" data-wp-pid=\"314\" \/><\/p>\n<p><em>Figure 4: Polymorphism, abstract classes and interfaces<\/em><\/p>\n<h3>Software that is easy to test leads to new software design requirements.<\/h3>\n<p>Security is also a matter of well-written code. Just as in embedded systems, a well-thought-out software architecture is essential from the outset for C++ software to achieve a reliable quality standard. In terms of easily testable software, this can also lead to new software design requirements within the framework of object-oriented programming.<\/p>\n<p>Multiple and repeated inheritances lead to greater difficulty in understanding inheritance patterns and thus increase the likelihood of errors. The best way to counteract this is to avoid deep inheritance hierarchies. The same applies to polymorphism and dynamic binding.<\/p>\n<h3>Sources of error<\/h3>\n<p>There are numerous potential sources of error when programming parallel processes in object-oriented systems. The following is an overview of the most important tests for avoiding such errors:<\/p>\n<ol>\n<li>Sources of error to be tested when waiting for synchronization events:\n<ul>\n<li><strong>Unnecessary waiting<\/strong>Computing power is lost \u2013 operation sequences cannot be executed, even though they should be executable.<\/li>\n<li><strong>Waiting too long<\/strong>: Timeout is not detected \u2013 the process \u201estarves\u201c (starvation\/deadlock).<\/li>\n<li><strong>Lack of waiting<\/strong>: unauthorized process overlap\/overlap<\/li>\n<\/ul>\n<\/li>\n<li><strong>Shared Variables<\/strong>Variables are used by different, concurrent processes.<\/li>\n<li><strong>Race Conditions<\/strong>Time-critical processes can produce different results even with the same input values.<\/li>\n<li><strong>News conflicts<\/strong>These can occur during communication and synchronization, e.g., an incorrect order of messages due to different external influences.<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-316\" src=\"https:\/\/www.microconsult.de\/blog\/wp-content\/uploads\/2017\/08\/OO-TEST_Bild5_Multitasking-paralleleSW-Verarbeitung-300x234.png\" alt=\"Multitasking, parallel software processing\" width=\"650\" height=\"507\" data-wp-pid=\"316\" \/><\/p>\n<p><em>Figure 5: Multitasking, parallel software processing<\/em><\/p>\n<h3>Conclusion<\/h3>\n<p>Proper testing of object-oriented systems should be included in the project budget from the outset. If this is neglected in favor of faster or cheaper project completion, the damage is incalculable. The quality of your software depends on both choosing the right software architecture and having a thorough understanding of the programming language. In-depth testing expertise will enable you to achieve a high level of quality for your software and gain a significant competitive advantage.<\/p>\n<h4>Further information<\/h4>\n<p><strong><a href=\"https:\/\/www.microconsult.de\/en\/training-consulting\/training\/embedded-software-test-best-practices-fuer-den-unit-modul-komponenten-test\/aaaadjo\/\" target=\"_blank\" rel=\"noopener\">Training: Embedded Software Testing \u2013 Best Practices for Unit\/Module\/Component Testing<\/a><\/strong><strong class=\"marker\"><br \/>\n<\/strong><\/p>\n<p><a href=\"https:\/\/www.microconsult.de\/en\/all-training-dates-complete-overview\/\" target=\"_blank\" rel=\"noopener\"><strong>MicroConsult Training &amp; Coaching on the topic of Testing and Debugging<\/strong><\/a><\/p>\n<p><a href=\"https:\/\/www.microconsult.de\/en\/all-training-dates-complete-overview\/\" target=\"_blank\" rel=\"noopener\"><strong>MicroConsult Training &amp; Coaching on the topic of software development<\/strong><\/a><\/p>\n<p><a href=\"https:\/\/www.microconsult.de\/en\/test-and-debug\/\" target=\"_blank\" rel=\"noopener\"><strong>MicroConsult expertise in testing and debugging<\/strong><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Introducing C++ into an embedded project is a major challenge for most teams. Underestimating the effort involved can potentially delay the entire development process. And now, the C++ software is supposed to undergo additional complex security testing? Is it even possible to test quality into C++ software?<\/p>","protected":false},"author":4,"featured_media":3108,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[51,70],"tags":[82,83,84,85,86,87],"class_list":["post-3107","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-qualitaet_und_sicherheit","category-test_und_debug","tag-c-software-test","tag-designanforderungen","tag-embedded-software-test","tag-objektorientiert-testen","tag-software-qualitaet","tag-softwarearchitektur"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Objektorientiertes Testen von Embedded-Software - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/ip_oo-test\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Objektorientiertes Testen von Embedded-Software - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Die Einf\u00fchrung von C++ in ein Embedded-Projekt ist f\u00fcr die meisten Teams eine gro\u00dfe Herausforderung. Untersch\u00e4tzt man den Aufwand, verz\u00f6gert sich dadurch unter Umst\u00e4nden die ganze Entwicklung. Und jetzt soll die C++ Software mit zus\u00e4tzlichen komplexen Tests noch auf Sicherheit hin gepr\u00fcft werden? L\u00e4sst sich denn Qualit\u00e4t \u00fcberhaupt in eine C++ Software hineintesten?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/ip_oo-test\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-29T23:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-08T19:16:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/oo.test_.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"849\" \/>\n\t<meta property=\"og:image:height\" content=\"566\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Renate Schultes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Renate Schultes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/\"},\"author\":{\"name\":\"Renate Schultes\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/89c1748f96b6c21197360a857fa79c5a\"},\"headline\":\"Objektorientiertes Testen von Embedded-Software\",\"datePublished\":\"2026-01-29T23:00:00+00:00\",\"dateModified\":\"2026-02-08T19:16:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/\"},\"wordCount\":823,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.microconsult.de\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/oo.test_.jpg\",\"keywords\":[\"C++ Software Test\",\"Designanforderungen\",\"Embedded-Software-Test\",\"objektorientiert Testen\",\"Software-Qualit\u00e4t\",\"Softwarearchitektur\"],\"articleSection\":[\"Qualit\u00e4t und Sicherheit\",\"Test und Debug\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/\",\"name\":\"Objektorientiertes Testen von Embedded-Software - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.microconsult.de\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/oo.test_.jpg\",\"datePublished\":\"2026-01-29T23:00:00+00:00\",\"dateModified\":\"2026-02-08T19:16:15+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/89c1748f96b6c21197360a857fa79c5a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/oo.test_.jpg\",\"contentUrl\":\"https:\\\/\\\/www.microconsult.de\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/oo.test_.jpg\",\"width\":849,\"height\":566,\"caption\":\"Embedded-Software-Test objektorientiert f\u00fcr C++\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/ip_oo-test\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Objektorientiertes Testen von Embedded-Software\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/89c1748f96b6c21197360a857fa79c5a\",\"name\":\"Renate Schultes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d82a4cfd395ce164dcf90fd5ee5f4eaf9bb9761c3283213fb2ce891033c5c771?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d82a4cfd395ce164dcf90fd5ee5f4eaf9bb9761c3283213fb2ce891033c5c771?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d82a4cfd395ce164dcf90fd5ee5f4eaf9bb9761c3283213fb2ce891033c5c771?s=96&d=mm&r=g\",\"caption\":\"Renate Schultes\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Object-oriented testing of embedded software - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/ip_oo-test\/","og_locale":"en_GB","og_type":"article","og_title":"Objektorientiertes Testen von Embedded-Software - MicroConsult Academy GmbH","og_description":"Die Einf\u00fchrung von C++ in ein Embedded-Projekt ist f\u00fcr die meisten Teams eine gro\u00dfe Herausforderung. Untersch\u00e4tzt man den Aufwand, verz\u00f6gert sich dadurch unter Umst\u00e4nden die ganze Entwicklung. Und jetzt soll die C++ Software mit zus\u00e4tzlichen komplexen Tests noch auf Sicherheit hin gepr\u00fcft werden? L\u00e4sst sich denn Qualit\u00e4t \u00fcberhaupt in eine C++ Software hineintesten?","og_url":"https:\/\/www.microconsult.de\/en\/ip_oo-test\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2026-01-29T23:00:00+00:00","article_modified_time":"2026-02-08T19:16:15+00:00","og_image":[{"width":849,"height":566,"url":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/oo.test_.jpg","type":"image\/jpeg"}],"author":"Renate Schultes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Renate Schultes","Estimated reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/ip_oo-test\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/ip_oo-test\/"},"author":{"name":"Renate Schultes","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/89c1748f96b6c21197360a857fa79c5a"},"headline":"Objektorientiertes Testen von Embedded-Software","datePublished":"2026-01-29T23:00:00+00:00","dateModified":"2026-02-08T19:16:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/ip_oo-test\/"},"wordCount":823,"commentCount":0,"image":{"@id":"https:\/\/www.microconsult.de\/ip_oo-test\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/oo.test_.jpg","keywords":["C++ Software Test","Designanforderungen","Embedded-Software-Test","objektorientiert Testen","Software-Qualit\u00e4t","Softwarearchitektur"],"articleSection":["Qualit\u00e4t und Sicherheit","Test und Debug"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/ip_oo-test\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/ip_oo-test\/","url":"https:\/\/www.microconsult.de\/ip_oo-test\/","name":"Object-oriented testing of embedded software - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.microconsult.de\/ip_oo-test\/#primaryimage"},"image":{"@id":"https:\/\/www.microconsult.de\/ip_oo-test\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/oo.test_.jpg","datePublished":"2026-01-29T23:00:00+00:00","dateModified":"2026-02-08T19:16:15+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/89c1748f96b6c21197360a857fa79c5a"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/ip_oo-test\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/ip_oo-test\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.microconsult.de\/ip_oo-test\/#primaryimage","url":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/oo.test_.jpg","contentUrl":"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/07\/oo.test_.jpg","width":849,"height":566,"caption":"Embedded-Software-Test objektorientiert f\u00fcr C++"},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/ip_oo-test\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"Objektorientiertes Testen von Embedded-Software"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/89c1748f96b6c21197360a857fa79c5a","name":"Renate Schultes","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/d82a4cfd395ce164dcf90fd5ee5f4eaf9bb9761c3283213fb2ce891033c5c771?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d82a4cfd395ce164dcf90fd5ee5f4eaf9bb9761c3283213fb2ce891033c5c771?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d82a4cfd395ce164dcf90fd5ee5f4eaf9bb9761c3283213fb2ce891033c5c771?s=96&d=mm&r=g","caption":"Renate Schultes"}}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/3107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=3107"}],"version-history":[{"count":1,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/3107\/revisions"}],"predecessor-version":[{"id":10911,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/3107\/revisions\/10911"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media\/3108"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=3107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=3107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=3107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}