{"id":17161327,"url":"https://github.com/andreas-bauer/scout-plugin-demo","last_synced_at":"2025-10-24T11:39:51.937Z","repository":{"id":127476214,"uuid":"285080291","full_name":"andreas-bauer/scout-plugin-demo","owner":"andreas-bauer","description":"Plugin demo for Scout","archived":false,"fork":false,"pushed_at":"2023-10-20T13:25:27.000Z","size":2108,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-29T20:49:11.291Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreas-bauer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/CC-BY-SA-4.0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-04T19:33:57.000Z","updated_at":"2024-01-25T08:30:29.000Z","dependencies_parsed_at":"2024-12-02T08:47:03.749Z","dependency_job_id":null,"html_url":"https://github.com/andreas-bauer/scout-plugin-demo","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreas-bauer%2Fscout-plugin-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreas-bauer%2Fscout-plugin-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreas-bauer%2Fscout-plugin-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreas-bauer%2Fscout-plugin-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreas-bauer","download_url":"https://codeload.github.com/andreas-bauer/scout-plugin-demo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245301327,"owners_count":20593162,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-14T22:27:55.639Z","updated_at":"2025-10-24T11:39:51.862Z","avatar_url":"https://github.com/andreas-bauer.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\nSPDX-FileCopyrightText: 2020 Andreas Bauer\n\nSPDX-License-Identifier: CC-BY-SA-4.0\n--\u003e\n\n# Scout Plugin Demo\n\n![REUSE Compliance](https://github.com/andreas-bauer/scout-plugin-demo/workflows/REUSE%20Compliance/badge.svg)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## Introduction\n\nThis projects demonstrate how to write a plugin for the augmented exploratory testing software\n[EyeScout](https://eyeautomate.com/wp-content/themes/EyeAutomateTheme/resources/eyescout/EyeScoutManual.html).\n\nIt covers the following topics:\n\n- Working with different lifecycle hook methods.\n- Collect information from the current state.\n- Collect global information, like the amount of all states.\n- Collect user input information.\n- Paint text with a background box.\n- Paint circles with different colors next to text.\n- Generate a JSON report of a session.\n- Write log messages to a log file.\n\n## Build\n\nEnsure the `Demo.java` file is in the plugin folder of Scout.\nThan build the Java file with the `javac` command.\n\n`javac -cp \"../Scout.jar\" Demo.java`\n\nTested with Java `openjdk 1.8` and `openjdk 14.0.2`.\n\n## Impressions\n\nThe visual representation of the plugin is divided into two parts for a **global** state and the **current** state.\n\nIn the **global** state overall information of the whole test session is shown. This information consists of the product name of the test, the performed left and right clicks, a counter of how often the UI was painted, the number of all existing states, and the number of all issues.\nThe red dot next to the total issues emphasizes that issues exist.\n\nIn the **current** state, more detailed information about issues and visible actions are presented. Next to the issue counter is also a dot indicator. Additionally a list of all the reported text for each issue is presented. Next you can see a counter of all visible actions and also the status and type of every action.\n\nThe crawling of information to be presented is done during a change in the state and then read inside the paint UI hook method. This ensures that more costly operations are only done if the state is really changed and not because of a mouse movement triggers a repaint. Observe the *Paint Counter* to get a feeling of how often the UI is repainted.\n\n![Screenshots with issues in state](./images/screenshot1.png)\n![Screenshots without any issues in state](./images/screenshot2.png)\n\n## Reports\n\nThe demo plugin also generates a report with some information that was collected during a testing session.\n\nSee example:\n\n```json\n{\n  \"product\": \"Traveler\",\n  \"total-actions\": {\n    \"LeftClickAction\": 5,\n    \"DragStartAction\": 1,\n    \"RightClickAction\": 0,\n    \"DragDropAction\": 1\n  },\n  \"issues\": [\n      \"Wrong title text\",\n      \"Wrong button text\"\n  ],\n  \"coverageInPercent\":100\n}\n```\n\n## License\n\nCopyright (c) 2020 Andreas Bauer\n\nThis work (source code) is licensed under [MIT](./LICENSES/MIT.txt).\n\nFiles other than source code are licensed as follows:\n\n- Documentation and screenshots are licensed under [CC BY-SA 4.0](./LICENSES/CC-BY-SA-4.0.txt).\n\nSee the [LICENSES](./LICENSES/) folder in the root of this project for license details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreas-bauer%2Fscout-plugin-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreas-bauer%2Fscout-plugin-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreas-bauer%2Fscout-plugin-demo/lists"}