Guide Claude on writing end-to-end browser tests with Vaadin TestBench in Vaadin 25. This skill should be used when the user asks to "write an end-to-end test", "write a browser test", "use TestBench", "create a page object", "test in a real browser", "integration test a Vaadin app", "visual regression test", "cross-browser test", or needs help with TestBench Element API, ElementQuery, page objects, or TestBenchTestCase.
64
77%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/testbench-testing/SKILL.mdQuality
Discovery
89%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a strong skill description with excellent trigger term coverage and completeness. Its main weakness is that the 'what' portion could be more specific about the concrete actions the skill enables beyond just 'writing tests'. The description also uses imperative voice ('Guide Claude on...') rather than third person declarative, though this is a minor stylistic issue.
Suggestions
Replace the opening 'Guide Claude on writing' with a third-person declarative listing of concrete actions, e.g., 'Creates end-to-end browser tests, builds page objects, configures visual regression baselines, and sets up cross-browser test suites using Vaadin TestBench in Vaadin 25.'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description names the domain (Vaadin TestBench, Vaadin 25) and mentions some concepts like page objects, ElementQuery, TestBenchTestCase, but doesn't list concrete actions beyond 'writing end-to-end browser tests'. It lacks specifics like 'create element queries', 'set up visual regression baselines', 'configure cross-browser runners', etc. | 2 / 3 |
Completeness | Clearly answers both 'what' (writing end-to-end browser tests with Vaadin TestBench in Vaadin 25) and 'when' (explicit 'Use when' clause with multiple trigger phrases and scenarios). The trigger guidance is thorough and explicit. | 3 / 3 |
Trigger Term Quality | Excellent coverage of natural trigger terms: 'end-to-end test', 'browser test', 'TestBench', 'page object', 'visual regression test', 'cross-browser test', 'integration test a Vaadin app', plus technical terms like 'ElementQuery', 'TestBenchTestCase'. These are terms users would naturally use. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive with specific technology references (Vaadin TestBench, Vaadin 25, TestBenchTestCase, ElementQuery). Very unlikely to conflict with generic testing skills or other framework-specific testing skills. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a solid, actionable skill with excellent code examples covering TestBench's core API, page objects, and complex component interactions. Its main weaknesses are missing workflow guidance for project setup and test execution, some unnecessary explanatory text that Claude doesn't need, and a monolithic structure that could benefit from splitting advanced topics into separate files.
Suggestions
Add a workflow section covering project setup (Maven dependencies), starting the application, running tests, and verifying results — this is critical context that's currently missing.
Remove or significantly trim the 'What TestBench Is' section — Claude doesn't need to be told what Selenium is or what a real browser does.
Remove the duplicate ElementQuery key methods list since those methods are already demonstrated in the code example directly above it.
Consider splitting complex component examples and visual regression testing guidance into separate referenced files to improve progressive disclosure.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The 'What TestBench Is' section explains concepts Claude already knows (what Selenium is, what a real browser is). The 'When to Use TestBench' section is useful but somewhat verbose. The ElementQuery key methods list partially duplicates what's already shown in the code examples above it. Overall mostly efficient but could be tightened. | 2 / 3 |
Actionability | Provides fully executable Java code examples for basic tests (JUnit 4 and 5), page objects, ElementQuery usage, and complex component interactions. Code is copy-paste ready with realistic scenarios like login flows, grid interaction, and dialog handling. | 3 / 3 |
Workflow Clarity | The skill covers individual test patterns well but lacks a clear end-to-end workflow for setting up and running TestBench tests — there's no guidance on project setup (Maven/Gradle dependencies), how to start the application before tests, or how to run the tests. For a testing skill, missing the setup-run-verify workflow is a notable gap. No validation checkpoints are provided. | 2 / 3 |
Progressive Disclosure | The content is well-structured with clear sections and headers, but it's a fairly long monolithic document with no references to supporting files. The complex components section and best practices could be split out. The reference to the 'ui-unit-testing' skill is a good cross-reference, but overall the document could benefit from better progressive disclosure for advanced topics like visual regression testing or cross-browser configuration. | 2 / 3 |
Total | 9 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
e47fdfe
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.