Skip to content

[AT] deepin-music AT-SPI 测试套件 - #781

Draft
re2zero wants to merge 1 commit into
linuxdeepin:masterfrom
re2zero:agent/at/20260821183509
Draft

[AT] deepin-music AT-SPI 测试套件#781
re2zero wants to merge 1 commit into
linuxdeepin:masterfrom
re2zero:agent/at/20260821183509

Conversation

@re2zero

@re2zero re2zero commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

AT-SPI 测试套件 — deepin-music(音乐)

本 PR 为 deepin-music 自动生成 AT-SPI YAML 测试套件。

内容概要

  • 51 个可自动化用例,覆盖 16 个模块(主菜单、右键菜单、工具栏、歌曲导入、窗口操作、搜索、演唱者、专辑、我的收藏、我的歌单、所有音乐、键盘交互、音乐格式、任务栏、打开关闭、用户场景)
  • 66 个不可自动化用例(含原因说明)
  • 运行时 AT-SPI 元素树:102 元素,29 已覆盖
  • context-bundle 元素-功能-接口映射表
  • cases_mapped.yaml 含 annotation(测试界面、测试功能、AT元素引用)

验证结果

  • Gate 3(映射完整性): PASS ✅
  • Gate 5(语义安全): PASS ✅

图谱说明

MCP 不可用,跳过 UI 图谱推导,仅基于运行时元素表,无源码全集对照。

提交范围

  • tests/at/yaml/elements.yaml
  • tests/at/yaml/**/*.suite.yaml
  • tests/at/at-tree.yaml / at-tree-annotated.yaml
  • tests/at/context-bundle.md
  • tests/at/cases_mapped.yaml

中间产物(modules/、report.md)未随本 PR 提交,覆盖率报告通过 issue 附件交付。

Summary by Sourcery

Establish comprehensive AT-SPI coverage and accessibility mappings for deepin-music.

New Features:

  • Add an AT-SPI YAML test suite for deepin-music covering 51 automatable cases across core music-library, playback, search, playlist, toolbar, window, keyboard, format, and user-flow scenarios.
  • Add accessibility element inventories and annotated UI trees for deepin-music to support automated test targeting.
  • Add mappings between test cases, UI elements, interfaces, and feature contexts, including reasons for unsupported cases.

Enhancements:

  • Document the deepin-music accessibility tree and element-to-function relationships for future test maintenance.

Tests:

  • Add 51 automatable AT-SPI cases and record 66 cases that cannot be automated with their limitations.

Generate complete AT-SPI YAML test suite for deepin-music (音乐) application:
- 51 automatable test cases across 16 modules (主菜单, 右键菜单, 工具栏,
  歌曲导入, 窗口操作, 搜索, 演唱者, 专辑, 我的收藏, 我的歌单, 所有音乐,
  键盘交互, 音乐格式, 任务栏, 打开关闭, 用户场景)
- 66 unsupported cases documented with reasons
- Runtime AT-SPI element tree (102 elements, 29 covered)
- Context bundle with element-function-interface mapping tables
- Cases mapped with annotations (测试界面, 测试功能, AT元素引用)

Gate 3 (Mapping Completeness) and Gate 5 (Semantic Safety) both pass.
@deepin-ci-robot

Copy link
Copy Markdown

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: re2zero

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@sourcery-ai

sourcery-ai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Reviewer's Guide

Adds a complete AT-SPI-based test suite for deepin-music, including an extracted accessibility tree, an elements catalog, context documentation, and multiple YAML suites mapping manual cases to automated and unsupported scenarios.

File-Level Changes

Change Details Files
Introduce static AT-SPI accessibility tree definitions (raw and annotated) for deepin-music to drive test generation and coverage analysis.
  • Add at-tree.yaml capturing the full deepin-music widget hierarchy with roles, class names, classifications and reusable anchors for actions/states.
  • Add at-tree-annotated.yaml containing a parallel tree structure enriched with human-readable annotations (classification, comments, draft statuses) for each node.
