{"id":47861,"date":"2022-06-06T12:52:38","date_gmt":"2022-06-06T16:52:38","guid":{"rendered":"https:\/\/sdtimes.com\/?p=47861"},"modified":"2022-08-24T12:17:09","modified_gmt":"2022-08-24T16:17:09","slug":"continuous-test-data-management-for-microservices","status":"publish","type":"post","link":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/","title":{"rendered":"Continuous test data management for microservices, Part 1: Key approaches"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Applying TDM to microservices is quite challenging. This is due to the fact that an application may have many services, each with its own underlying diverse data store. Also, there can be intricate dependencies between these services, resulting in a type of &#8216;spaghetti architecture.&#8217;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For these systems, TDM for end-to-end system tests can be quite complex. However, it lends itself very well to the<\/span> <a href=\"https:\/\/www.linkedin.com\/pulse\/optimizing-continuous-testing-test-data-management-shamim-ahmed\/\"><span style=\"font-weight: 400;\">continuous TDM<\/span><\/a><span style=\"font-weight: 400;\"> approach. As part of this approach, it is key to align TDM with the<\/span> <a href=\"https:\/\/martinfowler.com\/articles\/practical-test-pyramid.html\"><span style=\"font-weight: 400;\">test pyramid<\/span><\/a><span style=\"font-weight: 400;\"> concept.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Let\u2019s look at the TDM approaches for tests in the various layers of the pyramid.\u00a0<\/span><\/p>\n<h5><b>TDM Approach for Supporting Microservices Unit Tests<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">Unit tests test the code <\/span><i><span style=\"font-weight: 400;\">within<\/span><\/i><span style=\"font-weight: 400;\"> the microservice and at the lowest level of granularity. This is typically at a function or method level within a class or object. This is no different than how we do unit testing for other types of applications. Most test data for such tests should be synthetic. Such data is typically created by the developer or software development engineer in test (SDET), who uses \u201cas-code\u201d algorithmic techniques, such as combinatorial. Through this approach, teams can establish a high level of test data coverage. While running unit tests, we recommend that all dependencies outside the component (or even the function being tested) are stubbed out using mocks or<\/span> <a href=\"https:\/\/www.broadcom.com\/products\/software\/continuous-testing\/service-virtualization\"><span style=\"font-weight: 400;\">virtual services<\/span><\/a><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<h5><b>TDM Approach for Supporting Microservices Component or API Tests<\/b><\/h5>\n<p><i><span style=\"font-weight: 400;\">This step is key for TDM of microservices<\/span><\/i><span style=\"font-weight: 400;\">, since the other tests in the stack depend on it.\u00a0 In these tests, we prepare the test data for testing the microservice or component as a whole via its API.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">There are various ways of doing this depending on the context:\u00a0<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400;\"> Generate simple synthetic test data based on the<\/span> <a href=\"https:\/\/nordicapis.com\/generating-web-api-tests-from-an-openapi-specification\/\"><span style=\"font-weight: 400;\">API specs<\/span><\/a><span style=\"font-weight: 400;\">. This is typically used for property-based testing or unit testing of the API.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Generate more robust<\/span> <a href=\"https:\/\/academy.broadcom.com\/blog\/devops\/employing-agile-requirements-designer-to-support-api-testing?utm_campaign=ESD_FY22_Sales_Newsletters&amp;utm_medium=email&amp;_hsmi=200718168&amp;_hsenc=p2ANqtz--Qx66TiZLkTVSLZCoQ88PoKfAjKFegl_hjcEnkI5TzTE8Lm2aJlCuF3dJ5Znw__mOak6cQXK2oVzMfAhI9E_Oxt2tCUr-74KgoWn-dGNcx0fcpqC8&amp;utm_content=200718168&amp;utm_source=hs_email\"><span style=\"font-weight: 400;\">synthetic test data from API models<\/span><\/a><span style=\"font-weight: 400;\">, for example, by using a test modeling tool like Broadcom<\/span> <a href=\"https:\/\/www.broadcom.com\/products\/software\/continuous-testing\/agile-requirements-designer\"><span style=\"font-weight: 400;\">Agile Requirements Designer<\/span><\/a><span style=\"font-weight: 400;\">. This enables us to do more rigorous API testing, for example for regression tests.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Generate test data by<\/span> <a href=\"https:\/\/developers.google.com\/gdata\/articles\/wireshark\"><span style=\"font-weight: 400;\">traffic sniffing<\/span><\/a><span style=\"font-weight: 400;\"> a production instance of the service, for example, by using a tool like<\/span> <a href=\"https:\/\/www.wireshark.org\/\"><span style=\"font-weight: 400;\">Wireshark<\/span><\/a><span style=\"font-weight: 400;\">. This helps us create more production-like data. This approach is very useful if for some reason it isn\u2019t possible to take a subset of data from production instances.\u00a0<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Generate test data by<\/span> <a href=\"https:\/\/techdocs.broadcom.com\/us\/en\/ca-enterprise-software\/devops\/test-data-management\/4-9\/provisioning-test-data\/subset-production-data.html\"><span style=\"font-weight: 400;\">sub-setting<\/span><\/a><span style=\"font-weight: 400;\"> and<\/span> <a href=\"https:\/\/techdocs.broadcom.com\/us\/en\/ca-enterprise-software\/devops\/test-data-management\/4-9\/provisioning-test-data\/mask-production-data-with-fast-data-masker.html\"><span style=\"font-weight: 400;\">masking<\/span><\/a><span style=\"font-weight: 400;\"> test data from a production instance of the service, or by using data virtualization. Note that many microservice architectures do not allow direct access to the data store, so we may need special data access APIs to create such test data.\u00a0\u00a0<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Regardless of the approach, in most cases test data fabrication for a microservice must be prepared by the developer or producer of the microservice, and made available as part of service definition. Specifically, additional APIs should be provided to set up the test data for that component. This is necessary to allow for data encapsulation within a microservice. It is also required because different microservices may have various types of data stores, often with no direct access to the data.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This also allows the TDM of microservices applications to<\/span> <span style=\"font-weight: 400;\">re-use test data, which enables teams to scale tests at higher layers of the pyramid. For example, a system or end-to-end test may span hundreds of microservices, with each having its own unique encapsulated data storage. It would be very difficult to build test data for tests that span different microservices using traditional approaches.\u00a0\u00a0\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Again, for a single component API test, it is recommended that all dependencies from the component be virtualized to reduce the TDM burden placed on dependent systems.\u00a0<\/span><\/p>\n<h5><b>TDM Approach for Supporting Microservices Integration and Contract Tests<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">These tests validate the interaction between microservices based on behaviors defined in their API specifications.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The TDM principles used for such testing are generally the same as for the process for API testing described previously. The process goes as follows:\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For contract definition, we recommend using synthetic test data, for example, based on the API specs, to define the tests for the provider component.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The validated contract should be a recorded virtual service based on the provider service. This virtual service can then be used for consumer tests. Note that in this case, a virtual service recording forms the basis of the test data for the consumer test.\u00a0<\/span><\/p>\n<h5><b>TDM Approach for Supporting an X-service System Test or Transaction Test at the API Level\u00a0<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">In this type of test, we have to support a chain of API calls across multiple services. For example, this type of test may involve invoking services A, B, and C in succession.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The TDM approach for supporting this type of test is essentially the same as that for a single API test described above\u2014except that we need to set up the test data for each of the services involved in the transaction.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">However, an additional complexity is that you also need to ensure that the test data setup for each of these services (and the underlying services they depend on) are aligned, so the test can be successfully executed.<\/span> <a href=\"https:\/\/www.iaria.org\/conferences2020\/filesSERVICECOMPUTATION20\/10016_servicecomp.pdf\"><span style=\"font-weight: 400;\">Data synchronization across microservices<\/span><\/a><span style=\"font-weight: 400;\"> is largely a data management issue, not specific to TDM <em>per se<\/em>, so you need to ensure that your microservices architecture sufficiently addresses this requirement.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Assuming data synchronization between microservices is in place, the following approaches are recommended to make test management easier:\u00a0<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">As mentioned before, use<\/span> <a href=\"https:\/\/academy.broadcom.com\/blog\/devops\/employing-agile-requirements-designer-to-support-api-testing?utm_campaign=ESD_FY22_Sales_Newsletters&amp;utm_medium=email&amp;_hsmi=200718168&amp;_hsenc=p2ANqtz--Qx66TiZLkTVSLZCoQ88PoKfAjKFegl_hjcEnkI5TzTE8Lm2aJlCuF3dJ5Znw__mOak6cQXK2oVzMfAhI9E_Oxt2tCUr-74KgoWn-dGNcx0fcpqC8&amp;utm_content=200718168&amp;utm_source=hs_email\"><span style=\"font-weight: 400;\">model-based testing<\/span><\/a><span style=\"font-weight: 400;\"> to describe the cross-service system tests. This allows you to specify test data constraints for the test uniformly <\/span><i><span style=\"font-weight: 400;\">across affected services<\/span><\/i><span style=\"font-weight: 400;\">, so that that initial setup of test data is correct. This is done using the test data setup APIs we discussed above.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Since setting up test data definition across services is more time consuming, I recommend minimizing the number of cross-service tests, based on<\/span> <a href=\"https:\/\/www.broadcom.com\/products\/software\/continuous-testing\/test-case-design\"><span style=\"font-weight: 400;\">change impact testing<\/span><\/a><span style=\"font-weight: 400;\">. Run transaction tests only if the transaction, or any of the underlying components of the transaction, have changed. Again, this is a key principle of continuous testing that\u2019s aligned with the test pyramid.\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">If there have been no changes to a participating component or underlying sub-component, we recommend using a virtual service representation of that component. This will further help to reduce the TDM burden for that component.\u00a0<\/span><\/li>\n<\/ol>\n<h5><b>TDM Approach for Supporting End-to-End Business Process or User Acceptance Tests\u00a0<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">The TDM approach for these tests is similar to that for system tests described above, since user actions map to underlying API calls. Such tests are likely to span more components.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Many customers prefer to use real components, rather than virtual services, for user acceptance testing, which means that the TDM burden can be significant. As before, the key to reducing TDM complexity for such tests is to reduce the number of tests to the bare minimum, using techniques like change-impact testing, which was discussed above. I also recommend you use the change-impact approach to decide whether to use real components or their virtual services counterparts. If a set of components has changed as part of the release or deployment, it makes sense to use the actual components. However, if any dependent components are unchanged, and their test data has not been refreshed or is not readily available, then virtual services can be considered. <\/span><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Applying TDM to microservices is quite challenging. This is due to the fact that an application may have many services, each with its own underlying diverse data store. Also, there can be intricate dependencies between these services, resulting in a type of &#8216;spaghetti architecture.&#8217; For these systems, TDM for end-to-end system tests can be quite  &hellip; <a class=\"read-more\" href=\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/\">continue reading<\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":979,"featured_media":47862,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"cybocfi_hide_featured_image":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[1,11110],"tags":[1235,5246,10960],"coauthors":[15470],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Continuous test data management for microservices, Part 1: Key approaches - SD Times<\/title>\n<meta name=\"description\" content=\"Applying TDM to microservices is quite challenging since an application may have many services, each with its own underlying data store.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Continuous test data management for microservices, Part 1: Key approaches - SD Times\" \/>\n<meta property=\"og:description\" content=\"Applying TDM to microservices is quite challenging since an application may have many services, each with its own underlying data store.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/\" \/>\n<meta property=\"og:site_name\" content=\"SD Times\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SDTimesD2\" \/>\n<meta property=\"article:published_time\" content=\"2022-06-06T16:52:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-08-24T16:17:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sdtimes.com\/wp-content\/uploads\/2022\/06\/25ee4a3501f7a6e1587be75aaf319550.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"913\" \/>\n\t<meta property=\"og:image:height\" content=\"478\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Shamim Ahmed\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sdtimes\" \/>\n<meta name=\"twitter:site\" content=\"@sdtimes\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shamim Ahmed\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. 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:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/\"},\"author\":{\"name\":\"Shamim Ahmed\",\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/person\/528aee2962df9978d432f25b60887087\"},\"headline\":\"Continuous test data management for microservices, Part 1: Key approaches\",\"datePublished\":\"2022-06-06T16:52:38+00:00\",\"dateModified\":\"2022-08-24T16:17:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/\"},\"wordCount\":1213,\"publisher\":{\"@id\":\"https:\/\/sdtimes.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2022\/06\/25ee4a3501f7a6e1587be75aaf319550.jpg\",\"keywords\":[\"Broadcom\",\"microservices\",\"Test Data Management\"],\"articleSection\":[\"Latest News\",\"Sponsored\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/\",\"url\":\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/\",\"name\":\"Continuous test data management for microservices, Part 1: Key approaches - SD Times\",\"isPartOf\":{\"@id\":\"https:\/\/sdtimes.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2022\/06\/25ee4a3501f7a6e1587be75aaf319550.jpg\",\"datePublished\":\"2022-06-06T16:52:38+00:00\",\"dateModified\":\"2022-08-24T16:17:09+00:00\",\"description\":\"Applying TDM to microservices is quite challenging since an application may have many services, each with its own underlying data store.\",\"breadcrumb\":{\"@id\":\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#primaryimage\",\"url\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2022\/06\/25ee4a3501f7a6e1587be75aaf319550.jpg\",\"contentUrl\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2022\/06\/25ee4a3501f7a6e1587be75aaf319550.jpg\",\"width\":913,\"height\":478},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/sdtimes.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Continuous test data management for microservices, Part 1: Key approaches\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/sdtimes.com\/#website\",\"url\":\"https:\/\/sdtimes.com\/\",\"name\":\"SD Times\",\"description\":\"Software Development News\",\"publisher\":{\"@id\":\"https:\/\/sdtimes.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/sdtimes.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/sdtimes.com\/#organization\",\"name\":\"SD Times\",\"url\":\"https:\/\/sdtimes.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2014\/05\/deafaultlogo.png\",\"contentUrl\":\"https:\/\/sdtimes.com\/wp-content\/uploads\/2014\/05\/deafaultlogo.png\",\"width\":225,\"height\":90,\"caption\":\"SD Times\"},\"image\":{\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SDTimesD2\",\"https:\/\/x.com\/sdtimes\",\"https:\/\/www.linkedin.com\/company\/sdtimes\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/person\/528aee2962df9978d432f25b60887087\",\"name\":\"Shamim Ahmed\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/sdtimes.com\/#\/schema\/person\/image\/bef2ed7d56ef22565d20df67c031c6c6\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b0dd5f498197109bae58c1519e8dc6a4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b0dd5f498197109bae58c1519e8dc6a4?s=96&d=mm&r=g\",\"caption\":\"Shamim Ahmed\"},\"description\":\"Shamim Ahmed is Broadcom CTO for DevOps Solution Engineering\",\"url\":\"https:\/\/sdtimes.com\/author\/shamimahmed\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Continuous test data management for microservices, Part 1: Key approaches - SD Times","description":"Applying TDM to microservices is quite challenging since an application may have many services, each with its own underlying data store.","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:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/","og_locale":"en_US","og_type":"article","og_title":"Continuous test data management for microservices, Part 1: Key approaches - SD Times","og_description":"Applying TDM to microservices is quite challenging since an application may have many services, each with its own underlying data store.","og_url":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/","og_site_name":"SD Times","article_publisher":"https:\/\/www.facebook.com\/SDTimesD2","article_published_time":"2022-06-06T16:52:38+00:00","article_modified_time":"2022-08-24T16:17:09+00:00","og_image":[{"width":913,"height":478,"url":"https:\/\/sdtimes.com\/wp-content\/uploads\/2022\/06\/25ee4a3501f7a6e1587be75aaf319550.jpg","type":"image\/jpeg"}],"author":"Shamim Ahmed","twitter_card":"summary_large_image","twitter_creator":"@sdtimes","twitter_site":"@sdtimes","twitter_misc":{"Written by":"Shamim Ahmed","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#article","isPartOf":{"@id":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/"},"author":{"name":"Shamim Ahmed","@id":"https:\/\/sdtimes.com\/#\/schema\/person\/528aee2962df9978d432f25b60887087"},"headline":"Continuous test data management for microservices, Part 1: Key approaches","datePublished":"2022-06-06T16:52:38+00:00","dateModified":"2022-08-24T16:17:09+00:00","mainEntityOfPage":{"@id":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/"},"wordCount":1213,"publisher":{"@id":"https:\/\/sdtimes.com\/#organization"},"image":{"@id":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#primaryimage"},"thumbnailUrl":"https:\/\/sdtimes.com\/wp-content\/uploads\/2022\/06\/25ee4a3501f7a6e1587be75aaf319550.jpg","keywords":["Broadcom","microservices","Test Data Management"],"articleSection":["Latest News","Sponsored"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/","url":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/","name":"Continuous test data management for microservices, Part 1: Key approaches - SD Times","isPartOf":{"@id":"https:\/\/sdtimes.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#primaryimage"},"image":{"@id":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#primaryimage"},"thumbnailUrl":"https:\/\/sdtimes.com\/wp-content\/uploads\/2022\/06\/25ee4a3501f7a6e1587be75aaf319550.jpg","datePublished":"2022-06-06T16:52:38+00:00","dateModified":"2022-08-24T16:17:09+00:00","description":"Applying TDM to microservices is quite challenging since an application may have many services, each with its own underlying data store.","breadcrumb":{"@id":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#primaryimage","url":"https:\/\/sdtimes.com\/wp-content\/uploads\/2022\/06\/25ee4a3501f7a6e1587be75aaf319550.jpg","contentUrl":"https:\/\/sdtimes.com\/wp-content\/uploads\/2022\/06\/25ee4a3501f7a6e1587be75aaf319550.jpg","width":913,"height":478},{"@type":"BreadcrumbList","@id":"https:\/\/sdtimes.com\/microservices\/continuous-test-data-management-for-microservices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sdtimes.com\/"},{"@type":"ListItem","position":2,"name":"Continuous test data management for microservices, Part 1: Key approaches"}]},{"@type":"WebSite","@id":"https:\/\/sdtimes.com\/#website","url":"https:\/\/sdtimes.com\/","name":"SD Times","description":"Software Development News","publisher":{"@id":"https:\/\/sdtimes.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sdtimes.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sdtimes.com\/#organization","name":"SD Times","url":"https:\/\/sdtimes.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sdtimes.com\/#\/schema\/logo\/image\/","url":"https:\/\/sdtimes.com\/wp-content\/uploads\/2014\/05\/deafaultlogo.png","contentUrl":"https:\/\/sdtimes.com\/wp-content\/uploads\/2014\/05\/deafaultlogo.png","width":225,"height":90,"caption":"SD Times"},"image":{"@id":"https:\/\/sdtimes.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SDTimesD2","https:\/\/x.com\/sdtimes","https:\/\/www.linkedin.com\/company\/sdtimes\/"]},{"@type":"Person","@id":"https:\/\/sdtimes.com\/#\/schema\/person\/528aee2962df9978d432f25b60887087","name":"Shamim Ahmed","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sdtimes.com\/#\/schema\/person\/image\/bef2ed7d56ef22565d20df67c031c6c6","url":"https:\/\/secure.gravatar.com\/avatar\/b0dd5f498197109bae58c1519e8dc6a4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b0dd5f498197109bae58c1519e8dc6a4?s=96&d=mm&r=g","caption":"Shamim Ahmed"},"description":"Shamim Ahmed is Broadcom CTO for DevOps Solution Engineering","url":"https:\/\/sdtimes.com\/author\/shamimahmed\/"}]}},"_links":{"self":[{"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/posts\/47861"}],"collection":[{"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/users\/979"}],"replies":[{"embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/comments?post=47861"}],"version-history":[{"count":4,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/posts\/47861\/revisions"}],"predecessor-version":[{"id":47869,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/posts\/47861\/revisions\/47869"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/media\/47862"}],"wp:attachment":[{"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/media?parent=47861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/categories?post=47861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/tags?post=47861"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/sdtimes.com\/wp-json\/wp\/v2\/coauthors?post=47861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}