{"id":4758,"date":"2016-03-19T22:32:05","date_gmt":"2016-03-19T22:32:05","guid":{"rendered":"https:\/\/www.process.st\/templates\/software-testing-tutorial\/"},"modified":"2024-02-28T16:42:38","modified_gmt":"2024-02-28T16:42:38","slug":"software-testing-tutorial","status":"publish","type":"post","link":"https:\/\/www.process.st\/templates\/software-testing-tutorial\/","title":{"rendered":"Software Testing Tutorial"},"content":{"rendered":"<section id=\"introduction\">\n<h2> Introduction <\/h2>\n<div class=\"image-content\">\n<figure>\n   <a href=\"https:\/\/www.process.st\/templates\/wp-content\/uploads\/2024\/02\/gv3E1W8z-SkIZAi-QcJAoA.png\" alt=\"Introduction\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.process.st\/templates\/wp-content\/uploads\/2024\/02\/gv3E1W8z-SkIZAi-QcJAoA.png\" \/> <\/a><br \/>\n  <\/figure>\n<\/p><\/div>\n<div class=\"text-content\">\n<p>Nobody likes to doubt their own ability, especially when it comes to something as logic-driven as software engineering. In an ideal world, there would be no need for this software testing tutorial, and all programmers would sit safe in the knowledge that they wouldn't have to spend the next <a href=\"http:\/\/stackoverflow.com\/questions\/1415445\/what-was-your-longest-time-to-fix-a-bug\" target=\"_blank\" rel=\"nofollow noopener\">18 months<\/a> revisiting the same code.<\/p>\n<p>Sadly, however, <a href=\"https:\/\/www.process.st\/writing-mistakes-to-avoid\/\" target=\"_blank\" rel=\"nofollow noopener\">human error<\/a> is here to stay.<\/p>\n<p>To help you negate as much of this as possible, we here at <a href=\"https:\/\/www.process.st\/\" target=\"_blank\" rel=\"nofollow noopener\">Process Street<\/a> decided to rustle up our very own software testing tutorial! Use this bad boy to finely comb you individual sections of code before submitting them to your <a href=\"https:\/\/www.process.st\/templates\/software-deployment\/\" target=\"_blank\" rel=\"nofollow noopener\">software deployment<\/a>.<\/p>\n<p>Just a heads-up before we begin, this tutorial only covers unit testing (testing the code to make sure that it works when standing alone).<\/p>\n<p>Let's get started!<\/p>\n<\/p><\/div>\n<\/section>\n<section id=\"preparation\">\n<h2> Preparation: <\/h2>\n<\/section>\n<section id=\"record-the-basic-details\">\n<h2> Record the basic details <\/h2>\n<div class=\"text-content\">\n<p>First up in our software testing tutorial, you need to record the details of the procedure in order to fully document the process. Do so by filling in the form fields below.<\/p>\n<\/p><\/div>\n<div class=\"text-field-content form-field-content\">\n<div class=\"form-group\">\n   <label> Testing Technician <\/label><br \/>\n   <input type=\"text\" placeholder=\"Something will be typed here...\" disabled=\"disabled\" class=\"form-control\" \/>\n  <\/div>\n<\/p><\/div>\n<div class=\"text-field-content form-field-content\">\n<div class=\"form-group\">\n   <label> User Story Link <\/label><br \/>\n   <input type=\"text\" placeholder=\"Something will be typed here...\" disabled=\"disabled\" class=\"form-control\" \/>\n  <\/div>\n<\/p><\/div>\n<div class=\"textarea-field-content form-field-content\">\n<div class=\"form-group\">\n   <label> User Story Description <\/label><br \/>\n   <textarea placeholder=\"Something will be typed here...\" rows=\"3\" disabled=\"disabled\" class=\"form-control\"><\/textarea>\n  <\/div>\n<\/p><\/div>\n<div class=\"date-field-content form-field-content\">\n<div class=\"form-group\">\n   <label> Testing Date <\/label> <\/p>\n<div class=\"date-container\">\n    <button type=\"button\" disabled=\"disabled\" class=\"btn btn-default\"> <i class=\"fa fa-calendar btn-icon\"><\/i> Date will be set here <\/button>\n   <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/section>\n<section id=\"log-in-to-your-code-repository\">\n<h2> Log in to your code repository <\/h2>\n<div class=\"text-content\">\n<p>Now you need to<strong> log <\/strong>in to<strong> your code repository<\/strong>. Hey, we never said that we were starting off with hard tasks!<\/p>\n<p>Whether you're a fan of <a href=\"https:\/\/github.com\/\" rel=\"nofollow noopener\" target=\"_blank\">GitHub<\/a>, <a href=\"https:\/\/bitbucket.org\/\" rel=\"nofollow noopener\" target=\"_blank\">Bitbucket<\/a> or <a href=\"http:\/\/www.cloudforge.com\/\" rel=\"nofollow noopener\" target=\"_blank\">CloudForge<\/a>, head on over to your repo of choice and log in to your account.<\/p>\n<\/p><\/div>\n<\/section>\n<section id=\"open-the-relevant-fork-or-branch\">\n<h2> Open the relevant fork or branch <\/h2>\n<div class=\"text-content\">\n<p>Next up in this software testing tutorial is the task of finding the<strong> relevant fork or branch of code to conduct your unit tests on<\/strong>. This should be well-documented, and so there should be no confusion as to what you are doing.<\/p>\n<p><strong>Record a link<\/strong> to the relevant fork or branch using the <strong>form field<\/strong> below.<\/p>\n<\/p><\/div>\n<div class=\"text-field-content form-field-content\">\n<div class=\"form-group\">\n   <label> Project Link <\/label><br \/>\n   <input type=\"text\" placeholder=\"Something will be typed here...\" disabled=\"disabled\" class=\"form-control\" \/>\n  <\/div>\n<\/p><\/div>\n<div class=\"text-content\">\n<p>If you are having trouble finding the relevant section of code, make sure that you are searching in the correct section of your test environment. Once you've found it, <strong>open up the project<\/strong>.<\/p>\n<\/p><\/div>\n<\/section>\n<section id=\"isolate-your-testing-area\">\n<h2> Isolate your testing area <\/h2>\n<div class=\"image-content\">\n<figure>\n   <a href=\"https:\/\/www.process.st\/templates\/wp-content\/uploads\/2024\/02\/mIg6tL8QHKL1trEynedEhA.png\" alt=\"Isolate your testing area\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.process.st\/templates\/wp-content\/uploads\/2024\/02\/mIg6tL8QHKL1trEynedEhA.png\" \/> <\/a><br \/>\n  <\/figure>\n<\/p><\/div>\n<div class=\"text-content\">\n<p>Now that you have the correct version of code in front of you, the next step is to<strong> identify the area which you will be testing<\/strong>. Much like finding the relevant version of code, this should be fairly obvious, owing to the fact that you should have already been told what you are testing.<\/p>\n<p>For example, if you have been assigned the task of unit testing a particular bug fix, you should&nbsp;have the information to identify where the bug was and how it has been fixed. Ergo, you can isolate the section of code which has been changed. <strong>Use breakpoints to isolate the area<\/strong> and move on.<\/p>\n<\/p><\/div>\n<\/section>\n<section id=\"base-unit-test\">\n<h2> Base Unit Test: <\/h2>\n<\/section>\n<section id=\"set-up-the-conditions\">\n<h2> Set up the conditions <\/h2>\n<div class=\"text-content\">\n<p>In order for your unit test to... well, actually&nbsp;<em>test<\/em> anything, you need to <strong>set up the conditions&nbsp;for it to run<\/strong> on. Note that we can't give you a set of conditions to abide by, as this will&nbsp;<em>always<\/em> vary, depending on the test you are running.<\/p>\n<p>As such, <strong>record the conditions<\/strong> you specify using the<strong> form field<\/strong> below.<\/p>\n<\/p><\/div>\n<div class=\"textarea-field-content form-field-content\">\n<div class=\"form-group\">\n   <label> Testing Conditions <\/label><br \/>\n   <textarea placeholder=\"Something will be typed here...\" rows=\"3\" disabled=\"disabled\" class=\"form-control\"><\/textarea>\n  <\/div>\n<\/p><\/div>\n<div class=\"text-content\">\n<p>Your conditions should be set up to<strong> provide all of the information the code under review will need to run<\/strong>. For example, this may involve just entering a couple of <strong>variables<\/strong> to test a basic function or creating&nbsp;entirely new database records.<\/p>\n<p>Make sure that you <strong>double check<\/strong> these conditions, as the unit test will be no good if the test itself is broken or calling on incorrect information.<\/p>\n<\/p><\/div>\n<\/section>\n<section id=\"ensure-that-the-test-verifies-your-results\">\n<h2> Ensure that the test verifies your results <\/h2>\n<div class=\"text-content\">\n<p>Rather than just testing to see if you can visibly get the desired outcome, your unit test needs to <strong>verify that your predicted outcome takes place<\/strong>. After all, why rely on your own judgement or interpretation of the results if you unit test can have it covered?<\/p>\n<p>Once again, the method of implementing this test varies greatly, but in general, just ensure that your unit test specifically confirms that your desired outcome is present. Usually, this will entail the use of a <strong>&quot;system.assert()&quot; function<\/strong>.<\/p>\n<\/p><\/div>\n<\/section>\n<section id=\"run-the-test\">\n<h2> Run the test <\/h2>\n<div class=\"image-content\">\n<figure>\n   <a href=\"https:\/\/www.process.st\/templates\/wp-content\/uploads\/2024\/02\/mqJ3nn4A68nXu2QpC39Jgg.png\" alt=\"Run the test\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.process.st\/templates\/wp-content\/uploads\/2024\/02\/mqJ3nn4A68nXu2QpC39Jgg.png\" \/> <\/a><br \/>\n  <\/figure>\n<\/p><\/div>\n<div class=\"text-content\">\n<p>You have the code under review, with the unit test written and double checked; now it's time for the&nbsp;big event in your software testing tutorial! It's time to<strong> run your unit test<\/strong>.<\/p>\n<p>This will, once again, depend on the kind of test you are running. For example, if you are testing a method, you will need to call on that method. When testing a trigger, an action will need to be performed to cause the trigger to fire.<\/p>\n<\/p><\/div>\n<\/section>\n<section id=\"assessment\">\n<h2> Assessment: <\/h2>\n<\/section>\n<section id=\"save-your-test-results\">\n<h2> Save your test results <\/h2>\n<div class=\"text-content\">\n<p>Now that you've run your unit test and have the precious<strong> results<\/strong>, you'll need to <strong>save and organize them<\/strong>. This may be done automatically, depending on your method of testing, but if so then you should still check for the presence of the save.<\/p>\n<p><strong>Upload a copy<\/strong> of your test results to the<strong> form field<\/strong> below.<\/p>\n<\/p><\/div>\n<div class=\"file-field-content form-field-content\">\n<div class=\"form-group\">\n   <label> Test Results <\/label> <\/p>\n<div class=\"file-container\">\n    <button type=\"button\" disabled=\"disabled\" class=\"btn btn-default\"> <i class=\"fa fa-upload btn-icon\"><\/i> File will be uploaded here <\/button>\n   <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"text-content\">\n<p>If your unit test does not automatically save your results (and you have not already &nbsp;entered a command at the end of the test to rectify this), you'll need to alter your test code to save the results to a file of your choice. After doing this, re-run your test and ensure that your results have been saved.<\/p>\n<\/p><\/div>\n<\/section>\n<section id=\"assess-the-code\">\n<h2> Assess the code <\/h2>\n<div class=\"image-content\">\n<figure>\n   <a href=\"https:\/\/www.process.st\/templates\/wp-content\/uploads\/2024\/02\/itCqMngmO6uS8vskMXhMvA.png\" alt=\"Assess the code\" target=\"_blank\" rel=\"noopener\"> <img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.process.st\/templates\/wp-content\/uploads\/2024\/02\/itCqMngmO6uS8vskMXhMvA.png\" \/> <\/a><br \/>\n  <\/figure>\n<\/p><\/div>\n<div class=\"text-content\">\n<p>The final step in the software testing tutorial is to<strong> assess your test results<\/strong>. Compare the outputs from the test to what&nbsp;<em>should<\/em> have happened, and if the new code doesn't make the cut, then so be it.<\/p>\n<p><strong>Record the status<\/strong> of the code using the <strong>dropdown field<\/strong> below.<\/p>\n<\/p><\/div>\n<div class=\"select-field-content form-field-content\">\n<div class=\"form-group\">\n   <label> Code Status <\/label><br \/>\n   <select disabled=\"disabled\" class=\"form-control\"><option value=\"An option will be selected here\">An option will be selected here<\/option><\/select>\n  <\/div>\n<\/p><\/div>\n<div class=\"text-content\">\n<p>Remember that it's not your job (at least in this process) to correct code when it comes back negative. Instead, you need to<strong> contact the developer<\/strong> responsible for the new or altered code and <strong>inform them<\/strong> of the test failure; it's also worth<strong> providing your test results<\/strong> so that the dev can get more insight into what is actually going wrong.<\/p>\n<p>Congratulations on completing the software testing tutorial! Enjoy your tried-and-tested new code in all of its glory.<\/p>\n<\/p><\/div>\n<\/section>\n<section id=\"sources\">\n<h2> Sources: <\/h2>\n<div class=\"text-content\">\n<p><a href=\"https:\/\/www.profitbricks.com\/\" rel=\"nofollow noopener\" target=\"_blank\">Drue Placette<\/a> -&nbsp;<a href=\"https:\/\/blog.profitbricks.com\/top-source-code-repository-hosts\/\" rel=\"nofollow noopener\" target=\"_blank\">45 of the Top Source Code Repository Hosts<\/a><\/p>\n<p><a href=\"http:\/\/www.tutorialspoint.com\/\" target=\"_blank\" rel=\"nofollow noopener\">TutorialsPoint<\/a> -&nbsp;<a href=\"http:\/\/www.tutorialspoint.com\/software_testing\/\" rel=\"nofollow noopener\" target=\"_blank\">Software Testing Tutorial<\/a><\/p>\n<p><a href=\"http:\/\/programmers.stackexchange.com\/\" target=\"_blank\" rel=\"nofollow noopener\">StackExchange<\/a> -&nbsp;<a href=\"http:\/\/programmers.stackexchange.com\/questions\/79068\/what-is-the-difference-between-debugging-and-testing\" rel=\"nofollow noopener\" target=\"_blank\">What is the Difference Between Debugging and Testing? [Thread]<\/a><\/p>\n<p><a href=\"https:\/\/developer.salesforce.com\/page\/User:Jesse_Lorenz\" target=\"_blank\" rel=\"nofollow noopener\">Jesse Lorenz<\/a> -&nbsp;<a href=\"https:\/\/developer.salesforce.com\/page\/How_to_Write_Good_Unit_Tests\" rel=\"nofollow noopener\" target=\"_blank\">How to Write Good Unit Tests<\/a><\/p>\n<p><a href=\"http:\/\/stackoverflow.com\/\" target=\"_blank\" rel=\"nofollow noopener\">StackOverflow<\/a> -&nbsp;<a href=\"http:\/\/stackoverflow.com\/questions\/3258733\/new-to-unit-testing-how-to-write-great-tests\" rel=\"nofollow noopener\" target=\"_blank\">New to Unit Testing, How To Write Great Tests? [Closed Thread]<\/a><\/p>\n<p><a href=\"https:\/\/twitter.com\/tommcfarlin\" target=\"_blank\" rel=\"nofollow noopener\">Tom McFarlin<\/a> -&nbsp;<a href=\"http:\/\/code.tutsplus.com\/articles\/the-beginners-guide-to-unit-testing-what-is-unit-testing--wp-25728\" rel=\"nofollow noopener\" target=\"_blank\">The Beginner\u2019s Guide to Unit Testing: What Is Unit Testing?<\/a><\/p>\n<p><a href=\"https:\/\/msdn.microsoft.com\/en-us\" target=\"_blank\" rel=\"nofollow noopener\">Microsoft Developer Network<\/a> -&nbsp;<a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/hh694602.aspx\" rel=\"nofollow noopener\" target=\"_blank\">Unit Test Basics<\/a><\/p>\n<p><a href=\"http:\/\/blog.stevensanderson.com\/\" target=\"_blank\" rel=\"nofollow noopener\">Steve Sanderson<\/a> -&nbsp;<a href=\"http:\/\/blog.stevensanderson.com\/2009\/08\/24\/writing-great-unit-tests-best-and-worst-practises\/\" rel=\"nofollow noopener\" target=\"_blank\">Writing Great Unit Tests: Best and Worst Practices<\/a><\/p>\n<p><a href=\"https:\/\/www.toptal.com\/resume\/sergey-kolodiy\" target=\"_blank\" rel=\"nofollow noopener\">Sergey Kolodiy<\/a> -&nbsp;<a href=\"https:\/\/www.toptal.com\/qa\/how-to-write-testable-code-and-why-it-matters\" rel=\"nofollow noopener\" target=\"_blank\">Unit Tests, How to Write Testable Code and Why it Matters<\/a><\/p>\n<\/p><\/div>\n<\/section>\n<section id=\"relevant-checklists\">\n<h2> Relevant Checklists: <\/h2>\n<div class=\"text-content\">\n<p><a href=\"https:\/\/www.process.st\/templates\/git-workflow\/\" target=\"_blank\" rel=\"nofollow noopener\">Git Workflow<\/a><\/p>\n<p><a href=\"https:\/\/www.process.st\/templates\/user-story-template\/\" target=\"_blank\" rel=\"nofollow noopener\">User Story Template<\/a><\/p>\n<p><a href=\"https:\/\/www.process.st\/templates\/sprint-planning\/\" target=\"_blank\" rel=\"nofollow noopener\">Sprint Planning<\/a><\/p>\n<p><a href=\"https:\/\/www.process.st\/templates\/scrum-project-management\/\" target=\"_blank\" rel=\"nofollow noopener\">Scrum Project Management<\/a><\/p>\n<p><a href=\"https:\/\/www.process.st\/templates\/software-deployment\/\" target=\"_blank\" rel=\"nofollow noopener\">Software Deployment<\/a><\/p>\n<p><a href=\"https:\/\/www.process.st\/templates\/software-debugging-process\/\" target=\"_blank\" rel=\"nofollow noopener\">Software Debugging Process<\/a><\/p>\n<\/p><\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Nobody likes to doubt their own ability, especially when it comes to something as logic-driven as software engineering. In an ideal world, there would be no need for this software testing tutorial, and all programmers would sit safe in the knowledge that they wouldn't have to spend the next 18 months revisiting the same [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":4759,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"ep_exclude_from_search":false,"cover_icon_emoji":"","cover_icon_url":"","tasks_count":"15","template_description":"Run this checklist every time your code is altered.","template_id":"r3bVYmMj8ygTrpXTL8FFAQ","task_0":"Introduction","task_slug_0":"introduction","task_1":"Preparation:","task_slug_1":"preparation","task_2":"Record the basic details","task_slug_2":"record-the-basic-details","task_3":"Log in to your code repository","task_slug_3":"log-in-to-your-code-repository","task_4":"Open the relevant fork or branch","task_slug_4":"open-the-relevant-fork-or-branch","task_5":"Isolate your testing area","task_slug_5":"isolate-your-testing-area","task_6":"Base Unit Test:","task_slug_6":"base-unit-test","task_7":"Set up the conditions","task_slug_7":"set-up-the-conditions","task_8":"Ensure that the test verifies your results","task_slug_8":"ensure-that-the-test-verifies-your-results","task_9":"Run the test","task_slug_9":"run-the-test","task_10":"Assessment:","task_slug_10":"assessment","task_11":"Save your test results","task_slug_11":"save-your-test-results","task_12":"Assess the code","task_slug_12":"assess-the-code","task_13":"Sources:","task_slug_13":"sources","task_14":"Relevant Checklists:","task_slug_14":"relevant-checklists","task_15":"","task_slug_15":"","task_16":"","task_slug_16":"","task_17":"","task_slug_17":"","task_18":"","task_slug_18":"","task_19":"","task_slug_19":"","task_20":"","task_slug_20":"","task_21":"","task_slug_21":"","task_22":"","task_slug_22":"","task_23":"","task_slug_23":"","task_24":"","task_slug_24":"","task_25":"","task_slug_25":"","task_26":"","task_slug_26":"","task_27":"","task_slug_27":"","task_28":"","task_slug_28":"","task_29":"","task_slug_29":"","task_30":"","task_slug_30":"","task_31":"","task_slug_31":"","task_32":"","task_slug_32":"","task_33":"","task_slug_33":"","task_34":"","task_slug_34":"","task_35":"","task_slug_35":"","task_36":"","task_slug_36":"","task_37":"","task_slug_37":"","task_38":"","task_slug_38":"","task_39":"","task_slug_39":"","task_40":"","task_slug_40":"","task_41":"","task_slug_41":"","task_42":"","task_slug_42":"","task_43":"","task_slug_43":"","task_44":"","task_slug_44":"","task_45":"","task_slug_45":"","task_46":"","task_slug_46":"","task_47":"","task_slug_47":"","task_48":"","task_slug_48":"","task_49":"","task_slug_49":"","task_50":"","task_slug_50":"","task_51":"","task_slug_51":"","task_52":"","task_slug_52":"","task_53":"","task_slug_53":"","task_54":"","task_slug_54":"","task_55":"","task_slug_55":"","task_56":"","task_slug_56":"","task_57":"","task_slug_57":"","task_58":"","task_slug_58":"","task_59":"","task_slug_59":"","task_60":"","task_slug_60":"","task_61":"","task_slug_61":"","task_62":"","task_slug_62":"","task_63":"","task_slug_63":"","task_64":"","task_slug_64":"","task_65":"","task_slug_65":"","task_66":"","task_slug_66":"","task_67":"","task_slug_67":"","task_68":"","task_slug_68":"","task_69":"","task_slug_69":"","task_70":"","task_slug_70":"","task_71":"","task_slug_71":"","task_72":"","task_slug_72":"","task_73":"","task_slug_73":"","task_74":"","task_slug_74":"","task_75":"","task_slug_75":"","task_76":"","task_slug_76":"","task_77":"","task_slug_77":"","task_78":"","task_slug_78":"","task_79":"","task_slug_79":"","task_80":"","task_slug_80":"","task_81":"","task_slug_81":"","task_82":"","task_slug_82":"","task_83":"","task_slug_83":"","task_84":"","task_slug_84":"","task_85":"","task_slug_85":"","task_86":"","task_slug_86":"","task_87":"","task_slug_87":"","task_88":"","task_slug_88":"","task_89":"","task_slug_89":"","task_90":"","task_slug_90":"","task_91":"","task_slug_91":"","task_92":"","task_slug_92":"","task_93":"","task_slug_93":"","task_94":"","task_slug_94":"","task_95":"","task_slug_95":"","task_96":"","task_slug_96":"","task_97":"","task_slug_97":"","task_98":"","task_slug_98":"","task_99":"","task_slug_99":"","footnotes":""},"categories":[5,7,16,31],"tags":[],"class_list":["post-4758","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-featured","category-miscellaneous","category-quality-assurance","category-software"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.process.st\/templates\/wp-json\/wp\/v2\/posts\/4758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.process.st\/templates\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.process.st\/templates\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.process.st\/templates\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.process.st\/templates\/wp-json\/wp\/v2\/comments?post=4758"}],"version-history":[{"count":0,"href":"https:\/\/www.process.st\/templates\/wp-json\/wp\/v2\/posts\/4758\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.process.st\/templates\/wp-json\/wp\/v2\/media\/4759"}],"wp:attachment":[{"href":"https:\/\/www.process.st\/templates\/wp-json\/wp\/v2\/media?parent=4758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.process.st\/templates\/wp-json\/wp\/v2\/categories?post=4758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.process.st\/templates\/wp-json\/wp\/v2\/tags?post=4758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}