当前位置: 首页 > news >正文

软件测试及 AI+测试

软件测试培训:破冰 · 为什么需要测试 · 概念 · 方法 · 阻碍 · AI

程序员一半的代码都在防止你这种人

🎬 破冰:四格漫画

  • 你永远猜不到用户会怎么使用你的产品

酒吧点餐系统:唯独防不住干饭人

请添加图片描述

第 1 格

请添加图片描述

第 2 格

请添加图片描述

第 3 格

请添加图片描述

第 4 格


🛡️ 为什么需要测试

1) 做测试带来什么好处

  • 降低业务与合规风险,避免资金/数据事故
  • 加速交付:问题左移,重构有“安全网”
  • 质量可量化:覆盖率、SLO、错误率可度量
  • 稳定回归:CI 门禁 + 自动化回归
  • 成本最小化:缺陷越早发现修复成本越低

2) 不做测试有什么坏处

  • 线上事故频发,紧急回滚/补救成本高
  • 交付节奏混乱,需求返工与技术债堆积
  • 不可观测:无法定位问题与复现场景
  • 团队信任下滑:发布恐惧、协作效率下降

🔍 测试的概念

1) 测试的分类

  • 黑盒测试:基于外部行为与输入输出,关注需求与场景
  • 白盒测试:基于代码结构与路径(行/分支/条件)
  • 回归测试:变更后验证既有功能不被破坏(自动化优先)

2) 测试的名词

  • 边界:极小/极大/临界转折点(含空、零、负、超长、编码)
  • 覆盖率:行/分支/条件/MC-DC;场景覆盖与数据覆盖
  • 缺陷/需求占比:每个需求关联缺陷数与严重度占比
  • 缺陷密度与逃逸率:每千行/功能点缺陷量;生产逃逸缺陷比
  • 稳定性术语:Flaky(偶现不稳定)、MTTR/MTBF、P95/P99
  • 契约与依赖:Provider/Consumer 契约、变更影响面

3) 测试的不同阶段

  • 单元测试:函数/类级别,隔离外部依赖
  • 集成测试:组件/接口/契约/消息链路的组合验证
  • Web 测试:API/页面交互、兼容性与可用性
  • 系统测试:端到端业务流程与非功能(性能/可靠性/安全)
  • 交付/验收测试:基于验收标准与 DoD 的最终确认

4) 缺陷修复成本呈指数上升(Boehm)

阶段相对成本(×需求阶段)参考
需求1Boehm
设计3–6
开发≈10
内部测试20–40
外部测试30–70
大规模使用40–1000

请添加图片描述

缺陷在不同阶段修复的成本(示意)

5) 测试的心理学

  • 趋利避害:人们倾向期待“顺利”,测试需刻意寻找异常
  • 人无完人:软件亦然;测试能发现错误,难以证明“无错”
  • 心理预期:预期困难会使成功率下降(约 18%)
  • 避免自测偏见:程序员不应只由自己测试;鼓励交叉测试
  • 开放性:以用户视角与非常规路径进行探索,避免开发者思维定式

后端实践提示:JUnit5/Mockito、Testcontainers、Rest Assured/Pact、JMeter/Gatling、Resilience4j。


🧭 如何进行测试

1) 手动测试

  • 探索式/验收测试:围绕用户场景与边界行为
  • 清单化:步骤、预置数据、期望结果、回滚方式
  • 记录证据:截图/日志/请求回放,保证可追溯

2) 自动化测试

  • 单元:JUnit5/Mockito;组件:Testcontainers(MySQL/Redis/Kafka)
  • API/契约:Rest Assured/Pact;端到端:按关键业务链路
  • 非功能:JMeter/Gatling(吞吐、P95、错误率)

3) 什么时候需要测试

  • 代码变更/依赖升级/配置与灰度开关变更
  • 发布前(预发布/演练)、紧急修复后(回归)、容量变化前
  • 关键指标异常(监控告警)触发回归与定位

4) 测试的结果如何评定

  • 覆盖率:核心模块 ≥ 70%,关键分支必测
  • 契约校验:消费侧依赖 100%
  • 性能:P95 ≤ 目标;错误率 ≤ 0.2%
  • 可靠性:超时/重试/熔断有断言;幂等与补偿

5) 如何衡量测试的效果

  • 缺陷逃逸率与修复周期(MTTR)
  • 回归用例覆盖关键路径的比例
  • 流水线时长与稳定性(Flaky 率)

6) 测试过程、数据分析、数据挖掘

  • 过程:需求 → 用例/数据 → 执行 → 报告 → 回归
  • 分析:日志/指标/链路追踪(慢查询、高错误段)
  • 挖掘:聚类相似缺陷、识别高频问题模块,驱动优化

