@ohos-cpf/3rdloop 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +245 -425
- package/bin/3rdloop.mjs +46 -46
- package/lib/cli.js +781 -740
- package/lib/config-cmd.js +452 -0
- package/lib/config.js +318 -317
- package/lib/doctor.js +113 -113
- package/lib/exit-codes.js +30 -30
- package/lib/opencode.js +155 -155
- package/lib/orch.js +426 -426
- package/lib/queries.js +263 -263
- package/lib/step.js +325 -325
- package/lib/ui.js +222 -222
- package/lib/update.js +280 -0
- package/lib/workflow.js +308 -290
- package/lib/workflows.js +131 -131
- package/package.json +50 -50
- package/vendor/Server/Agent/SkillSelector/README.md +343 -343
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -207
- package/vendor/Server/Agent/SkillSelector/index.js +14 -14
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -313
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -161
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -144
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -433
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -382
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +59 -59
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -422
- package/vendor/Server/Brain/Brain.js +686 -686
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -621
- package/vendor/Server/Brain/PlanPersistence.js +196 -196
- package/vendor/Server/Brain/SkillExecutor.js +251 -251
- package/vendor/Server/Brain/index.js +11 -11
- package/vendor/Server/CLI/cli.js +275 -243
- package/vendor/Server/CLI/deveco-code/index.js +71 -0
- package/vendor/Server/CLI/deveco-code.js +5 -0
- package/vendor/Server/CLI/opencode/index.js +817 -804
- package/vendor/Server/CLI/opencode.js +5 -5
- package/vendor/Server/DbUse/MessageArchive.js +61 -61
- package/vendor/Server/DbUse/StorageManager.js +107 -107
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -94
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -114
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -157
- package/vendor/Server/DbUse/index.js +160 -160
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -279
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -133
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -262
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -279
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -1759
- package/vendor/Server/FlexRunner/index.js +12 -12
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -523
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -341
- package/vendor/Server/Knowledge/index.js +33 -33
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -1133
- package/vendor/Server/LoopEngine/index.js +11 -11
- package/vendor/Server/Orchestrator/Orchestrator.js +0 -3
- package/vendor/Server/Orchestrator/StepNode.js +312 -312
- package/vendor/Server/Orchestrator/index.js +13 -13
- package/vendor/Server/Routes/controllers/BrainController.js +241 -241
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -1125
- package/vendor/Server/Routes/controllers/HealthController.js +44 -44
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -355
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -788
- package/vendor/Server/Routes/controllers/StatsController.js +57 -57
- package/vendor/Server/Routes/controllers/StreamController.js +67 -67
- package/vendor/Server/Routes/library/logger.js +179 -179
- package/vendor/Server/Routes/library/zipArchive.js +172 -172
- package/vendor/Server/Routes/router/Router.js +204 -204
- package/vendor/Server/Routes/routes/brain.js +47 -47
- package/vendor/Server/Routes/routes/flexrunner.js +72 -72
- package/vendor/Server/Routes/routes/health.js +28 -28
- package/vendor/Server/Routes/routes/index.js +57 -57
- package/vendor/Server/Routes/routes/knowledge.js +55 -55
- package/vendor/Server/Routes/routes/loopengine.js +58 -58
- package/vendor/Server/Routes/routes/orchestrator.js +61 -61
- package/vendor/Server/Routes/routes/registry.js +97 -97
- package/vendor/Server/Routes/routes/stats.js +23 -23
- package/vendor/Server/Routes/routes/stream.js +30 -30
- package/vendor/Server/Routes/server.js +203 -202
- package/vendor/Server/Routes/sse/SseHub.js +308 -308
- package/vendor/Server/Skills/acceptance-check/SKILL.md +191 -174
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -52
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -77
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_EVIDENCE_VERIFICATION.md +70 -0
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +320 -313
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +210 -159
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +28 -28
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +233 -222
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +328 -328
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -291
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -68
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -184
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -337
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -400
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +98 -98
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -544
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -174
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -321
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -100
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -185
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +233 -233
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +102 -102
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -89
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -62
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +107 -107
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -124
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -90
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -57
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +391 -391
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -113
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +312 -312
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -154
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +165 -165
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +308 -308
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -90
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -282
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +360 -360
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +145 -145
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +252 -252
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +114 -114
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +262 -262
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -455
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -60
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -76
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -200
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +518 -518
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -276
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +92 -92
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -767
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -221
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +228 -228
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -194
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +575 -575
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +574 -574
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -182
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +490 -490
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -217
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -299
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -190
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +133 -133
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/flutter-interface/README.md +75 -75
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -291
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -336
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -190
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -258
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -254
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +517 -517
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +381 -381
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +341 -341
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -71
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +518 -518
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +406 -406
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +652 -652
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +396 -396
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +744 -744
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +720 -720
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -414
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -150
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -304
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -265
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -286
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -383
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -165
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -91
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +453 -301
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_CHECKLIST.md +151 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +257 -105
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +191 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +317 -208
- package/vendor/Server/Skills/rn-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +234 -234
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +188 -188
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +246 -246
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -198
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -40
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -78
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -70
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -47
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -252
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -176
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -5
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -35
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -137
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -33
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -40
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -429
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -105
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -90
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -213
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -73
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -258
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -341
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -67
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -299
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -293
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -857
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -856
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -157
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -801
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +683 -683
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -233
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -1373
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -220
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -245
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -414
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -413
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -355
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -115
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -139
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -586
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -57
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -259
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -301
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -148
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -118
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -168
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -176
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -274
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -45
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -25
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -61
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -165
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -239
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -96
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +57 -57
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -99
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -64
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +74 -74
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -164
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +356 -339
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +85 -83
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +905 -859
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +124 -122
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +287 -279
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -273
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -129
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -581
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -138
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -168
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +526 -506
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +321 -280
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -221
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +220 -209
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -325
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -279
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -404
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -185
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -265
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -189
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -203
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -147
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -148
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -165
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -195
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -249
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -161
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -413
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -245
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -282
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -251
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -469
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -310
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -303
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -421
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -358
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -114
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -274
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -185
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -191
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -216
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -107
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -120
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -108
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -237
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -261
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -112
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +497 -497
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -270
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -164
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -556
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -459
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -65
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -512
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -132
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -424
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -137
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -306
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -485
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -172
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -422
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -95
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -169
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -554
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -106
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -216
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -413
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -98
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -337
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -722
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -173
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -267
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -174
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -111
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -186
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -150
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -296
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -371
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -212
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -223
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -1053
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +295 -255
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +82 -77
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -224
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +175 -174
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -967
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -1798
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -5
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +180 -137
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -145
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -365
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -183
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -82
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -110
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -122
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -121
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -234
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -160
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -190
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -224
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -162
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -55
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -126
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -256
- package/vendor/Server/Skills/task-decomposition/SKILL.md +528 -528
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -451
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -179
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -152
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -175
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -195
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -226
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -263
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -29
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -376
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -259
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -216
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +424 -424
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -427
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -214
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -235
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -250
- package/vendor/Server/TestCheck/TestCheck.js +775 -775
- package/vendor/Server/TestCheck/index.js +11 -11
- package/vendor/Server/library/McpToolGuide.js +280 -280
- package/vendor/Server/library/StatsService.js +126 -126
- package/vendor/Server/library/cstTime.js +16 -16
- package/vendor/VERSION +3 -3
- package/workflows/pr-check.mjs +105 -105
- package/workflows/pr-push.mjs +193 -0
- package/vendor/Server/Agent/SkillSelector/types.js +0 -63
|
@@ -1,575 +1,575 @@
|
|
|
1
|
-
# XTS 用例描述模板
|
|
2
|
-
|
|
3
|
-
本文档提供 XTS 用例描述的标准模板和编写规范,供生成技能参考。
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 一、文档整体模板
|
|
8
|
-
|
|
9
|
-
```markdown
|
|
10
|
-
# ohos_鸿蒙ArkTs原生库名 XTS 用例描述
|
|
11
|
-
|
|
12
|
-
## 概述
|
|
13
|
-
|
|
14
|
-
- **库名称**:鸿蒙ArkTs原生库名称
|
|
15
|
-
- **文档生成时间**:YYYY-MM-DD
|
|
16
|
-
- **基于文档**:XTS覆盖率报告名称
|
|
17
|
-
- **未覆盖接口总数**:N
|
|
18
|
-
- **可测试接口数**:可测试接口数量
|
|
19
|
-
- **不可测试接口数**:不可测试接口数量
|
|
20
|
-
- **XTS用例总数**:用例总数
|
|
21
|
-
- **补充前覆盖率**:X%
|
|
22
|
-
- **补充后预期覆盖率**:100%
|
|
23
|
-
- **功能覆盖模块**:模块列表
|
|
24
|
-
|
|
25
|
-
## 接口可测试性分析
|
|
26
|
-
|
|
27
|
-
### 可测试接口列表
|
|
28
|
-
|
|
29
|
-
| 接口名称 | 接口签名 | 可测试原因 |
|
|
30
|
-
|---------|---------|-----------|
|
|
31
|
-
| interfaceA | function(param: Type): ReturnType | 纯函数,返回值可验证 |
|
|
32
|
-
| interfaceB | class.method(param: Type): void | 状态变化可通过其他接口验证 |
|
|
33
|
-
|
|
34
|
-
### 不可测试接口列表
|
|
35
|
-
|
|
36
|
-
| 接口名称 | 接口签名 | 不可测试原因 |
|
|
37
|
-
|---------|---------|-------------|
|
|
38
|
-
| interfaceX | function(): void | 涉及 UI 操作,无法通过执行结果验证 |
|
|
39
|
-
| interfaceY | function(): void | 仅日志输出,结果不可验证 |
|
|
40
|
-
|
|
41
|
-
## 用例索引表
|
|
42
|
-
|
|
43
|
-
| 用例序号 | 用例名称 | 涉及接口 | 模块归属 |
|
|
44
|
-
|---------|---------|---------|---------|
|
|
45
|
-
| 001 | 用例名称 A | interfaceA, interfaceB | 模块 X |
|
|
46
|
-
| 002 | 用例名称 B | interfaceC | 模块 Y |
|
|
47
|
-
| ... | ... | ... | ... |
|
|
48
|
-
|
|
49
|
-
## XTS 用例详细描述
|
|
50
|
-
|
|
51
|
-
### 用例序号:001
|
|
52
|
-
|
|
53
|
-
**用例名称**:用例名称 A
|
|
54
|
-
|
|
55
|
-
**输入条件**:
|
|
56
|
-
- 前提状态:描述用例执行前需要具备的前置状态或数据
|
|
57
|
-
- 输入参数:列出传入参数及取值范围
|
|
58
|
-
- 环境要求:是否需要 Mock / 真机 / 网络等
|
|
59
|
-
|
|
60
|
-
**用例描述**:
|
|
61
|
-
详细描述这个用例的功能和目的。要求能够帮助开发者理解:
|
|
62
|
-
1. 这个用例要验证什么功能
|
|
63
|
-
2. 为什么需要这个测试
|
|
64
|
-
3. 测试的核心场景是什么
|
|
65
|
-
|
|
66
|
-
**预期输出**:
|
|
67
|
-
列出具体的预期结果,帮助开发者验证:
|
|
68
|
-
1. 调用接口 A 后,返回值应为预期值
|
|
69
|
-
2. 调用接口 B 后,状态应发生变化
|
|
70
|
-
3. ...
|
|
71
|
-
|
|
72
|
-
**验证点**:
|
|
73
|
-
1. 核心功能正确性
|
|
74
|
-
2. 边界/异常处理是否符合预期
|
|
75
|
-
3. 状态变化是否与预期一致
|
|
76
|
-
|
|
77
|
-
**对应的函数接口**:
|
|
78
|
-
- `interfaceA(param: Type): ReturnType`
|
|
79
|
-
- 功能:接口功能描述
|
|
80
|
-
- 在本用例中的作用:说明该接口在用例中的使用目的
|
|
81
|
-
- `interfaceB(param: Type): void`
|
|
82
|
-
- 功能:接口功能描述
|
|
83
|
-
- 在本用例中的作用:说明该接口在用例中的使用目的
|
|
84
|
-
- 与其他接口的关联:说明与 interfaceA 的调用顺序或依赖关系
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
### 用例序号:002
|
|
89
|
-
...
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## 二、单个用例详细模板
|
|
95
|
-
|
|
96
|
-
### 2.1 正向用例模板(单接口)
|
|
97
|
-
|
|
98
|
-
```markdown
|
|
99
|
-
### 用例序号:001
|
|
100
|
-
|
|
101
|
-
**用例名称**:基础计算功能验证
|
|
102
|
-
|
|
103
|
-
**输入条件**:
|
|
104
|
-
- 前提状态:库已正常初始化,无全局状态干扰
|
|
105
|
-
- 输入参数:`calculate(10, 20)`、`calculate(-5, 5)`、`calculate(0, 0)`
|
|
106
|
-
- 环境要求:无(纯内存计算)
|
|
107
|
-
|
|
108
|
-
**用例描述**:
|
|
109
|
-
验证库的核心计算功能是否正确实现。该用例通过调用 `calculate` 方法,传入合法的计算参数,验证返回的计算结果是否符合预期,确保计算逻辑的正确性和准确性。
|
|
110
|
-
|
|
111
|
-
**预期输出**:
|
|
112
|
-
1. 调用 `calculate(10, 20)` 后,返回值应为 `30`
|
|
113
|
-
2. 调用 `calculate(-5, 5)` 后,返回值应为 `0`
|
|
114
|
-
3. 调用 `calculate(0, 0)` 后,返回值应为 `0`
|
|
115
|
-
4. 所有返回值类型符合接口定义(number 类型)
|
|
116
|
-
|
|
117
|
-
**验证点**:
|
|
118
|
-
1. 计算结果正确性(加法、负数、零值的组合验证)
|
|
119
|
-
2. 返回值类型符合 `number` 定义
|
|
120
|
-
3. 三次调用均不抛异常
|
|
121
|
-
|
|
122
|
-
**对应的函数接口**:
|
|
123
|
-
- `calculate(x: number, y: number): number`
|
|
124
|
-
- 功能:对两个数值进行加法计算
|
|
125
|
-
- 在本用例中的作用:验证计算逻辑的正确性
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### 2.2 正向用例模板(多接口协同)
|
|
129
|
-
|
|
130
|
-
```markdown
|
|
131
|
-
### 用例序号:002
|
|
132
|
-
|
|
133
|
-
**用例名称**:配置管理完整流程验证
|
|
134
|
-
|
|
135
|
-
**输入条件**:
|
|
136
|
-
- 前提状态:库已初始化,配置为空
|
|
137
|
-
- 输入参数:`setConfig({ key: 'value' })`,随后依次调用 `getConfig()`、`clearConfig()`
|
|
138
|
-
- 环境要求:无(纯内存状态)
|
|
139
|
-
|
|
140
|
-
**用例描述**:
|
|
141
|
-
验证配置管理功能的完整流程,包括配置设置、获取、清除三个步骤。该用例通过协同调用 `setConfig`、`getConfig`、`clearConfig` 三个接口,验证配置管理功能的完整性和一致性,确保配置能够正确设置、读取和清除。
|
|
142
|
-
|
|
143
|
-
**预期输出**:
|
|
144
|
-
1. 调用 `setConfig({ key: 'value' })` 后,配置应成功设置
|
|
145
|
-
2. 调用 `getConfig()` 后,返回值应为 `{ key: 'value' }`
|
|
146
|
-
3. 调用 `clearConfig()` 后,配置应被清除
|
|
147
|
-
4. 再次调用 `getConfig()` 后,返回值应为 `null` 或空对象
|
|
148
|
-
5. 整个流程无异常抛出,状态变化符合预期
|
|
149
|
-
|
|
150
|
-
**验证点**:
|
|
151
|
-
1. 配置设置的完整性(set 后立即 get 命中)
|
|
152
|
-
2. 配置清除的有效性(clear 后 get 返回空)
|
|
153
|
-
3. 协同调用的顺序无关性与一致性
|
|
154
|
-
|
|
155
|
-
**对应的函数接口**:
|
|
156
|
-
- `setConfig(config: Config): void`
|
|
157
|
-
- 功能:设置配置对象
|
|
158
|
-
- 在本用例中的作用:作为流程第一步,设置初始配置
|
|
159
|
-
- `getConfig(): Config | null`
|
|
160
|
-
- 功能:获取当前配置对象
|
|
161
|
-
- 在本用例中的作用:验证 setConfig 的设置结果,以及 clearConfig 的清除结果
|
|
162
|
-
- 与其他接口的关联:依赖于 setConfig 设置的配置,用于验证 clearConfig 的清除效果
|
|
163
|
-
- `clearConfig(): void`
|
|
164
|
-
- 功能:清除当前配置
|
|
165
|
-
- 在本用例中的作用:作为流程第三步,清除已设置的配置
|
|
166
|
-
- 与其他接口的关联:清除 setConfig 设置的配置,通过 getConfig 验证清除效果
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
### 2.3 反向用例模板(参数异常)
|
|
170
|
-
|
|
171
|
-
```markdown
|
|
172
|
-
### 用例序号:003
|
|
173
|
-
|
|
174
|
-
**用例名称**:参数非法输入验证
|
|
175
|
-
|
|
176
|
-
**输入条件**:
|
|
177
|
-
- 前提状态:库已正常初始化
|
|
178
|
-
- 输入参数:`calculate(null, 10)`、`calculate(undefined, 20)`、`calculate(NaN, 30)`
|
|
179
|
-
- 环境要求:无
|
|
180
|
-
|
|
181
|
-
**用例描述**:
|
|
182
|
-
验证接口对非法参数的处理能力。该用例通过传入非法参数(如 null、空值、超限值),验证接口是否能正确识别并抛出预期的异常或返回错误码,确保接口的健壮性和错误处理机制的正确性。
|
|
183
|
-
|
|
184
|
-
**预期输出**:
|
|
185
|
-
1. 调用 `calculate(null, 10)` 后,应抛出异常或返回错误码 `INVALID_PARAM`
|
|
186
|
-
2. 调用 `calculate(undefined, 20)` 后,应抛出异常或返回错误码 `INVALID_PARAM`
|
|
187
|
-
3. 调用 `calculate(NaN, 30)` 后,应抛出异常或返回错误码 `INVALID_PARAM`
|
|
188
|
-
4. 异常信息应包含明确的错误描述,便于定位问题
|
|
189
|
-
|
|
190
|
-
**验证点**:
|
|
191
|
-
1. 非法参数均被识别并安全拒绝
|
|
192
|
-
2. 错误码/异常一致且信息明确
|
|
193
|
-
3. 不产生崩溃或不可预期行为
|
|
194
|
-
|
|
195
|
-
**对应的函数接口**:
|
|
196
|
-
- `calculate(x: number, y: number): number`
|
|
197
|
-
- 功能:对两个数值进行加法计算
|
|
198
|
-
- 在本用例中的作用:验证接口对非法参数的处理能力
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### 2.4 反向用例模板(状态异常)
|
|
202
|
-
|
|
203
|
-
```markdown
|
|
204
|
-
### 用例序号:004
|
|
205
|
-
|
|
206
|
-
**用例名称**:未初始化状态调用验证
|
|
207
|
-
|
|
208
|
-
**输入条件**:
|
|
209
|
-
- 前提状态:故意**不**调用 `init()`,直接从初始状态调用 `execute()`
|
|
210
|
-
- 输入参数:`execute()`
|
|
211
|
-
- 环境要求:无
|
|
212
|
-
|
|
213
|
-
**用例描述**:
|
|
214
|
-
验证接口在未初始化状态下的调用行为。该用例在未调用 `init` 方法的情况下,直接调用 `execute` 方法,验证接口是否能正确识别未初始化状态并抛出预期的异常或返回错误码,确保接口的状态管理机制的正确性。
|
|
215
|
-
|
|
216
|
-
**预期输出**:
|
|
217
|
-
1. 在未调用 `init()` 的情况下,调用 `execute()` 应抛出异常或返回错误码 `NOT_INITIALIZED`
|
|
218
|
-
2. 异常信息应包含明确的错误描述:"库未初始化,请先调用 init 方法"
|
|
219
|
-
3. 不应产生不可预期的行为或崩溃
|
|
220
|
-
|
|
221
|
-
**验证点**:
|
|
222
|
-
1. 状态守卫是否生效(未初始化时拒绝执行)
|
|
223
|
-
2. 错误信息是否可定位
|
|
224
|
-
3. 调用后系统状态未被破坏,后续 `init()` + `execute()` 仍可正常执行
|
|
225
|
-
|
|
226
|
-
**对应的函数接口**:
|
|
227
|
-
- `execute(): Result`
|
|
228
|
-
- 功能:执行核心功能
|
|
229
|
-
- 在本用例中的作用:验证未初始化状态下的调用行为
|
|
230
|
-
- 前置条件:需要先调用 `init()` 方法初始化库(本用例故意不满足前置条件)
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
### 2.5 空值输入用例模板
|
|
234
|
-
|
|
235
|
-
```markdown
|
|
236
|
-
### 用例序号:005
|
|
237
|
-
|
|
238
|
-
**用例名称**:空值/null/undefined 输入验证
|
|
239
|
-
|
|
240
|
-
**输入条件**:
|
|
241
|
-
- 前提状态:库已正常初始化
|
|
242
|
-
- 输入参数:`calculate(null, 10)`、`calculate(undefined, 20)`、`processArray([])`、`processString('')`、`processObject({})`
|
|
243
|
-
- 环境要求:无
|
|
244
|
-
|
|
245
|
-
**用例描述**:
|
|
246
|
-
验证接口对空值输入的处理能力。该用例通过传入 `null`、`undefined`、空字符串 `''`、空数组 `[]`、空对象 `{}` 等空值,验证接口是否能正确识别空值输入并返回安全的默认值或抛出明确的异常,确保接口的健壮性和空值处理机制的正确性。
|
|
247
|
-
|
|
248
|
-
**预期输出**:
|
|
249
|
-
1. 调用 `calculate(null, 10)` 后,应抛出异常或返回错误码(null 参数不可接受)
|
|
250
|
-
2. 调用 `calculate(undefined, 20)` 后,应抛出异常或使用默认值处理(undefined 参数处理)
|
|
251
|
-
3. 调用 `processArray([])` 后,应返回空结果或空数组(空数组安全处理)
|
|
252
|
-
4. 调用 `processString('')` 后,应返回空结果或空字符串(空字符串安全处理)
|
|
253
|
-
5. 调用 `processObject({})` 后,应返回空结果或默认对象(空对象安全处理)
|
|
254
|
-
6. 不应因空值输入导致崩溃或产生不可预期行为
|
|
255
|
-
|
|
256
|
-
**验证点**:
|
|
257
|
-
1. 每种空值类型均被安全处理(异常/默认值/安全返回)
|
|
258
|
-
2. 空值处理策略与接口文档一致
|
|
259
|
-
3. 全程无崩溃、无未捕获异常
|
|
260
|
-
|
|
261
|
-
**对应的函数接口**:
|
|
262
|
-
- `calculate(x: number, y: number): number`
|
|
263
|
-
- 功能:对两个数值进行加法计算
|
|
264
|
-
- 在本用例中的作用:验证接口对 null/undefined 参数的处理能力
|
|
265
|
-
- `processArray(array: Array): Array`
|
|
266
|
-
- 功能:处理数组数据
|
|
267
|
-
- 在本用例中的作用:验证接口对空数组的处理能力
|
|
268
|
-
- `processString(str: string): string`
|
|
269
|
-
- 功能:处理字符串数据
|
|
270
|
-
- 在本用例中的作用:验证接口对空字符串的处理能力
|
|
271
|
-
- `processObject(obj: Object): Object`
|
|
272
|
-
- 功能:处理对象数据
|
|
273
|
-
- 在本用例中的作用:验证接口对空对象的处理能力
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
### 2.6 异常/边界值输入用例模板
|
|
277
|
-
|
|
278
|
-
```markdown
|
|
279
|
-
### 用例序号:006
|
|
280
|
-
|
|
281
|
-
**用例名称**:异常参数与边界值输入验证
|
|
282
|
-
|
|
283
|
-
**输入条件**:
|
|
284
|
-
- 前提状态:库已正常初始化
|
|
285
|
-
- 输入参数:`calculate('abc', 10)`、`chunk([1, 2, 3], -1)`、`calculate(NaN, 10)`、`calculate(Infinity, 10)`、`chunk([1, 2, 3], 0)`、`clamp(Number.MAX_VALUE, 0, Number.MIN_VALUE)`
|
|
286
|
-
- 环境要求:无
|
|
287
|
-
|
|
288
|
-
**用例描述**:
|
|
289
|
-
验证接口对异常参数和边界值的处理能力。该用例通过传入类型不匹配参数、超限值、特殊值(NaN、Infinity)、负值等异常和边界输入,验证接口是否能正确识别并抛出预期异常或返回合理的处理结果,确保接口在各种极端输入下的健壮性。
|
|
290
|
-
|
|
291
|
-
**预期输出**:
|
|
292
|
-
1. 调用 `calculate('abc', 10)` 后,应抛出异常或返回错误码(类型不匹配)
|
|
293
|
-
2. 调用 `chunk([1, 2, 3], -1)` 后,应抛出异常或返回空结果(负值 size)
|
|
294
|
-
3. 调用 `calculate(NaN, 10)` 后,应抛出异常或返回 NaN(NaN 输入处理)
|
|
295
|
-
4. 调用 `calculate(Infinity, 10)` 后,应抛出异常或返回 Infinity(Infinity 输入处理)
|
|
296
|
-
5. 调用 `chunk([1, 2, 3], 0)` 后,应抛出异常或返回空结果(零值 size)
|
|
297
|
-
6. 调用 `clamp(Number.MAX_VALUE, 0, Number.MIN_VALUE)` 后,应合理处理数值溢出场景
|
|
298
|
-
7. 所有异常处理均不应导致崩溃,异常信息应明确可定位
|
|
299
|
-
|
|
300
|
-
**验证点**:
|
|
301
|
-
1. 类型不匹配输入的拒绝行为
|
|
302
|
-
2. 边界值(负值、零值、NaN、Infinity、溢出)的处理行为
|
|
303
|
-
3. 全程无崩溃,异常信息可定位
|
|
304
|
-
|
|
305
|
-
**对应的函数接口**:
|
|
306
|
-
- `calculate(x: number, y: number): number`
|
|
307
|
-
- 功能:对两个数值进行加法计算
|
|
308
|
-
- 在本用例中的作用:验证接口对类型不匹配、NaN、Infinity 等异常输入的处理
|
|
309
|
-
- `chunk(array: Array, size?: number): Array<Array>`
|
|
310
|
-
- 功能:将数组拆分成多个 size 长度的块
|
|
311
|
-
- 在本用例中的作用:验证接口对负值、零值 size 等边界输入的处理
|
|
312
|
-
- `clamp(number: number, lower: number, upper: number): number`
|
|
313
|
-
- 功能:将数值限制在范围内
|
|
314
|
-
- 在本用例中的作用:验证接口对数值溢出边界场景的处理
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
### 2.7 大数据输入用例模板
|
|
318
|
-
|
|
319
|
-
```markdown
|
|
320
|
-
### 用例序号:007
|
|
321
|
-
|
|
322
|
-
**用例名称**:大数据量输入处理验证
|
|
323
|
-
|
|
324
|
-
**输入条件**:
|
|
325
|
-
- 前提状态:库已正常初始化
|
|
326
|
-
- 输入参数:大数组(10000+ 元素)、大字符串(10000+ 字符)、深度嵌套对象(10+ 层)、大量属性对象(1000+ 属性)
|
|
327
|
-
- 环境要求:无,建议在测试环境下控制超时阈值
|
|
328
|
-
|
|
329
|
-
**用例描述**:
|
|
330
|
-
验证接口在大数据量输入下的处理能力和性能表现。该用例通过传入大数组(10000+ 元素)、大字符串(10000+ 字符)、深度嵌套对象(10+ 层)、大量属性对象(1000+ 属性),验证接口在大数据量场景下是否能正确处理且不发生内存溢出、栈溢出或超时,确保接口的数据处理能力和稳定性。
|
|
331
|
-
|
|
332
|
-
**预期输出**:
|
|
333
|
-
1. 调用 `chunk(largeArray, 100)` 后,应正确返回分块结果且不发生内存溢出(大数组 10000+ 元素)
|
|
334
|
-
2. 调用 `difference(largeArray, excludeArray)` 后,应正确计算差异且不超时(大数组差异计算)
|
|
335
|
-
3. 调用 `cloneDeep(deepNestedObj)` 后,应完整拷贝所有层级且不发生栈溢出(10+ 层嵌套)
|
|
336
|
-
4. 调用 `get(wideObj, 'key_500')` 后,应正确获取属性值(1000+ 属性的宽对象)
|
|
337
|
-
5. 所有大数据量操作应在合理时间内完成(建议 5 秒内)
|
|
338
|
-
6. 大数据量操作不应导致应用崩溃或系统资源耗尽
|
|
339
|
-
|
|
340
|
-
**验证点**:
|
|
341
|
-
1. 大数据量下结果正确性(分块、差异、深拷贝、路径访问)
|
|
342
|
-
2. 无内存溢出、栈溢出或超时
|
|
343
|
-
3. 操作耗时在合理范围内
|
|
344
|
-
|
|
345
|
-
**对应的函数接口**:
|
|
346
|
-
- `chunk(array: Array, size?: number): Array<Array>`
|
|
347
|
-
- 功能:将数组拆分成多个 size 长度的块
|
|
348
|
-
- 在本用例中的作用:验证大数组分块处理的正确性和性能
|
|
349
|
-
- `difference(array: Array, ...values: Array[]): Array`
|
|
350
|
-
- 功能:返回数组差异
|
|
351
|
-
- 在本用例中的作用:验证大数据量差异计算的正确性和性能
|
|
352
|
-
- `cloneDeep(value: any): any`
|
|
353
|
-
- 功能:创建值的深拷贝
|
|
354
|
-
- 在本用例中的作用:验证深度嵌套结构深拷贝的正确性和稳定性
|
|
355
|
-
- `get(object: Object, path: string, defaultValue?: any): any`
|
|
356
|
-
- 功能:根据路径获取对象属性值
|
|
357
|
-
- 在本用例中的作用:验证大量属性对象的路径访问性能
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
---
|
|
361
|
-
|
|
362
|
-
## 三、场景设计规范
|
|
363
|
-
|
|
364
|
-
### 3.1 空值场景(Null/Undefined/Empty)
|
|
365
|
-
|
|
366
|
-
- 传入 `null` 作为参数,验证接口是否抛出异常或返回安全默认值
|
|
367
|
-
- 传入 `undefined`,验证默认参数处理逻辑
|
|
368
|
-
- 传入空字符串 `''`、空数组 `[]`、空对象 `{}`
|
|
369
|
-
|
|
370
|
-
### 3.2 异常/边界值场景(Exception/Boundary)
|
|
371
|
-
|
|
372
|
-
- 传入类型不匹配的参数,验证类型校验能力
|
|
373
|
-
- 传入超限值,验证边界处理
|
|
374
|
-
- 传入特殊值(`NaN`、`Infinity`),验证特殊数值处理
|
|
375
|
-
|
|
376
|
-
### 3.3 大数据场景(Large Data)
|
|
377
|
-
|
|
378
|
-
- 传入大数组(10000+ 元素),验证性能和正确性
|
|
379
|
-
- 传入大字符串(10000+ 字符),验证长字符串处理能力
|
|
380
|
-
- 验证大数据场景下不发生内存溢出、栈溢出或超时
|
|
381
|
-
|
|
382
|
-
### 3.4 Mock场景
|
|
383
|
-
|
|
384
|
-
依赖外部资源的接口(如网络请求),在用例描述中标注Mock要求:
|
|
385
|
-
- 需要使用测试框架的Mock功能模拟外部响应
|
|
386
|
-
- 明确Mock返回值设置
|
|
387
|
-
|
|
388
|
-
### 3.5 异步等待场景
|
|
389
|
-
|
|
390
|
-
涉及异步行为的接口(如 `debounce`、`throttle`),在用例中设置合理等待时间:
|
|
391
|
-
- 异步操作应在合理时间内完成(建议设置超时验证)
|
|
392
|
-
- Promise resolve 后验证返回结果
|
|
393
|
-
|
|
394
|
-
---
|
|
395
|
-
|
|
396
|
-
## 四、用例编写规范要点
|
|
397
|
-
|
|
398
|
-
### 4.1 用例名称命名规范
|
|
399
|
-
|
|
400
|
-
- ✅ **简洁明确**:以功能描述为基础,清晰表达用例目的
|
|
401
|
-
- ✅ **动词开头**:如"验证"、"测试"、"检查"
|
|
402
|
-
- ❌ **避免模糊**:如"功能测试"、"一般测试"
|
|
403
|
-
- ❌ **避免过长**:建议不超过 20 个字符
|
|
404
|
-
|
|
405
|
-
**命名示例对比:**
|
|
406
|
-
|
|
407
|
-
| 好的命名 | 不好的命名 |
|
|
408
|
-
|---------|-----------|
|
|
409
|
-
| 基础计算功能验证 | 测试一下计算 |
|
|
410
|
-
| 配置管理完整流程验证 | 配置功能测试 |
|
|
411
|
-
| 参数非法输入验证 | 异常测试 |
|
|
412
|
-
|
|
413
|
-
### 4.2 用例描述编写规范
|
|
414
|
-
|
|
415
|
-
- ✅ **详细完整**:说明用例的目的、测试场景、验证重点
|
|
416
|
-
- ✅ **逻辑清晰**:按步骤描述测试流程
|
|
417
|
-
- ✅ **帮助理解**:让开发者明白为什么需要这个测试
|
|
418
|
-
|
|
419
|
-
**描述模板:**
|
|
420
|
-
|
|
421
|
-
```
|
|
422
|
-
验证 [功能名称] 的 [核心能力] 是否正确实现。
|
|
423
|
-
该用例通过 [调用方式],传入 [参数类型],
|
|
424
|
-
验证 [返回值/状态变化/异常抛出] 是否符合预期,
|
|
425
|
-
确保 [功能特性] 的 [质量属性]。
|
|
426
|
-
```
|
|
427
|
-
|
|
428
|
-
### 4.3 输入条件编写规范
|
|
429
|
-
|
|
430
|
-
- ✅ **前提状态明确**:说明用例执行前需要具备的前置状态、数据初始化情况
|
|
431
|
-
- ✅ **参数具体可复现**:列出实际传入的参数与取值(如 `calculate(10, 20)`)
|
|
432
|
-
- ✅ **环境要求显式**:涉及 Mock / 真机 / 网络 / 外部依赖时明确标注
|
|
433
|
-
|
|
434
|
-
**输入条件编写要点:**
|
|
435
|
-
|
|
436
|
-
1. **前提状态**:如"库已初始化""配置为空""未调用 init"等
|
|
437
|
-
2. **输入参数**:给出具体调用与参数值,保证用例可复现
|
|
438
|
-
3. **环境要求**:Mock 返回值设置、真机要求、等待时间等
|
|
439
|
-
|
|
440
|
-
### 4.4 预期输出编写规范
|
|
441
|
-
|
|
442
|
-
- ✅ **具体可验证**:列出明确的预期值、状态、异常类型
|
|
443
|
-
- ✅ **覆盖全面**:包括正常结果和异常情况
|
|
444
|
-
- ✅ **可量化**:尽量使用具体数值、字符串、状态标识
|
|
445
|
-
|
|
446
|
-
**预期结果编写要点:**
|
|
447
|
-
|
|
448
|
-
1. **返回值验证**:明确预期返回值(具体值或类型)
|
|
449
|
-
2. **状态验证**:明确状态变化(如配置已清除)
|
|
450
|
-
3. **异常验证**:明确异常类型和错误码
|
|
451
|
-
4. **类型验证**:明确返回值类型是否符合定义
|
|
452
|
-
|
|
453
|
-
### 4.5 验证点编写规范
|
|
454
|
-
|
|
455
|
-
- ✅ **聚焦断言目标**:每条验证点对应一个可断言的行为或结果
|
|
456
|
-
- ✅ **与预期输出呼应**:验证点是预期输出的凝练,覆盖功能正确性、边界/异常、状态变化
|
|
457
|
-
- ✅ **可用于生成断言代码**:验证点应能直接映射为 XTS 断言(`assertEqual` / `assertTrue` / `assertThrowError` 等)
|
|
458
|
-
|
|
459
|
-
**验证点编写要点:**
|
|
460
|
-
|
|
461
|
-
1. **功能正确性**:核心功能的正确性验证
|
|
462
|
-
2. **边界/异常**:异常输入、空值、边界值的处理行为验证
|
|
463
|
-
3. **状态影响**:状态变化或后续行为的影响验证
|
|
464
|
-
|
|
465
|
-
### 4.6 多接口关联说明规范
|
|
466
|
-
|
|
467
|
-
当用例包含多个接口时,必须说明:
|
|
468
|
-
|
|
469
|
-
1. **每个接口的功能**:简述接口作用
|
|
470
|
-
2. **在本用例中的作用**:说明该接口在用例中的使用目的
|
|
471
|
-
3. **与其他接口的关联**:说明调用顺序、依赖关系、验证关系
|
|
472
|
-
|
|
473
|
-
**关联说明示例:**
|
|
474
|
-
|
|
475
|
-
```markdown
|
|
476
|
-
- `interfaceA()`
|
|
477
|
-
- 在本用例中的作用:作为流程第一步,设置初始状态
|
|
478
|
-
- `interfaceB()`
|
|
479
|
-
- 在本用例中的作用:验证 interfaceA 的设置结果
|
|
480
|
-
- 与其他接口的关联:依赖于 interfaceA 设置的状态,用于验证结果
|
|
481
|
-
- `interfaceC()`
|
|
482
|
-
- 在本用例中的作用:作为流程最后一步,清除状态
|
|
483
|
-
- 与其他接口的关联:清除 interfaceA 设置的状态,通过 interfaceB 验证清除效果
|
|
484
|
-
```
|
|
485
|
-
|
|
486
|
-
---
|
|
487
|
-
|
|
488
|
-
## 五、特殊情况处理模板
|
|
489
|
-
|
|
490
|
-
### 5.1 需要 Mock 的用例
|
|
491
|
-
|
|
492
|
-
```markdown
|
|
493
|
-
### 用例序号:005
|
|
494
|
-
|
|
495
|
-
**用例名称**:网络请求功能验证(需 Mock)
|
|
496
|
-
|
|
497
|
-
**输入条件**:
|
|
498
|
-
- 前提状态:库已初始化,Mock 服务可用
|
|
499
|
-
- 输入参数:`fetchData('http://test.api')`
|
|
500
|
-
- 环境要求:需要使用测试框架的 Mock 功能模拟网络响应;Mock 返回值应设置为 `{ status: 200, data: { id: 1, name: 'test' } }`
|
|
501
|
-
|
|
502
|
-
**用例描述**:
|
|
503
|
-
验证网络请求功能的正确性。该用例需要先 Mock 网络响应,然后调用 `fetchData` 方法发起请求,验证返回的数据是否符合 Mock 设置,确保网络请求逻辑的正确性。
|
|
504
|
-
|
|
505
|
-
**预期输出**:
|
|
506
|
-
1. 在 Mock 网络响应的情况下,调用 `fetchData('http://test.api')` 应返回 Mock 设置的数据
|
|
507
|
-
2. 返回值结构符合接口定义(AxiosResponse 类型)
|
|
508
|
-
3. 返回值 `data` 字段应为 `{ id: 1, name: 'test' }`
|
|
509
|
-
4. 返回值 `status` 字段应为 `200`
|
|
510
|
-
|
|
511
|
-
**验证点**:
|
|
512
|
-
1. Mock 返回值与请求逻辑透传一致
|
|
513
|
-
2. 返回值结构符合接口定义
|
|
514
|
-
3. 请求完成后无资源泄漏
|
|
515
|
-
|
|
516
|
-
**对应的函数接口**:
|
|
517
|
-
- `fetchData(url: string): Promise<AxiosResponse>`
|
|
518
|
-
- 功能:发起网络请求并返回响应数据
|
|
519
|
-
- 在本用例中的作用:验证网络请求逻辑的正确性(需 Mock 网络响应)
|
|
520
|
-
```
|
|
521
|
-
|
|
522
|
-
### 5.2 需要异步等待的用例
|
|
523
|
-
|
|
524
|
-
```markdown
|
|
525
|
-
### 用例序号:006
|
|
526
|
-
|
|
527
|
-
**用例名称**:异步操作结果验证
|
|
528
|
-
|
|
529
|
-
**输入条件**:
|
|
530
|
-
- 前提状态:库已正常初始化
|
|
531
|
-
- 输入参数:`asyncExecute()`,等待 Promise resolve
|
|
532
|
-
- 环境要求:无;异步操作需在合理时间内完成(建议设置超时验证)
|
|
533
|
-
|
|
534
|
-
**用例描述**:
|
|
535
|
-
验证异步操作的正确性。该用例调用 `asyncExecute` 方法发起异步操作,等待 Promise 完成,验证返回的异步结果是否符合预期,确保异步操作逻辑的正确性。
|
|
536
|
-
|
|
537
|
-
**预期输出**:
|
|
538
|
-
1. 调用 `asyncExecute()` 返回 Promise 对象
|
|
539
|
-
2. Promise resolve 后,结果应为预期值 `{ success: true, result: 'done' }`
|
|
540
|
-
3. Promise 不应 reject(无异常抛出)
|
|
541
|
-
4. 异步操作应在合理时间内完成(建议设置超时验证)
|
|
542
|
-
|
|
543
|
-
**验证点**:
|
|
544
|
-
1. Promise 正确 resolve 且结果符合预期
|
|
545
|
-
2. 无 reject、无超时
|
|
546
|
-
3. 异步流程无状态污染
|
|
547
|
-
|
|
548
|
-
**对应的函数接口**:
|
|
549
|
-
- `asyncExecute(): Promise<Result>`
|
|
550
|
-
- 功能:执行异步操作并返回 Promise
|
|
551
|
-
- 在本用例中的作用:验证异步操作的正确性
|
|
552
|
-
```
|
|
553
|
-
|
|
554
|
-
---
|
|
555
|
-
|
|
556
|
-
## 六、不可测试接口说明模板
|
|
557
|
-
|
|
558
|
-
当接口不可测试时,在"接口可测试性分析"部分详细说明原因:
|
|
559
|
-
|
|
560
|
-
```markdown
|
|
561
|
-
### 不可测试接口列表
|
|
562
|
-
|
|
563
|
-
| 接口名称 | 接口签名 | 不可测试原因 |
|
|
564
|
-
|---------|---------|-------------|
|
|
565
|
-
| renderUI | function(): void | 涉及 UI 组件创建和渲染,无法通过执行结果验证 |
|
|
566
|
-
| logMessage | function(msg: string): void | 仅日志输出,无返回值和状态变化,结果不可验证 |
|
|
567
|
-
```
|
|
568
|
-
|
|
569
|
-
**不可测试原因分类:**
|
|
570
|
-
|
|
571
|
-
1. **UI 相关**:涉及 UI 操作、组件创建、界面渲染
|
|
572
|
-
2. **输出型**:仅日志输出、无返回值、无状态变化
|
|
573
|
-
3. **外部依赖**:依赖不可控外部因素(网络、传感器、系统事件)
|
|
574
|
-
|
|
1
|
+
# XTS 用例描述模板
|
|
2
|
+
|
|
3
|
+
本文档提供 XTS 用例描述的标准模板和编写规范,供生成技能参考。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 一、文档整体模板
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# ohos_鸿蒙ArkTs原生库名 XTS 用例描述
|
|
11
|
+
|
|
12
|
+
## 概述
|
|
13
|
+
|
|
14
|
+
- **库名称**:鸿蒙ArkTs原生库名称
|
|
15
|
+
- **文档生成时间**:YYYY-MM-DD
|
|
16
|
+
- **基于文档**:XTS覆盖率报告名称
|
|
17
|
+
- **未覆盖接口总数**:N
|
|
18
|
+
- **可测试接口数**:可测试接口数量
|
|
19
|
+
- **不可测试接口数**:不可测试接口数量
|
|
20
|
+
- **XTS用例总数**:用例总数
|
|
21
|
+
- **补充前覆盖率**:X%
|
|
22
|
+
- **补充后预期覆盖率**:100%
|
|
23
|
+
- **功能覆盖模块**:模块列表
|
|
24
|
+
|
|
25
|
+
## 接口可测试性分析
|
|
26
|
+
|
|
27
|
+
### 可测试接口列表
|
|
28
|
+
|
|
29
|
+
| 接口名称 | 接口签名 | 可测试原因 |
|
|
30
|
+
|---------|---------|-----------|
|
|
31
|
+
| interfaceA | function(param: Type): ReturnType | 纯函数,返回值可验证 |
|
|
32
|
+
| interfaceB | class.method(param: Type): void | 状态变化可通过其他接口验证 |
|
|
33
|
+
|
|
34
|
+
### 不可测试接口列表
|
|
35
|
+
|
|
36
|
+
| 接口名称 | 接口签名 | 不可测试原因 |
|
|
37
|
+
|---------|---------|-------------|
|
|
38
|
+
| interfaceX | function(): void | 涉及 UI 操作,无法通过执行结果验证 |
|
|
39
|
+
| interfaceY | function(): void | 仅日志输出,结果不可验证 |
|
|
40
|
+
|
|
41
|
+
## 用例索引表
|
|
42
|
+
|
|
43
|
+
| 用例序号 | 用例名称 | 涉及接口 | 模块归属 |
|
|
44
|
+
|---------|---------|---------|---------|
|
|
45
|
+
| 001 | 用例名称 A | interfaceA, interfaceB | 模块 X |
|
|
46
|
+
| 002 | 用例名称 B | interfaceC | 模块 Y |
|
|
47
|
+
| ... | ... | ... | ... |
|
|
48
|
+
|
|
49
|
+
## XTS 用例详细描述
|
|
50
|
+
|
|
51
|
+
### 用例序号:001
|
|
52
|
+
|
|
53
|
+
**用例名称**:用例名称 A
|
|
54
|
+
|
|
55
|
+
**输入条件**:
|
|
56
|
+
- 前提状态:描述用例执行前需要具备的前置状态或数据
|
|
57
|
+
- 输入参数:列出传入参数及取值范围
|
|
58
|
+
- 环境要求:是否需要 Mock / 真机 / 网络等
|
|
59
|
+
|
|
60
|
+
**用例描述**:
|
|
61
|
+
详细描述这个用例的功能和目的。要求能够帮助开发者理解:
|
|
62
|
+
1. 这个用例要验证什么功能
|
|
63
|
+
2. 为什么需要这个测试
|
|
64
|
+
3. 测试的核心场景是什么
|
|
65
|
+
|
|
66
|
+
**预期输出**:
|
|
67
|
+
列出具体的预期结果,帮助开发者验证:
|
|
68
|
+
1. 调用接口 A 后,返回值应为预期值
|
|
69
|
+
2. 调用接口 B 后,状态应发生变化
|
|
70
|
+
3. ...
|
|
71
|
+
|
|
72
|
+
**验证点**:
|
|
73
|
+
1. 核心功能正确性
|
|
74
|
+
2. 边界/异常处理是否符合预期
|
|
75
|
+
3. 状态变化是否与预期一致
|
|
76
|
+
|
|
77
|
+
**对应的函数接口**:
|
|
78
|
+
- `interfaceA(param: Type): ReturnType`
|
|
79
|
+
- 功能:接口功能描述
|
|
80
|
+
- 在本用例中的作用:说明该接口在用例中的使用目的
|
|
81
|
+
- `interfaceB(param: Type): void`
|
|
82
|
+
- 功能:接口功能描述
|
|
83
|
+
- 在本用例中的作用:说明该接口在用例中的使用目的
|
|
84
|
+
- 与其他接口的关联:说明与 interfaceA 的调用顺序或依赖关系
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### 用例序号:002
|
|
89
|
+
...
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 二、单个用例详细模板
|
|
95
|
+
|
|
96
|
+
### 2.1 正向用例模板(单接口)
|
|
97
|
+
|
|
98
|
+
```markdown
|
|
99
|
+
### 用例序号:001
|
|
100
|
+
|
|
101
|
+
**用例名称**:基础计算功能验证
|
|
102
|
+
|
|
103
|
+
**输入条件**:
|
|
104
|
+
- 前提状态:库已正常初始化,无全局状态干扰
|
|
105
|
+
- 输入参数:`calculate(10, 20)`、`calculate(-5, 5)`、`calculate(0, 0)`
|
|
106
|
+
- 环境要求:无(纯内存计算)
|
|
107
|
+
|
|
108
|
+
**用例描述**:
|
|
109
|
+
验证库的核心计算功能是否正确实现。该用例通过调用 `calculate` 方法,传入合法的计算参数,验证返回的计算结果是否符合预期,确保计算逻辑的正确性和准确性。
|
|
110
|
+
|
|
111
|
+
**预期输出**:
|
|
112
|
+
1. 调用 `calculate(10, 20)` 后,返回值应为 `30`
|
|
113
|
+
2. 调用 `calculate(-5, 5)` 后,返回值应为 `0`
|
|
114
|
+
3. 调用 `calculate(0, 0)` 后,返回值应为 `0`
|
|
115
|
+
4. 所有返回值类型符合接口定义(number 类型)
|
|
116
|
+
|
|
117
|
+
**验证点**:
|
|
118
|
+
1. 计算结果正确性(加法、负数、零值的组合验证)
|
|
119
|
+
2. 返回值类型符合 `number` 定义
|
|
120
|
+
3. 三次调用均不抛异常
|
|
121
|
+
|
|
122
|
+
**对应的函数接口**:
|
|
123
|
+
- `calculate(x: number, y: number): number`
|
|
124
|
+
- 功能:对两个数值进行加法计算
|
|
125
|
+
- 在本用例中的作用:验证计算逻辑的正确性
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 2.2 正向用例模板(多接口协同)
|
|
129
|
+
|
|
130
|
+
```markdown
|
|
131
|
+
### 用例序号:002
|
|
132
|
+
|
|
133
|
+
**用例名称**:配置管理完整流程验证
|
|
134
|
+
|
|
135
|
+
**输入条件**:
|
|
136
|
+
- 前提状态:库已初始化,配置为空
|
|
137
|
+
- 输入参数:`setConfig({ key: 'value' })`,随后依次调用 `getConfig()`、`clearConfig()`
|
|
138
|
+
- 环境要求:无(纯内存状态)
|
|
139
|
+
|
|
140
|
+
**用例描述**:
|
|
141
|
+
验证配置管理功能的完整流程,包括配置设置、获取、清除三个步骤。该用例通过协同调用 `setConfig`、`getConfig`、`clearConfig` 三个接口,验证配置管理功能的完整性和一致性,确保配置能够正确设置、读取和清除。
|
|
142
|
+
|
|
143
|
+
**预期输出**:
|
|
144
|
+
1. 调用 `setConfig({ key: 'value' })` 后,配置应成功设置
|
|
145
|
+
2. 调用 `getConfig()` 后,返回值应为 `{ key: 'value' }`
|
|
146
|
+
3. 调用 `clearConfig()` 后,配置应被清除
|
|
147
|
+
4. 再次调用 `getConfig()` 后,返回值应为 `null` 或空对象
|
|
148
|
+
5. 整个流程无异常抛出,状态变化符合预期
|
|
149
|
+
|
|
150
|
+
**验证点**:
|
|
151
|
+
1. 配置设置的完整性(set 后立即 get 命中)
|
|
152
|
+
2. 配置清除的有效性(clear 后 get 返回空)
|
|
153
|
+
3. 协同调用的顺序无关性与一致性
|
|
154
|
+
|
|
155
|
+
**对应的函数接口**:
|
|
156
|
+
- `setConfig(config: Config): void`
|
|
157
|
+
- 功能:设置配置对象
|
|
158
|
+
- 在本用例中的作用:作为流程第一步,设置初始配置
|
|
159
|
+
- `getConfig(): Config | null`
|
|
160
|
+
- 功能:获取当前配置对象
|
|
161
|
+
- 在本用例中的作用:验证 setConfig 的设置结果,以及 clearConfig 的清除结果
|
|
162
|
+
- 与其他接口的关联:依赖于 setConfig 设置的配置,用于验证 clearConfig 的清除效果
|
|
163
|
+
- `clearConfig(): void`
|
|
164
|
+
- 功能:清除当前配置
|
|
165
|
+
- 在本用例中的作用:作为流程第三步,清除已设置的配置
|
|
166
|
+
- 与其他接口的关联:清除 setConfig 设置的配置,通过 getConfig 验证清除效果
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 2.3 反向用例模板(参数异常)
|
|
170
|
+
|
|
171
|
+
```markdown
|
|
172
|
+
### 用例序号:003
|
|
173
|
+
|
|
174
|
+
**用例名称**:参数非法输入验证
|
|
175
|
+
|
|
176
|
+
**输入条件**:
|
|
177
|
+
- 前提状态:库已正常初始化
|
|
178
|
+
- 输入参数:`calculate(null, 10)`、`calculate(undefined, 20)`、`calculate(NaN, 30)`
|
|
179
|
+
- 环境要求:无
|
|
180
|
+
|
|
181
|
+
**用例描述**:
|
|
182
|
+
验证接口对非法参数的处理能力。该用例通过传入非法参数(如 null、空值、超限值),验证接口是否能正确识别并抛出预期的异常或返回错误码,确保接口的健壮性和错误处理机制的正确性。
|
|
183
|
+
|
|
184
|
+
**预期输出**:
|
|
185
|
+
1. 调用 `calculate(null, 10)` 后,应抛出异常或返回错误码 `INVALID_PARAM`
|
|
186
|
+
2. 调用 `calculate(undefined, 20)` 后,应抛出异常或返回错误码 `INVALID_PARAM`
|
|
187
|
+
3. 调用 `calculate(NaN, 30)` 后,应抛出异常或返回错误码 `INVALID_PARAM`
|
|
188
|
+
4. 异常信息应包含明确的错误描述,便于定位问题
|
|
189
|
+
|
|
190
|
+
**验证点**:
|
|
191
|
+
1. 非法参数均被识别并安全拒绝
|
|
192
|
+
2. 错误码/异常一致且信息明确
|
|
193
|
+
3. 不产生崩溃或不可预期行为
|
|
194
|
+
|
|
195
|
+
**对应的函数接口**:
|
|
196
|
+
- `calculate(x: number, y: number): number`
|
|
197
|
+
- 功能:对两个数值进行加法计算
|
|
198
|
+
- 在本用例中的作用:验证接口对非法参数的处理能力
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 2.4 反向用例模板(状态异常)
|
|
202
|
+
|
|
203
|
+
```markdown
|
|
204
|
+
### 用例序号:004
|
|
205
|
+
|
|
206
|
+
**用例名称**:未初始化状态调用验证
|
|
207
|
+
|
|
208
|
+
**输入条件**:
|
|
209
|
+
- 前提状态:故意**不**调用 `init()`,直接从初始状态调用 `execute()`
|
|
210
|
+
- 输入参数:`execute()`
|
|
211
|
+
- 环境要求:无
|
|
212
|
+
|
|
213
|
+
**用例描述**:
|
|
214
|
+
验证接口在未初始化状态下的调用行为。该用例在未调用 `init` 方法的情况下,直接调用 `execute` 方法,验证接口是否能正确识别未初始化状态并抛出预期的异常或返回错误码,确保接口的状态管理机制的正确性。
|
|
215
|
+
|
|
216
|
+
**预期输出**:
|
|
217
|
+
1. 在未调用 `init()` 的情况下,调用 `execute()` 应抛出异常或返回错误码 `NOT_INITIALIZED`
|
|
218
|
+
2. 异常信息应包含明确的错误描述:"库未初始化,请先调用 init 方法"
|
|
219
|
+
3. 不应产生不可预期的行为或崩溃
|
|
220
|
+
|
|
221
|
+
**验证点**:
|
|
222
|
+
1. 状态守卫是否生效(未初始化时拒绝执行)
|
|
223
|
+
2. 错误信息是否可定位
|
|
224
|
+
3. 调用后系统状态未被破坏,后续 `init()` + `execute()` 仍可正常执行
|
|
225
|
+
|
|
226
|
+
**对应的函数接口**:
|
|
227
|
+
- `execute(): Result`
|
|
228
|
+
- 功能:执行核心功能
|
|
229
|
+
- 在本用例中的作用:验证未初始化状态下的调用行为
|
|
230
|
+
- 前置条件:需要先调用 `init()` 方法初始化库(本用例故意不满足前置条件)
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### 2.5 空值输入用例模板
|
|
234
|
+
|
|
235
|
+
```markdown
|
|
236
|
+
### 用例序号:005
|
|
237
|
+
|
|
238
|
+
**用例名称**:空值/null/undefined 输入验证
|
|
239
|
+
|
|
240
|
+
**输入条件**:
|
|
241
|
+
- 前提状态:库已正常初始化
|
|
242
|
+
- 输入参数:`calculate(null, 10)`、`calculate(undefined, 20)`、`processArray([])`、`processString('')`、`processObject({})`
|
|
243
|
+
- 环境要求:无
|
|
244
|
+
|
|
245
|
+
**用例描述**:
|
|
246
|
+
验证接口对空值输入的处理能力。该用例通过传入 `null`、`undefined`、空字符串 `''`、空数组 `[]`、空对象 `{}` 等空值,验证接口是否能正确识别空值输入并返回安全的默认值或抛出明确的异常,确保接口的健壮性和空值处理机制的正确性。
|
|
247
|
+
|
|
248
|
+
**预期输出**:
|
|
249
|
+
1. 调用 `calculate(null, 10)` 后,应抛出异常或返回错误码(null 参数不可接受)
|
|
250
|
+
2. 调用 `calculate(undefined, 20)` 后,应抛出异常或使用默认值处理(undefined 参数处理)
|
|
251
|
+
3. 调用 `processArray([])` 后,应返回空结果或空数组(空数组安全处理)
|
|
252
|
+
4. 调用 `processString('')` 后,应返回空结果或空字符串(空字符串安全处理)
|
|
253
|
+
5. 调用 `processObject({})` 后,应返回空结果或默认对象(空对象安全处理)
|
|
254
|
+
6. 不应因空值输入导致崩溃或产生不可预期行为
|
|
255
|
+
|
|
256
|
+
**验证点**:
|
|
257
|
+
1. 每种空值类型均被安全处理(异常/默认值/安全返回)
|
|
258
|
+
2. 空值处理策略与接口文档一致
|
|
259
|
+
3. 全程无崩溃、无未捕获异常
|
|
260
|
+
|
|
261
|
+
**对应的函数接口**:
|
|
262
|
+
- `calculate(x: number, y: number): number`
|
|
263
|
+
- 功能:对两个数值进行加法计算
|
|
264
|
+
- 在本用例中的作用:验证接口对 null/undefined 参数的处理能力
|
|
265
|
+
- `processArray(array: Array): Array`
|
|
266
|
+
- 功能:处理数组数据
|
|
267
|
+
- 在本用例中的作用:验证接口对空数组的处理能力
|
|
268
|
+
- `processString(str: string): string`
|
|
269
|
+
- 功能:处理字符串数据
|
|
270
|
+
- 在本用例中的作用:验证接口对空字符串的处理能力
|
|
271
|
+
- `processObject(obj: Object): Object`
|
|
272
|
+
- 功能:处理对象数据
|
|
273
|
+
- 在本用例中的作用:验证接口对空对象的处理能力
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### 2.6 异常/边界值输入用例模板
|
|
277
|
+
|
|
278
|
+
```markdown
|
|
279
|
+
### 用例序号:006
|
|
280
|
+
|
|
281
|
+
**用例名称**:异常参数与边界值输入验证
|
|
282
|
+
|
|
283
|
+
**输入条件**:
|
|
284
|
+
- 前提状态:库已正常初始化
|
|
285
|
+
- 输入参数:`calculate('abc', 10)`、`chunk([1, 2, 3], -1)`、`calculate(NaN, 10)`、`calculate(Infinity, 10)`、`chunk([1, 2, 3], 0)`、`clamp(Number.MAX_VALUE, 0, Number.MIN_VALUE)`
|
|
286
|
+
- 环境要求:无
|
|
287
|
+
|
|
288
|
+
**用例描述**:
|
|
289
|
+
验证接口对异常参数和边界值的处理能力。该用例通过传入类型不匹配参数、超限值、特殊值(NaN、Infinity)、负值等异常和边界输入,验证接口是否能正确识别并抛出预期异常或返回合理的处理结果,确保接口在各种极端输入下的健壮性。
|
|
290
|
+
|
|
291
|
+
**预期输出**:
|
|
292
|
+
1. 调用 `calculate('abc', 10)` 后,应抛出异常或返回错误码(类型不匹配)
|
|
293
|
+
2. 调用 `chunk([1, 2, 3], -1)` 后,应抛出异常或返回空结果(负值 size)
|
|
294
|
+
3. 调用 `calculate(NaN, 10)` 后,应抛出异常或返回 NaN(NaN 输入处理)
|
|
295
|
+
4. 调用 `calculate(Infinity, 10)` 后,应抛出异常或返回 Infinity(Infinity 输入处理)
|
|
296
|
+
5. 调用 `chunk([1, 2, 3], 0)` 后,应抛出异常或返回空结果(零值 size)
|
|
297
|
+
6. 调用 `clamp(Number.MAX_VALUE, 0, Number.MIN_VALUE)` 后,应合理处理数值溢出场景
|
|
298
|
+
7. 所有异常处理均不应导致崩溃,异常信息应明确可定位
|
|
299
|
+
|
|
300
|
+
**验证点**:
|
|
301
|
+
1. 类型不匹配输入的拒绝行为
|
|
302
|
+
2. 边界值(负值、零值、NaN、Infinity、溢出)的处理行为
|
|
303
|
+
3. 全程无崩溃,异常信息可定位
|
|
304
|
+
|
|
305
|
+
**对应的函数接口**:
|
|
306
|
+
- `calculate(x: number, y: number): number`
|
|
307
|
+
- 功能:对两个数值进行加法计算
|
|
308
|
+
- 在本用例中的作用:验证接口对类型不匹配、NaN、Infinity 等异常输入的处理
|
|
309
|
+
- `chunk(array: Array, size?: number): Array<Array>`
|
|
310
|
+
- 功能:将数组拆分成多个 size 长度的块
|
|
311
|
+
- 在本用例中的作用:验证接口对负值、零值 size 等边界输入的处理
|
|
312
|
+
- `clamp(number: number, lower: number, upper: number): number`
|
|
313
|
+
- 功能:将数值限制在范围内
|
|
314
|
+
- 在本用例中的作用:验证接口对数值溢出边界场景的处理
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### 2.7 大数据输入用例模板
|
|
318
|
+
|
|
319
|
+
```markdown
|
|
320
|
+
### 用例序号:007
|
|
321
|
+
|
|
322
|
+
**用例名称**:大数据量输入处理验证
|
|
323
|
+
|
|
324
|
+
**输入条件**:
|
|
325
|
+
- 前提状态:库已正常初始化
|
|
326
|
+
- 输入参数:大数组(10000+ 元素)、大字符串(10000+ 字符)、深度嵌套对象(10+ 层)、大量属性对象(1000+ 属性)
|
|
327
|
+
- 环境要求:无,建议在测试环境下控制超时阈值
|
|
328
|
+
|
|
329
|
+
**用例描述**:
|
|
330
|
+
验证接口在大数据量输入下的处理能力和性能表现。该用例通过传入大数组(10000+ 元素)、大字符串(10000+ 字符)、深度嵌套对象(10+ 层)、大量属性对象(1000+ 属性),验证接口在大数据量场景下是否能正确处理且不发生内存溢出、栈溢出或超时,确保接口的数据处理能力和稳定性。
|
|
331
|
+
|
|
332
|
+
**预期输出**:
|
|
333
|
+
1. 调用 `chunk(largeArray, 100)` 后,应正确返回分块结果且不发生内存溢出(大数组 10000+ 元素)
|
|
334
|
+
2. 调用 `difference(largeArray, excludeArray)` 后,应正确计算差异且不超时(大数组差异计算)
|
|
335
|
+
3. 调用 `cloneDeep(deepNestedObj)` 后,应完整拷贝所有层级且不发生栈溢出(10+ 层嵌套)
|
|
336
|
+
4. 调用 `get(wideObj, 'key_500')` 后,应正确获取属性值(1000+ 属性的宽对象)
|
|
337
|
+
5. 所有大数据量操作应在合理时间内完成(建议 5 秒内)
|
|
338
|
+
6. 大数据量操作不应导致应用崩溃或系统资源耗尽
|
|
339
|
+
|
|
340
|
+
**验证点**:
|
|
341
|
+
1. 大数据量下结果正确性(分块、差异、深拷贝、路径访问)
|
|
342
|
+
2. 无内存溢出、栈溢出或超时
|
|
343
|
+
3. 操作耗时在合理范围内
|
|
344
|
+
|
|
345
|
+
**对应的函数接口**:
|
|
346
|
+
- `chunk(array: Array, size?: number): Array<Array>`
|
|
347
|
+
- 功能:将数组拆分成多个 size 长度的块
|
|
348
|
+
- 在本用例中的作用:验证大数组分块处理的正确性和性能
|
|
349
|
+
- `difference(array: Array, ...values: Array[]): Array`
|
|
350
|
+
- 功能:返回数组差异
|
|
351
|
+
- 在本用例中的作用:验证大数据量差异计算的正确性和性能
|
|
352
|
+
- `cloneDeep(value: any): any`
|
|
353
|
+
- 功能:创建值的深拷贝
|
|
354
|
+
- 在本用例中的作用:验证深度嵌套结构深拷贝的正确性和稳定性
|
|
355
|
+
- `get(object: Object, path: string, defaultValue?: any): any`
|
|
356
|
+
- 功能:根据路径获取对象属性值
|
|
357
|
+
- 在本用例中的作用:验证大量属性对象的路径访问性能
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## 三、场景设计规范
|
|
363
|
+
|
|
364
|
+
### 3.1 空值场景(Null/Undefined/Empty)
|
|
365
|
+
|
|
366
|
+
- 传入 `null` 作为参数,验证接口是否抛出异常或返回安全默认值
|
|
367
|
+
- 传入 `undefined`,验证默认参数处理逻辑
|
|
368
|
+
- 传入空字符串 `''`、空数组 `[]`、空对象 `{}`
|
|
369
|
+
|
|
370
|
+
### 3.2 异常/边界值场景(Exception/Boundary)
|
|
371
|
+
|
|
372
|
+
- 传入类型不匹配的参数,验证类型校验能力
|
|
373
|
+
- 传入超限值,验证边界处理
|
|
374
|
+
- 传入特殊值(`NaN`、`Infinity`),验证特殊数值处理
|
|
375
|
+
|
|
376
|
+
### 3.3 大数据场景(Large Data)
|
|
377
|
+
|
|
378
|
+
- 传入大数组(10000+ 元素),验证性能和正确性
|
|
379
|
+
- 传入大字符串(10000+ 字符),验证长字符串处理能力
|
|
380
|
+
- 验证大数据场景下不发生内存溢出、栈溢出或超时
|
|
381
|
+
|
|
382
|
+
### 3.4 Mock场景
|
|
383
|
+
|
|
384
|
+
依赖外部资源的接口(如网络请求),在用例描述中标注Mock要求:
|
|
385
|
+
- 需要使用测试框架的Mock功能模拟外部响应
|
|
386
|
+
- 明确Mock返回值设置
|
|
387
|
+
|
|
388
|
+
### 3.5 异步等待场景
|
|
389
|
+
|
|
390
|
+
涉及异步行为的接口(如 `debounce`、`throttle`),在用例中设置合理等待时间:
|
|
391
|
+
- 异步操作应在合理时间内完成(建议设置超时验证)
|
|
392
|
+
- Promise resolve 后验证返回结果
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## 四、用例编写规范要点
|
|
397
|
+
|
|
398
|
+
### 4.1 用例名称命名规范
|
|
399
|
+
|
|
400
|
+
- ✅ **简洁明确**:以功能描述为基础,清晰表达用例目的
|
|
401
|
+
- ✅ **动词开头**:如"验证"、"测试"、"检查"
|
|
402
|
+
- ❌ **避免模糊**:如"功能测试"、"一般测试"
|
|
403
|
+
- ❌ **避免过长**:建议不超过 20 个字符
|
|
404
|
+
|
|
405
|
+
**命名示例对比:**
|
|
406
|
+
|
|
407
|
+
| 好的命名 | 不好的命名 |
|
|
408
|
+
|---------|-----------|
|
|
409
|
+
| 基础计算功能验证 | 测试一下计算 |
|
|
410
|
+
| 配置管理完整流程验证 | 配置功能测试 |
|
|
411
|
+
| 参数非法输入验证 | 异常测试 |
|
|
412
|
+
|
|
413
|
+
### 4.2 用例描述编写规范
|
|
414
|
+
|
|
415
|
+
- ✅ **详细完整**:说明用例的目的、测试场景、验证重点
|
|
416
|
+
- ✅ **逻辑清晰**:按步骤描述测试流程
|
|
417
|
+
- ✅ **帮助理解**:让开发者明白为什么需要这个测试
|
|
418
|
+
|
|
419
|
+
**描述模板:**
|
|
420
|
+
|
|
421
|
+
```
|
|
422
|
+
验证 [功能名称] 的 [核心能力] 是否正确实现。
|
|
423
|
+
该用例通过 [调用方式],传入 [参数类型],
|
|
424
|
+
验证 [返回值/状态变化/异常抛出] 是否符合预期,
|
|
425
|
+
确保 [功能特性] 的 [质量属性]。
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### 4.3 输入条件编写规范
|
|
429
|
+
|
|
430
|
+
- ✅ **前提状态明确**:说明用例执行前需要具备的前置状态、数据初始化情况
|
|
431
|
+
- ✅ **参数具体可复现**:列出实际传入的参数与取值(如 `calculate(10, 20)`)
|
|
432
|
+
- ✅ **环境要求显式**:涉及 Mock / 真机 / 网络 / 外部依赖时明确标注
|
|
433
|
+
|
|
434
|
+
**输入条件编写要点:**
|
|
435
|
+
|
|
436
|
+
1. **前提状态**:如"库已初始化""配置为空""未调用 init"等
|
|
437
|
+
2. **输入参数**:给出具体调用与参数值,保证用例可复现
|
|
438
|
+
3. **环境要求**:Mock 返回值设置、真机要求、等待时间等
|
|
439
|
+
|
|
440
|
+
### 4.4 预期输出编写规范
|
|
441
|
+
|
|
442
|
+
- ✅ **具体可验证**:列出明确的预期值、状态、异常类型
|
|
443
|
+
- ✅ **覆盖全面**:包括正常结果和异常情况
|
|
444
|
+
- ✅ **可量化**:尽量使用具体数值、字符串、状态标识
|
|
445
|
+
|
|
446
|
+
**预期结果编写要点:**
|
|
447
|
+
|
|
448
|
+
1. **返回值验证**:明确预期返回值(具体值或类型)
|
|
449
|
+
2. **状态验证**:明确状态变化(如配置已清除)
|
|
450
|
+
3. **异常验证**:明确异常类型和错误码
|
|
451
|
+
4. **类型验证**:明确返回值类型是否符合定义
|
|
452
|
+
|
|
453
|
+
### 4.5 验证点编写规范
|
|
454
|
+
|
|
455
|
+
- ✅ **聚焦断言目标**:每条验证点对应一个可断言的行为或结果
|
|
456
|
+
- ✅ **与预期输出呼应**:验证点是预期输出的凝练,覆盖功能正确性、边界/异常、状态变化
|
|
457
|
+
- ✅ **可用于生成断言代码**:验证点应能直接映射为 XTS 断言(`assertEqual` / `assertTrue` / `assertThrowError` 等)
|
|
458
|
+
|
|
459
|
+
**验证点编写要点:**
|
|
460
|
+
|
|
461
|
+
1. **功能正确性**:核心功能的正确性验证
|
|
462
|
+
2. **边界/异常**:异常输入、空值、边界值的处理行为验证
|
|
463
|
+
3. **状态影响**:状态变化或后续行为的影响验证
|
|
464
|
+
|
|
465
|
+
### 4.6 多接口关联说明规范
|
|
466
|
+
|
|
467
|
+
当用例包含多个接口时,必须说明:
|
|
468
|
+
|
|
469
|
+
1. **每个接口的功能**:简述接口作用
|
|
470
|
+
2. **在本用例中的作用**:说明该接口在用例中的使用目的
|
|
471
|
+
3. **与其他接口的关联**:说明调用顺序、依赖关系、验证关系
|
|
472
|
+
|
|
473
|
+
**关联说明示例:**
|
|
474
|
+
|
|
475
|
+
```markdown
|
|
476
|
+
- `interfaceA()`
|
|
477
|
+
- 在本用例中的作用:作为流程第一步,设置初始状态
|
|
478
|
+
- `interfaceB()`
|
|
479
|
+
- 在本用例中的作用:验证 interfaceA 的设置结果
|
|
480
|
+
- 与其他接口的关联:依赖于 interfaceA 设置的状态,用于验证结果
|
|
481
|
+
- `interfaceC()`
|
|
482
|
+
- 在本用例中的作用:作为流程最后一步,清除状态
|
|
483
|
+
- 与其他接口的关联:清除 interfaceA 设置的状态,通过 interfaceB 验证清除效果
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
## 五、特殊情况处理模板
|
|
489
|
+
|
|
490
|
+
### 5.1 需要 Mock 的用例
|
|
491
|
+
|
|
492
|
+
```markdown
|
|
493
|
+
### 用例序号:005
|
|
494
|
+
|
|
495
|
+
**用例名称**:网络请求功能验证(需 Mock)
|
|
496
|
+
|
|
497
|
+
**输入条件**:
|
|
498
|
+
- 前提状态:库已初始化,Mock 服务可用
|
|
499
|
+
- 输入参数:`fetchData('http://test.api')`
|
|
500
|
+
- 环境要求:需要使用测试框架的 Mock 功能模拟网络响应;Mock 返回值应设置为 `{ status: 200, data: { id: 1, name: 'test' } }`
|
|
501
|
+
|
|
502
|
+
**用例描述**:
|
|
503
|
+
验证网络请求功能的正确性。该用例需要先 Mock 网络响应,然后调用 `fetchData` 方法发起请求,验证返回的数据是否符合 Mock 设置,确保网络请求逻辑的正确性。
|
|
504
|
+
|
|
505
|
+
**预期输出**:
|
|
506
|
+
1. 在 Mock 网络响应的情况下,调用 `fetchData('http://test.api')` 应返回 Mock 设置的数据
|
|
507
|
+
2. 返回值结构符合接口定义(AxiosResponse 类型)
|
|
508
|
+
3. 返回值 `data` 字段应为 `{ id: 1, name: 'test' }`
|
|
509
|
+
4. 返回值 `status` 字段应为 `200`
|
|
510
|
+
|
|
511
|
+
**验证点**:
|
|
512
|
+
1. Mock 返回值与请求逻辑透传一致
|
|
513
|
+
2. 返回值结构符合接口定义
|
|
514
|
+
3. 请求完成后无资源泄漏
|
|
515
|
+
|
|
516
|
+
**对应的函数接口**:
|
|
517
|
+
- `fetchData(url: string): Promise<AxiosResponse>`
|
|
518
|
+
- 功能:发起网络请求并返回响应数据
|
|
519
|
+
- 在本用例中的作用:验证网络请求逻辑的正确性(需 Mock 网络响应)
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
### 5.2 需要异步等待的用例
|
|
523
|
+
|
|
524
|
+
```markdown
|
|
525
|
+
### 用例序号:006
|
|
526
|
+
|
|
527
|
+
**用例名称**:异步操作结果验证
|
|
528
|
+
|
|
529
|
+
**输入条件**:
|
|
530
|
+
- 前提状态:库已正常初始化
|
|
531
|
+
- 输入参数:`asyncExecute()`,等待 Promise resolve
|
|
532
|
+
- 环境要求:无;异步操作需在合理时间内完成(建议设置超时验证)
|
|
533
|
+
|
|
534
|
+
**用例描述**:
|
|
535
|
+
验证异步操作的正确性。该用例调用 `asyncExecute` 方法发起异步操作,等待 Promise 完成,验证返回的异步结果是否符合预期,确保异步操作逻辑的正确性。
|
|
536
|
+
|
|
537
|
+
**预期输出**:
|
|
538
|
+
1. 调用 `asyncExecute()` 返回 Promise 对象
|
|
539
|
+
2. Promise resolve 后,结果应为预期值 `{ success: true, result: 'done' }`
|
|
540
|
+
3. Promise 不应 reject(无异常抛出)
|
|
541
|
+
4. 异步操作应在合理时间内完成(建议设置超时验证)
|
|
542
|
+
|
|
543
|
+
**验证点**:
|
|
544
|
+
1. Promise 正确 resolve 且结果符合预期
|
|
545
|
+
2. 无 reject、无超时
|
|
546
|
+
3. 异步流程无状态污染
|
|
547
|
+
|
|
548
|
+
**对应的函数接口**:
|
|
549
|
+
- `asyncExecute(): Promise<Result>`
|
|
550
|
+
- 功能:执行异步操作并返回 Promise
|
|
551
|
+
- 在本用例中的作用:验证异步操作的正确性
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## 六、不可测试接口说明模板
|
|
557
|
+
|
|
558
|
+
当接口不可测试时,在"接口可测试性分析"部分详细说明原因:
|
|
559
|
+
|
|
560
|
+
```markdown
|
|
561
|
+
### 不可测试接口列表
|
|
562
|
+
|
|
563
|
+
| 接口名称 | 接口签名 | 不可测试原因 |
|
|
564
|
+
|---------|---------|-------------|
|
|
565
|
+
| renderUI | function(): void | 涉及 UI 组件创建和渲染,无法通过执行结果验证 |
|
|
566
|
+
| logMessage | function(msg: string): void | 仅日志输出,无返回值和状态变化,结果不可验证 |
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
**不可测试原因分类:**
|
|
570
|
+
|
|
571
|
+
1. **UI 相关**:涉及 UI 操作、组件创建、界面渲染
|
|
572
|
+
2. **输出型**:仅日志输出、无返回值、无状态变化
|
|
573
|
+
3. **外部依赖**:依赖不可控外部因素(网络、传感器、系统事件)
|
|
574
|
+
|
|
575
575
|
> 注:回调派发型接口(如 `onEvent(callback)`)**不属于**不可测试范畴——回调触发虽依赖外部事件,但可通过注入 Mock 实现验证回调透传,应按「可测试接口」处理(见 二、2.1/5.1)。
|