{"id":376533,"date":"2026-11-02T18:13:31","date_gmt":"2026-11-02T18:13:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/qa-runner\/"},"modified":"2026-11-02T18:13:17","modified_gmt":"2026-11-02T18:13:17","slug":"mandragora-qa-test-manager","status":"publish","type":"plugin","link":"https:\/\/ewe.wordpress.org\/plugins\/mandragora-qa-test-manager\/","author":9706861,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.4","requires_php":"8.2","requires_plugins":null,"header_name":"Mandragora QA Test Manager","header_author":"Alexander Vasilev","header_description":"Manual QA test runs for a small internal team: suites, cases, runs, results, comments and issues.","assets_banners_color":"b4b2a3","last_updated":"2026-11-02 18:13:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/alordiel\/mandragora-qa-test-manager","header_author_uri":"https:\/\/profiles.wordpress.org\/alordiel\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":122,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"alordiel","date":"2026-11-02 18:13:17","revision":3780455}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3780455,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3780455,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3780455,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3780455,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3780455,"resolution":"1","location":"assets","locale":"","width":2628,"height":842},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3780455,"resolution":"2","location":"assets","locale":"","width":2636,"height":1448},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3780455,"resolution":"3","location":"assets","locale":"","width":2640,"height":1238},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3780455,"resolution":"4","location":"assets","locale":"","width":2634,"height":954},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3780455,"resolution":"5","location":"assets","locale":"","width":2630,"height":1302}},"screenshots":{"1":"QA runs dashboard - list of the test runs with their progress.","2":"Single QA run dashboard - presents the test cases and their assignees and progress.","3":"Case library - every case belongs to a suite.","4":"Suites.","5":"Settings - notifications and managing the users who hold QA roles."}},"plugin_section":[],"plugin_tags":[7615,153217,290360,290361,1591],"plugin_category":[],"plugin_contributors":[83487],"plugin_business_model":[],"class_list":["post-376533","plugin","type-plugin","status-publish","hentry","plugin_tags-qa","plugin_tags-quality-assurance","plugin_tags-test-cases","plugin_tags-test-management","plugin_tags-testing","plugin_contributors-alordiel","plugin_committers-alordiel"],"banners":{"banner":"https:\/\/ps.w.org\/mandragora-qa-test-manager\/assets\/banner-772x250.jpg?rev=3780455","banner_2x":"https:\/\/ps.w.org\/mandragora-qa-test-manager\/assets\/banner-1544x500.jpg?rev=3780455","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mandragora-qa-test-manager\/assets\/icon-128x128.jpg?rev=3780455","icon_2x":"https:\/\/ps.w.org\/mandragora-qa-test-manager\/assets\/icon-256x256.jpg?rev=3780455","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mandragora-qa-test-manager\/assets\/screenshot-1.png?rev=3780455","caption":"QA runs dashboard - list of the test runs with their progress."},{"src":"https:\/\/ps.w.org\/mandragora-qa-test-manager\/assets\/screenshot-2.png?rev=3780455","caption":"Single QA run dashboard - presents the test cases and their assignees and progress."},{"src":"https:\/\/ps.w.org\/mandragora-qa-test-manager\/assets\/screenshot-3.png?rev=3780455","caption":"Case library - every case belongs to a suite."},{"src":"https:\/\/ps.w.org\/mandragora-qa-test-manager\/assets\/screenshot-4.png?rev=3780455","caption":"Suites."},{"src":"https:\/\/ps.w.org\/mandragora-qa-test-manager\/assets\/screenshot-5.png?rev=3780455","caption":"Settings - notifications and managing the users who hold QA roles."}],"raw_content":"<!--section=description-->\n<p>Mandragora QA Test Manager gives a small team a place inside wp-admin to plan and record manual testing.<\/p>\n\n<p>Write your test cases once, group them into suites, then start a <strong>run<\/strong> whenever you need to test a release or an environment. Testers work through the run case by case and mark each one <strong>pass<\/strong>, <strong>fail<\/strong>, <strong>blocked<\/strong> or <strong>skipped<\/strong>. Failures get a comment thread and an issue that stays attached to the case, so the next person to test it sees what is still broken.<\/p>\n\n<p>Everything is entered by people. Mandragora QA Test Manager does not run automated tests, execute code or take screenshots.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Case library<\/strong> \u2013 test cases with steps, expected result and priority, organised into suites.<\/li>\n<li><strong>Runs<\/strong> \u2013 test any subset of cases against a named environment and version. Several runs can be open at once, and a finished run can be cloned for a retest.<\/li>\n<li><strong>Results<\/strong> \u2013 one status per case per run, with who set it and when, so runs stay comparable over time.<\/li>\n<li><strong>Assignment<\/strong> \u2013 add testers to a run and hand individual cases to people. Testers can also claim cases for themselves.<\/li>\n<li><strong>Comments<\/strong> \u2013 rich-text comments on any result, with threaded replies up to three levels deep.<\/li>\n<li><strong>Issues<\/strong> \u2013 raise an issue on a failing case, optionally linked to your bug tracker. It stays visible on that case in every later run until it is resolved.<\/li>\n<li><strong>Email notifications<\/strong> \u2013 a person gets an email when someone else assigns them to a run or a case. Assigning yourself sends nothing, and notifications can be paused in Settings.<\/li>\n<li><strong>Team management<\/strong> \u2013 site administrators grant QA roles to existing WordPress users from the Settings screen.<\/li>\n<\/ul>\n\n<h4>Roles<\/h4>\n\n<p>The plugin adds two roles and three capabilities. Access is always checked by capability, so you can grant these capabilities to other roles as well.<\/p>\n\n<ul>\n<li><strong>QA Tester<\/strong> \u2013 sees everything, creates and works through runs, records results, comments, and raises and resolves issues.<\/li>\n<li><strong>QA Admin<\/strong> \u2013 everything a tester can do, plus editing the case library and suites, abandoning runs and changing settings.<\/li>\n<li><strong>Administrator<\/strong> \u2013 full QA access automatically.<\/li>\n<\/ul>\n\n<p>A QA role is added alongside the user's existing WordPress role. Removing someone from the QA team takes away only the QA role.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>Mandragora QA Test Manager does not contact any external service and does not track usage. All data stays in your WordPress database. Emails are sent through your site's own <code>wp_mail()<\/code>, and only to users of your site. User avatars are shown through WordPress's standard avatar function.<\/p>\n\n<h4>Source code<\/h4>\n\n<p>The admin screen is a Vue application. The plugin ships the compiled bundle in <code>build\/<\/code> together with its uncompiled source in <code>src\/<\/code>, <code>package.json<\/code> and <code>vite.config.js<\/code>.<\/p>\n\n<p>The full development repository is public at <a href=\"https:\/\/github.com\/alordiel\/mandragora-qa-test-manager\">github.com\/alordiel\/mandragora-qa-test-manager<\/a>.<\/p>\n\n<p>To rebuild the bundle from source:<\/p>\n\n<ol>\n<li>Install Node.js 20 or later.<\/li>\n<li>Run <code>npm install<\/code> in the plugin directory.<\/li>\n<li>Run <code>npm run build<\/code>. This writes <code>build\/mqatm-admin-page.js<\/code> and <code>build\/mqatm-admin-page.css<\/code>.<\/li>\n<\/ol>\n\n<h4>Third-party libraries<\/h4>\n\n<p>The compiled bundle includes these open-source libraries, all under GPL-compatible licenses:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/vuejs\/core\">Vue<\/a> \u2013 MIT<\/li>\n<li><a href=\"https:\/\/github.com\/vuejs\/router\">Vue Router<\/a> \u2013 MIT<\/li>\n<li><a href=\"https:\/\/github.com\/vuejs\/pinia\">Pinia<\/a> \u2013 MIT<\/li>\n<li><a href=\"https:\/\/github.com\/slab\/quill\">Quill<\/a> and <a href=\"https:\/\/github.com\/slab\/parchment\">Parchment<\/a> \u2013 BSD-3-Clause<\/li>\n<li><a href=\"https:\/\/github.com\/vueup\/vue-quill\">VueQuill<\/a> \u2013 MIT<\/li>\n<li><a href=\"https:\/\/github.com\/slab\/delta\">quill-delta<\/a>, <a href=\"https:\/\/github.com\/lodash\/lodash\">lodash-es<\/a>, <a href=\"https:\/\/github.com\/primus\/eventemitter3\">eventemitter3<\/a> \u2013 MIT<\/li>\n<li><a href=\"https:\/\/github.com\/jhchen\/fast-diff\">fast-diff<\/a> \u2013 Apache-2.0<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>mandragora-qa-test-manager<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the plugin from the <strong>Plugins \u2192 Add New<\/strong> screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Open <strong>Mandragora QA Test Manager<\/strong> in the admin menu.<\/li>\n<li>As a site administrator, go to <strong>Mandragora QA Test Manager \u2192 Settings<\/strong> and add the people who will test, choosing QA Tester or QA Admin for each.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20mandragora%20qa%20test%20manager%20run%20automated%20tests%3F\"><h3>Does Mandragora QA Test Manager run automated tests?<\/h3><\/dt>\n<dd><p>No. It records manual testing done by people.<\/p><\/dd>\n<dt id=\"who%20can%20see%20the%20mandragora%20qa%20test%20manager%20screens%3F\"><h3>Who can see the Mandragora QA Test Manager screens?<\/h3><\/dt>\n<dd><p>Only users with the <code>mqatm_view<\/code> capability. The plugin adds two roles that have it, QA Tester and QA Admin, and site administrators always have full access.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20when%20i%20delete%20the%20plugin%3F\"><h3>What happens to my data when I delete the plugin?<\/h3><\/dt>\n<dd><p>Deleting the plugin always removes its roles, capabilities and settings. Your suites, cases, runs, results, comments and issues are kept, unless you turn on <strong>Delete all QA data when the plugin is uninstalled<\/strong> in Settings first.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20mandragora%20qa%20test%20manager%3F\"><h3>Can I translate Mandragora QA Test Manager?<\/h3><\/dt>\n<dd><p>Yes. Every string, including the admin screen, uses the <code>mandragora-qa-test-manager<\/code> text domain. Translations are managed on <a href=\"https:\/\/translate.wordpress.org\/\">translate.wordpress.org<\/a>, and <code>languages\/mandragora-qa-test-manager.pot<\/code> is included as a template.<\/p><\/dd>\n<dt id=\"which%20emails%20does%20the%20plugin%20send%3F\"><h3>Which emails does the plugin send?<\/h3><\/dt>\n<dd><p>Two, and only when someone assigns <em>another<\/em> person:<\/p>\n\n<ul>\n<li>when someone adds you to a run, and<\/li>\n<li>when someone assigns you a case within a run.<\/li>\n<\/ul>\n\n<p>You can pause both in Settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Manual QA test runs inside wp-admin: suites, test cases, runs, pass\/fail results, comments and issues for small testing teams.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/376533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=376533"}],"author":[{"embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/alordiel"}],"wp:attachment":[{"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=376533"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=376533"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=376533"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=376533"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=376533"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ewe.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=376533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}