7) 接口测试(API)

  • 用例编排:正常流、异常流、幂等与重放、权限边界
  • 环境与数据:多环境变量、鉴权 Token、前置/后置脚本
  • 断言:状态码、Schema、业务字段、契约(Pact)
  • 工具:Postman/Apifox、Rest Assured、Testcontainers

8) 浏览器测试(Web/E2E)

  • 定位策略:可访问性选择器,避免脆弱 XPath
  • 稳定性:显式等待、网络拦截与 Mock、数据隔离
  • 覆盖点:关键链路、跨浏览器、视口与国际化
  • 工具:Playwright/Cypress;可配合 AI + Playwright MCP 辅助

9) 性能测试(P95/P99/SLO)

  • 模型:并发/到达率、升温/恒载/冲击、思考时间
  • 指标:吞吐、P95/P99、错误率、资源利用率、下游 QPS
  • 断言:SLA、熔断/限流、缓存命中率
  • 工具:JMeter/Gatling + Prometheus/Grafana

10) 安全测试(OWASP)

  • 风险:SQL 注入、XSS、CSRF、IDOR、弱鉴权、SSRF
  • 策略:最小权限、速率限制、输入校验、脱敏与审计
  • 自动化:依赖/镜像漏洞扫描、SAST/DAST、Secrets 扫描
  • 工具:OWASP ZAP/Burp、Trivy/Grype、Checkov/Gitleaks

🧱 测试常见阻碍(与解决思路)

  • 缺乏测试环境:容器化与 IaC;Testcontainers + 脱敏快照
  • 缺少测试人员:开发自测清单 + 基础自动化;培训与轮值
  • 缺少测试目标:从 PRD/契约提炼验收准则,形成 DoD/验收表
  • 测试耗时耗力:冒烟+关键路径优先;并行与数据工厂复用
  • 回归影响原有功能:契约稳定性;特性开关/灰度;回滚预案
  • 汇总:分层测试策略 + 自动化门禁 + 可观测性闭环;资产化用例/数据

🤖 AI 测试

  • 生成:用例草案、边界值、Mock 数据与负面输入(人工评审与留痕)
  • 辅测:日志根因聚类、相似缺陷归并、Fuzz 输入生成
  • 评审:PR 变更影响面与推荐测试清单
  • 度量:AI 解读覆盖率、逃逸率、P95 趋势,提示异常段
  • 风险:隐私/代码出境、幻觉与可追溯性;必须引入人工把关

🔗 延展链接

  • APIFOX AI 生成测试用例(可能需验证):链接
  • AI + Cursor + Playwright 测试(腾讯云开发者社区):链接
  • 测试技术栈(牛客):链接
http://www.dtcms.com/a/491465.html

相关文章:

  • oj字符串,求助讨论帖
  • 鸿蒙app开发中 class类中的 访问修饰符和静态修饰符 等这些命名的含义 以及用法
  • 大模型-AIGC技术在文本生成与音频生成领域的应用
  • 国内产品网站1688利用腾讯云建设网站
  • 下载免费网站模板下载移动网站建设机构
  • 公司网站怎么建温泉网站建设
  • error: can‘t find Rust compiler
  • 关于力扣第 167 场双周赛的赛后总结 第三四题
  • 网站开发h5技术两学一做网站源码
  • SpringBoot-自动配置原理
  • AI应用开发001-Conda和Jupyter Lab介绍
  • 在 Android Shell 终端上直接运行 OPENPPP2 网关路由配置指南
  • debug - MDK - arm-none-eabi - 从MDK工程做一个makefile工程出来
  • 郑州外贸网站建设商家内网网站开发报价
  • xxl-job pg数据库适配
  • OSPF路由协议重点总结
  • QT6中QToolBox功能与应用
  • Linux 进程信号机制详解
  • 淘宝客做网站推广自定义页面wordpress
  • YOLO-V1 与 YOLO-V2
  • 中科大少年班记(2025年10月)
  • 微信公众号端网站开发小程序开发费用一览表fhq华网天下
  • 体育数据库:搭建体育应用的核心「数据引擎」
  • 【JETSON+FPGA+GMSL】多功能图像采集卡,以高集成、多通道方案应对工业视觉挑战
  • 做网站教学书微信公众号下载安装
  • 【从零开始构建性能测试体系-07】理解响应时间、吞吐量与并发:性能测试关键指标解读
  • C/C++字符串
  • 上网站乱码python网站开发效率
  • 告别“搬砖”:在AI的辅助下,前端如何触及业务与架构的深水区?
  • 大显存 AI 训练实战:PyTorch/TensorFlow 参数调试与多场景落地指南