{"id":442,"date":"2014-03-31T11:26:05","date_gmt":"2014-03-31T11:26:05","guid":{"rendered":"https:\/\/www.genrocket.com\/?p=442"},"modified":"2022-09-05T16:44:11","modified_gmt":"2022-09-05T16:44:11","slug":"software-testing-reactive-vs-proactive","status":"publish","type":"post","link":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/","title":{"rendered":"Software Testing: Reactive vs Proactive"},"content":{"rendered":"<p>How proactive do you want to be when it comes to fully testing your software application\u2019s source code? It\u2019s an interesting question that can\u2019t easily be answered unless you can ask the greater question, \u201c<strong>How does one quantify how proactive one is in fully testing their application\u2019s source code<\/strong>?&#8221;<\/p>\n<h2><b>Measuring how much of your code you are testing <\/b><\/h2>\n<p>Fully tested source code is a measure of the quantity of source code within your application that is actually being tested. A deeper definition would be a measure of the quantity of complex business logic within your source code that is actually being tested.<\/p>\n<p>The higher the percentage of code being tested is directly proportional to how proactive you are in fully testing your source code. Thus, the likelihood or statistical chance of a bug entering your source code and making it to your production environment when new code is created or current code is updated is the direct inverse of the percentage of code being fully tested; this is the proactive to reactive ratio.<\/p>\n<p>For example, if only 10% of your code is being tested in a proactive way, then there is a 90% chance or likelihood that the rest of your source code will have minor to major bugs causing a disproportionate reaction. A disproportionate amount of time and resources will thus be given to:<\/p>\n<ul>\n<li><span style=\"font-size: 12pt;\">Discovering where the bugs exist<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Determining if and how much data was corrupted<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Writing code to make data corrections<\/span><\/li>\n<li><span style=\"font-size: 12pt;\">Modifying code to make business logic corrections<\/span><\/li>\n<\/ul>\n<p>However, if you\u2019re being proactive, you would be writing white box tests to further avoid being reactive to more bug fixes in your application\u2019s source code in the future.<\/p>\n<h2><b>How to fully test your application\u2019s source code<\/b><\/h2>\n<p>So how do you fully test your application\u2019s source code? You fully test your application\u2019s source code through white box testing. And what is white box testing? <strong>White box testing<\/strong> is a method of <a href=\"https:\/\/www.genrocket.com\/software-testing-solutions\/\">software testing<\/a> that examines the internal structures or workings of an application, as opposed to its functionality (<a href=\"https:\/\/en.wikipedia.org\/wiki\/White-box_testing\">Wikipedia<\/a>). Integration tests are a good example of white box testing.<\/p>\n<h3><b>Why black box testing is not enough<\/b><\/h3>\n<p>So why not use black box testing? Isn\u2019t it good enough? Not really\u2026 <strong>Black box testing<\/strong> is a method of software testing that examines the functionality of an application without peering into its internal structures or workings (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Black-box_testing\">Wikipedia<\/a>). Functional tests are a good example of black box testing.<\/p>\n<p>You can\u2019t fully test your source code if you\u2019re using black box testing only; you\u2019ll be lucky if you can fully test 10% of your source code. Fully testing your application\u2019s source code can only come from true white box testing.<\/p>\n<h2><b>Banking application example <\/b><\/h2>\n<p>Take a look at the following activity diagram that describes the business logic of executing a bank transfer from a savings account to a checking account; how many tests do you see?<\/p>\n<p><a href=\"https:\/\/www.genrocket.com\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Activity-Diagram.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1377\" src=\"https:\/\/www.genrocket.com\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Activity-Diagram.png\" alt=\"bank-transfer-activity-diagram\" width=\"794\" height=\"506\" \/><\/a><\/p>\n<p>Let\u2019s count them:<\/p>\n<p><strong>Test 1<\/strong><\/p>\n<ul>\n<li>Assert savings not enabled<\/li>\n<li>Assert checking enabled<\/li>\n<\/ul>\n<p><strong>Test 2<\/strong><\/p>\n<ul>\n<li>Assert savings enabled<\/li>\n<li>Assert checking not enabled<\/li>\n<\/ul>\n<p><strong>Test 3<\/strong><\/p>\n<ul>\n<li>Assert savings enabled<\/li>\n<li>Assert checking enabled<\/li>\n<li>Assert monthly max transfers exceeded<\/li>\n<\/ul>\n<p><strong>Test 4<\/strong><\/p>\n<ul>\n<li>Assert savings enabled<\/li>\n<li>Assert checking enabled<\/li>\n<li>Assert monthly max transfers not exceeded<\/li>\n<\/ul>\n<p><strong>Test 5<\/strong><\/p>\n<ul>\n<li>Assert savings enabled<\/li>\n<li>Assert checking enabled<\/li>\n<li>Assert monthly max transfers not exceeded<\/li>\n<li>Assert amount is less than balance<\/li>\n<\/ul>\n<p><strong>Test 6<\/strong><\/p>\n<ul>\n<li>Assert savings enabled<\/li>\n<li>Assert checking enabled<\/li>\n<li>Assert monthly max transfers not exceeded<\/li>\n<li>Assert amount is greater or equal to balance<\/li>\n<li>Assert savings is debited the value of amount<\/li>\n<li>Assert checking is credited the value of amount<\/li>\n<li>Assert a transaction history record was created<\/li>\n<li>Assert transaction history record attributes contain the correct information<\/li>\n<\/ul>\n<p>For the business logic defined within this activity diagram, <strong>a minimum of six white box tests will be necessary<\/strong> to fully test transferring money from a savings account to a checking account.<\/p>\n<h3><b>Couldn\u2019t I fully test that application with just black box testing? \u00a0<\/b><\/h3>\n<p>Could you test all six of these conditions via black box testing, most likely not.<\/p>\n<ol>\n<li>You\u2019ll most likely not have an activity diagram that gives you a view into methods business logic.<\/li>\n<li>Even if you had an activity diagram that gives you a view into the methods business logic, it\u2019s not reliable because you can\u2019t be sure that other business logic exists within the method that needs to be tested without physically looking at the code.<\/li>\n<li>Through black box testing, it would be very difficult and laborious to setup the conditions for each test; at best one would setup ideal conditions to black box the last test, test number six.<\/li>\n<\/ol>\n<h3><b>I must be fully testing with those 6 white box tests then\u2026right?<\/b><\/h3>\n<p>Even if you were able to peer into the source code and write the six white box tests necessary to fully test the transfer from savings to checking business logic, is the code now fully tested? No, not completely.<\/p>\n<p>In the middle of the activity diagram, there is another black-box, checking monthly max transfers exceeded, that can only truly be tested via white box testing. Do you know what the code does? Let\u2019s take a look.<\/p>\n<p><a href=\"https:\/\/www.genrocket.com\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Business-Logic.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1378\" src=\"https:\/\/www.genrocket.com\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Business-Logic.png\" alt=\"bank-transfer-business-logic\" width=\"783\" height=\"293\" \/><\/a><\/p>\n<p>And until this black box of business logic is fully white box tested, then the opportunity for a savings to checking transfer to perform incorrectly is reactively high.<\/p>\n<p>Let\u2019s say that initially, when this code went to production, the business logic that detects when max transfers are exceeded works perfectly; and then a minor addition to the business logic is made, but the code is not fully white box tested and thus a small but fatal bug is accidentally introduced. If the fatally bugged source code is introduced into the production environment, the fallout could be catastrophic.<\/p>\n<h3><b>The danger of not fully testing<\/b><\/h3>\n<p>If the banking application\u2019s source code was servicing a base of 10,000,000 users and averaging 10,000 savings to checking transfers every 60 seconds, even if the bug were to exist in the production environment for as little as one hour, it could potentially affect over 600,000 users and millions of rows of data in the production database. The amount of time and number of resources that would have to react to correcting such a catastrophe would be extensive and extremely costly.<\/p>\n<p>Does this sound scary? It should scare you a little or maybe a lot. If you\u2019re not proactively white box testing your application\u2019s source code, it\u2019s only a matter time before you will have to react disproportionally to the bugs that will inevitably get introduced into your production environment, wreaking havoc, costing you and your customers a lot of unnecessary pain.<\/p>\n<p>This emphasizes the point of doing proactive vs reactive testing and potentially using a solution like <a href=\"https:\/\/www.genrocket.com\">GenRocket<\/a> to accomplish full test code coverage.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How proactive do you want to be when it comes to fully testing your software application\u2019s source code? It\u2019s an interesting question that can\u2019t easily be answered unless you can ask the greater question, \u201cHow does one quantify how proactive [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":10405,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[353],"tags":[356,357],"class_list":["post-442","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-white-box-testing","tag-proactive-testing","tag-white-box-testing"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Software Testing: Reactive vs Proactive.<\/title>\n<meta name=\"description\" content=\"How proactive do you want to be when it comes to fully testing your software application\u2019s source code? It\u2019s an interesting question that can\u2019t easily\" \/>\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.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Software Testing: Reactive vs Proactive.\" \/>\n<meta property=\"og:description\" content=\"How proactive do you want to be when it comes to fully testing your software application\u2019s source code? It\u2019s an interesting question that can\u2019t easily\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/\" \/>\n<meta property=\"og:site_name\" content=\"GenRocket Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-03-31T11:26:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-05T16:44:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Activity-Diagram-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"794\" \/>\n\t<meta property=\"og:image:height\" content=\"506\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Hycel Taylor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hycel Taylor\" \/>\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:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/\"},\"author\":{\"name\":\"Hycel Taylor\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/#\/schema\/person\/7efce0dccc5685a50a0c0490d3b988f2\"},\"headline\":\"Software Testing: Reactive vs Proactive\",\"datePublished\":\"2014-03-31T11:26:05+00:00\",\"dateModified\":\"2022-09-05T16:44:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/\"},\"wordCount\":1131,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Activity-Diagram-1.png\",\"keywords\":[\"Proactive Testing\",\"White Box Testing\"],\"articleSection\":[\"White Box Testing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/\",\"url\":\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/\",\"name\":\"Software Testing: Reactive vs Proactive.\",\"isPartOf\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Activity-Diagram-1.png\",\"datePublished\":\"2014-03-31T11:26:05+00:00\",\"dateModified\":\"2022-09-05T16:44:11+00:00\",\"description\":\"How proactive do you want to be when it comes to fully testing your software application\u2019s source code? It\u2019s an interesting question that can\u2019t easily\",\"breadcrumb\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#primaryimage\",\"url\":\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Activity-Diagram-1.png\",\"contentUrl\":\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Activity-Diagram-1.png\",\"width\":794,\"height\":506,\"caption\":\"Test Data Management - GenRocket\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.genrocket.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software Testing: Reactive vs Proactive\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/#website\",\"url\":\"https:\/\/www.genrocket.com\/blog\/\",\"name\":\"GenRocket Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.genrocket.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/#organization\",\"name\":\"GenRocket Blog\",\"url\":\"https:\/\/www.genrocket.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2024\/03\/favicon.png\",\"contentUrl\":\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2024\/03\/favicon.png\",\"width\":32,\"height\":32,\"caption\":\"GenRocket Blog\"},\"image\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/#\/schema\/person\/7efce0dccc5685a50a0c0490d3b988f2\",\"name\":\"Hycel Taylor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/aac44f3a4d967dc8121a4e16a45ab2bb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/aac44f3a4d967dc8121a4e16a45ab2bb?s=96&d=mm&r=g\",\"caption\":\"Hycel Taylor\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Software Testing: Reactive vs Proactive.","description":"How proactive do you want to be when it comes to fully testing your software application\u2019s source code? It\u2019s an interesting question that can\u2019t easily","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.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/","og_locale":"en_US","og_type":"article","og_title":"Software Testing: Reactive vs Proactive.","og_description":"How proactive do you want to be when it comes to fully testing your software application\u2019s source code? It\u2019s an interesting question that can\u2019t easily","og_url":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/","og_site_name":"GenRocket Blog","article_published_time":"2014-03-31T11:26:05+00:00","article_modified_time":"2022-09-05T16:44:11+00:00","og_image":[{"width":794,"height":506,"url":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Activity-Diagram-1.png","type":"image\/png"}],"author":"Hycel Taylor","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Hycel Taylor","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#article","isPartOf":{"@id":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/"},"author":{"name":"Hycel Taylor","@id":"https:\/\/www.genrocket.com\/blog\/#\/schema\/person\/7efce0dccc5685a50a0c0490d3b988f2"},"headline":"Software Testing: Reactive vs Proactive","datePublished":"2014-03-31T11:26:05+00:00","dateModified":"2022-09-05T16:44:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/"},"wordCount":1131,"commentCount":0,"publisher":{"@id":"https:\/\/www.genrocket.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#primaryimage"},"thumbnailUrl":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Activity-Diagram-1.png","keywords":["Proactive Testing","White Box Testing"],"articleSection":["White Box Testing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/","url":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/","name":"Software Testing: Reactive vs Proactive.","isPartOf":{"@id":"https:\/\/www.genrocket.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#primaryimage"},"image":{"@id":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#primaryimage"},"thumbnailUrl":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Activity-Diagram-1.png","datePublished":"2014-03-31T11:26:05+00:00","dateModified":"2022-09-05T16:44:11+00:00","description":"How proactive do you want to be when it comes to fully testing your software application\u2019s source code? It\u2019s an interesting question that can\u2019t easily","breadcrumb":{"@id":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#primaryimage","url":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Activity-Diagram-1.png","contentUrl":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2014\/03\/Bank-Transfer-Activity-Diagram-1.png","width":794,"height":506,"caption":"Test Data Management - GenRocket"},{"@type":"BreadcrumbList","@id":"https:\/\/www.genrocket.com\/blog\/software-testing-reactive-vs-proactive\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.genrocket.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Software Testing: Reactive vs Proactive"}]},{"@type":"WebSite","@id":"https:\/\/www.genrocket.com\/blog\/#website","url":"https:\/\/www.genrocket.com\/blog\/","name":"GenRocket Blog","description":"","publisher":{"@id":"https:\/\/www.genrocket.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.genrocket.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.genrocket.com\/blog\/#organization","name":"GenRocket Blog","url":"https:\/\/www.genrocket.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.genrocket.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2024\/03\/favicon.png","contentUrl":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2024\/03\/favicon.png","width":32,"height":32,"caption":"GenRocket Blog"},"image":{"@id":"https:\/\/www.genrocket.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.genrocket.com\/blog\/#\/schema\/person\/7efce0dccc5685a50a0c0490d3b988f2","name":"Hycel Taylor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.genrocket.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/aac44f3a4d967dc8121a4e16a45ab2bb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/aac44f3a4d967dc8121a4e16a45ab2bb?s=96&d=mm&r=g","caption":"Hycel Taylor"}}]}},"_links":{"self":[{"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/posts\/442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/comments?post=442"}],"version-history":[{"count":4,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/posts\/442\/revisions"}],"predecessor-version":[{"id":10911,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/posts\/442\/revisions\/10911"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/media\/10405"}],"wp:attachment":[{"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/media?parent=442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/categories?post=442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/tags?post=442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}