tests/at/at-tree.yaml
tests/at/at-tree-annotated.yaml
Define a reusable catalog of AT-SPI elements and selectors plus a context bundle mapping UI elements, features and operations.
  • Add elements.yaml listing logical element identifiers with name/role pairs used by all suites as selectors.
  • Add context-bundle.md documenting element-to-feature mappings, per-screen element groupings, and action/assertion patterns for functional flows.
tests/at/yaml/elements.yaml
tests/at/context-bundle.md
Create a comprehensive cases_mapped.yaml that maps product test cases to AT-SPI steps and marks non-automatable scenarios with reasons.
  • Encode 51 automatable cases as scripted step sequences (actions, selectors, keyboard operations, file dialog interactions) with annotations linking back to manual case IDs and modules.
  • Mark 66 unsupported cases with status and explicit reasons (e.g., external hardware, systemic performance tests, Linglong/UOS AI dependencies) while preserving their metadata for reporting.
tests/at/cases_mapped.yaml
Add module-specific YAML suites that organize AT-SPI cases per functional area of deepin-music.
  • Introduce multiple *.suite.yaml files (per Chinese-named module directories) that group related cases (main menu, context menus, toolbar, imports, playlists, favorites, all music, search, artists, albums, keyboard interaction, formats, taskbar, open/close, user scenarios).
  • Ensure suites reference shared elements from elements.yaml and align with the mappings defined in cases_mapped.yaml for consistency.
tests/at/yaml/音乐/音乐.suite.yaml
tests/at/yaml/音乐_界面操作_主菜单/音乐_界面操作_主菜单.suite.yaml
tests/at/yaml/音乐_界面操作_右键菜单/音乐_界面操作_右键菜单.suite.yaml
tests/at/yaml/音乐_界面操作_工具栏/音乐_界面操作_工具栏.suite.yaml
tests/at/yaml/音乐_界面操作_歌曲导入/音乐_界面操作_歌曲导入.suite.yaml
tests/at/yaml/音乐_窗口/音乐_窗口.suite.yaml
tests/at/yaml/音乐_窗口_所有音乐/音乐_窗口_所有音乐.suite.yaml
tests/at/yaml/音乐_窗口_我的收藏/音乐_窗口_我的收藏.suite.yaml
tests/at/yaml/音乐_窗口_我的歌单/音乐_窗口_我的歌单.suite.yaml
tests/at/yaml/音乐_窗口_搜索/音乐_窗口_搜索.suite.yaml
tests/at/yaml/音乐_窗口_演唱者/音乐_窗口_演唱者.suite.yaml
tests/at/yaml/音乐_外部交互_任务栏/音乐_外部交互_任务栏.suite.yaml
tests/at/yaml/音乐_打开_关闭/音乐_打开_关闭.suite.yaml
tests/at/yaml/音乐_用户场景/音乐_用户场景.suite.yaml
tests/at/yaml/音乐_适配_键盘交互/音乐_适配_键盘交互.suite.yaml
tests/at/yaml/音乐_音乐格式/音乐_音乐格式.suite.yaml
tests/at/yaml/音乐_音乐动效/音乐_音乐动效.suite.yaml
tests/at/yaml/音乐_四性_性能/音乐_四性_性能.suite.yaml
tests/at/yaml/音乐_四性_安全/音乐_四性_安全.suite.yaml
tests/at/yaml/音乐_ai自然语言支持/音乐_ai自然语言支持.suite.yaml
tests/at/yaml/音乐_外部交互_系统事件响应机制/音乐_外部交互_系统事件响应机制.suite.yaml
tests/at/yaml/音乐_外部交互_锁屏界面/音乐_外部交互_锁屏界面.suite.yaml
tests/at/yaml/音乐_安装_卸载/音乐_安装_卸载.suite.yaml
tests/at/yaml/音乐_适配/音乐_适配.suite.yaml
tests/at/yaml/音乐_适配_触摸屏/音乐_适配_触摸屏.suite.yaml
tests/at/yaml/音乐_适配_触摸板/音乐_适配_触摸板.suite.yaml
tests/at/yaml/音乐_bug转用例/音乐_bug转用例.suite.yaml
tests/at/yaml/音乐_商业定制_中孚定制xwininfo/音乐_商业定制_中孚定制xwininfo.suite.yaml
tests/at/yaml/音乐_玲珑/音乐_玲珑.suite.yaml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants