软测学习中的一些记录
2026/8/31 10:29:44 网站建设 项目流程

测试流程六个部分[1]

①掌握需求:保障软件质量的前提是,理解软件何为正确
②测试计划:有计划才能按时上线,才能控制成本
③测试用例:用例就是测试工作执行的细节
④测试执行:按照计划和用例,执行具体的测试工作
⑤测试报告:测试完之后,对软件质量的一个评估报告(适当可视化)
⑥回归测试:之前测试发现问题,开发修复后,再次测试

二 该工作一般会有两个部分

1.系统需求规格说明书:做计划,划分功能模块任务排期

2.BUG管理工具的地址和账户:

发现问题并记录(测试环境注明,格式:步骤-结果-期望),具体情况因地制宜

三、测试用例编写方法与常用设计技巧

测试用例是测试工作的核心,是验证软件功能是否正确的具体步骤和预期结果的集合。一个设计良好的测试用例可以提高测试效率,有效发现缺陷。本节将系统介绍测试用例的编写方法、设计技巧和最佳实践。

1. 测试用例的核心要素

一个完整的测试用例通常包含以下要素:

  • 用例编号:唯一标识符,便于追踪和管理。
  • 测试标题/名称:简明扼要地描述测试目的。
  • 前置条件:执行测试前需要满足的环境、数据或状态。
  • 测试步骤:清晰、可执行的操作序列。
  • 测试数据:测试过程中需要输入的具体数据。
  • 预期结果:每一步操作后,系统应有的正确响应。
  • 实际结果:执行测试后观察到的真实结果(执行时填写)。
  • 优先级:通常分为高、中、低,决定测试执行的顺序。
  • 测试类型:功能、性能、安全、兼容性等。
  • 所属模块:测试用例对应的功能模块。

2. 测试用例设计方法(黑盒测试常用)

以下方法主要用于黑盒测试,帮助系统性地设计测试用例,提高覆盖率。

2.1 等价类划分法

将输入域划分为若干等价类,从每个等价类中选取少数代表性数据作为测试用例。原则是:同一等价类中的输入,对揭露程序错误是等效的

  • 有效等价类:符合规格说明的、有意义的输入数据集合。
  • 无效等价类:不符合规格说明的、无意义的输入数据集合。

示例:一个用户名输入框,要求长度为6-18位字符。

  • 有效等价类:长度为6、12、18位的字符串。
  • 无效等价类:长度为5位、19位、空字符串、包含特殊字符的字符串。

2.2 边界值分析法

基于“错误更可能发生在输入域的边界处”的经验,对输入或输出的边界值进行测试。这是对等价类划分法的补充,通常一起使用。

  • 对于范围 [a, b],测试点通常包括:a-1, a, a+1, b-1, b, b+1。
  • 对于长度、数量、次数等,方法类似。

示例:同上用户名长度6-18位。

  • 边界值测试点:5位(刚好小于最小值)、6位(最小值)、7位(最小值+1)、17位(最大值-1)、18位(最大值)、19位(刚好大于最大值)。

2.3 因果图法

适用于输入条件较多,且条件之间存在相互约束关系的情况。通过分析输入条件(因)和输出结果(果)之间的逻辑关系,设计测试用例。

  • 步骤:分析规格说明,找出原因和结果 → 画出因果图 → 标注约束条件 → 将因果图转换为判定表 → 根据判定表设计测试用例。
  • 能有效发现组合条件下的错误。

2.4 判定表驱动法

适用于多个逻辑条件组合决定多个操作的情况。以表格形式表达逻辑关系,确保所有条件组合都被覆盖。

  • 构成:条件桩、动作桩、条件项、动作项。
  • 适合测试业务规则复杂的场景。

2.5 场景法(流程图法)

通过描述“用户场景”或“业务流”来设计测试用例,模拟用户真实的操作路径。尤其适合测试业务流程。

  • 基本流:最常用、最直接的业务操作路径(Happy Path)。
  • 备选流:各种异常、分支或错误的操作路径。

2.6 错误推测法

基于测试人员的经验和直觉,推测程序中可能存在的错误类型,并据此设计测试用例。

  • 例如:输入特殊字符、SQL注入语句、超长字符串、重复提交、网络中断等。

3. 测试用例编写最佳实践

  • 原子性:一个测试用例应只验证一个明确的功能点或场景。
  • 可重复性:不依赖外部状态,每次执行结果应一致。
  • 清晰明确:步骤、数据和预期结果必须具体、无歧义。
  • 可维护性:当需求变更时,易于更新。
  • 正向与反向结合:既要设计验证功能正常的用例(正向),也要设计验证异常处理的用例(反向)。
  • 优先级合理:核心功能、高频使用路径的用例优先级应设为“高”。

4. 测试用例管理工具

对于团队协作和长期项目,建议使用专业的测试用例管理工具:

  • Jira + Xray / Zephyr:与开发流程深度集成。
  • TestRail:功能强大的独立测试用例管理平台。
  • 禅道、Tapd:国内流行的项目管理工具,内置测试用例模块。
  • Excel/Google Sheets:小型团队或项目的轻量级选择。

核心价值:实现用例的版本控制、执行跟踪、结果统计和报告生成。

5. 一个完整的测试用例示例

要素内容
用例编号TC-LOGIN-001
测试标题验证使用有效用户名和密码可以成功登录系统
所属模块用户认证
优先级
前置条件1. 系统已部署并运行正常。
2. 存在一个已注册的用户,用户名:testuser,密码:Test@123。
测试步骤1. 打开系统登录页面。
2. 在“用户名”输入框中输入“testuser”。
3. 在“密码”输入框中输入“Test@123”。
4. 点击“登录”按钮。
测试数据用户名:testuser;密码:Test@123
预期结果1. 页面跳转到系统主页。
2. 页面右上角显示“欢迎,testuser”。
3. 浏览器的URL包含“/dashboard”。

掌握科学的测试用例设计方法,是成为一名优秀测试工程师的基础。在实际工作中,需要根据被测对象的特点,灵活组合运用多种方法,才能设计出高效、高覆盖率的测试用例集。

四 find_element写法

Selenium 升级到版本 4 以后,建议写成下面这种格式:

from selenium.webdriver.common.by import By

wd.find_element(By.ID, 'username').send_keys('byhy')
wd.find_element(By.CLASS_NAME, 'password').send_keys('sdfsdf')
wd.find_element(By.TAG_NAME, 'input').send_keys('sdfsdf')
wd.find_element(By.CSS_SELECTOR,'button[type=submit]').click()

五 黑盒测试与白盒测试

黑盒测试与白盒测试的定义

黑盒测试是一种不考虑内部代码结构的测试方法,仅关注输入与输出是否符合预期。测试人员无需了解系统内部实现细节,只需验证功能是否满足需求规格。

白盒测试则需要了解代码内部逻辑,通过检查程序结构、路径、条件和循环等来设计测试用例。测试人员需具备编程知识,确保代码的每一部分都被覆盖。

黑盒测试的特点

  • 关注功能:验证系统是否按需求工作。
  • 无需代码知识:测试人员无需编程背景。
  • 测试用例设计:常用等价类划分、边界值分析、因果图等方法。
  • 局限性:无法检测代码中的隐藏错误或冗余逻辑。

白盒测试的特点

  • 关注代码逻辑:检查代码路径、分支和条件。
  • 需要代码知识:测试人员需理解编程语言和实现细节。
  • 测试用例设计:常用语句覆盖、分支覆盖、路径覆盖等方法。
  • 局限性:可能遗漏未实现的用户需求或接口问题。

适用场景对比

  • 黑盒测试:适合功能验收测试、系统测试和用户场景验证。
  • 白盒测试:适合单元测试、集成测试和代码质量评估。

常用技术或工具

  • 黑盒测试工具:Selenium(Web自动化)、Postman(API测试)、JMeter(性能测试)。
  • 白盒测试工具:JUnit(Java单元测试)、PyTest(Python测试)、Coverity(静态代码分析)。

结合使用的优势

在实际项目中,通常结合两种方法:

  • 黑盒测试确保功能符合需求。
  • 白盒测试提升代码健壮性和覆盖率。

六 冒烟测试

冒烟测试的定义

冒烟测试(Smoke Testing)是一种初步的软件测试方法,用于验证系统的基本功能是否正常运行。通常在开发或构建新版本后执行,目的是快速发现关键缺陷,确保软件的基本核心功能没有严重问题。

冒烟测试的特点

  • 快速执行:测试用例通常较少,仅覆盖核心功能,耗时短。
  • 高优先级:重点测试影响系统启动或主要流程的关键功能。
  • 非详尽测试:不涉及边缘案例或细节功能验证。

冒烟测试的应用场景

  • 持续集成(CI):在代码提交后自动运行冒烟测试,确保新代码未破坏核心功能。
  • 版本发布前:在正式测试前快速验证版本是否可测试。
  • 修复缺陷后:确认修复的缺陷未引入新的重大问题。

冒烟测试的执行步骤

  1. 选择测试用例:选取覆盖主要功能的高优先级测试用例,例如用户登录、核心业务流程等。
  2. 执行测试:运行选定的测试用例,观察系统行为是否符合预期。
  3. 分析结果:若测试通过,继续进行详细测试;若失败,则需修复问题后重新验证。

冒烟测试与回归测试的区别

  • 冒烟测试:聚焦核心功能,快速验证版本稳定性。
  • 回归测试:覆盖更广泛的功能,确保新修改未影响现有功能

冒烟测试的工具支持

  • 自动化工具:如Selenium、JUnit、TestNG等,适合集成到CI/CD流水线。
  • 手动执行:适用于小型项目或初期开发阶段。

通过冒烟测试,团队可以快速识别关键问题,避免在后续测试或发布过程中浪费资源。

七 CI/CD

CI/CD(Continuous Integration / Continuous Deployment)是将接口测试(及其他测试)自动化嵌入开发流水线的核心实践。上面这张流程图展示了一条完整的 CI/CD 流水线。

CI/CD 是什么

概念全称核心思想
CIContinuous Integration(持续集成)开发者频繁合并代码到主干,每次合并自动触发构建和测试
CDContinuous Deployment / Delivery(持续部署/交付)通过自动化将验证通过的代码发布到生产环境

CI 确保"每次提交都经过验证",CD 确保"验证通过的代码能快速、安全地上线"。


流水线各阶段详解

CI 阶段(持续集成)

1. 代码提交

  • 开发者通过git push将代码推送到远程仓库(GitHub/GitLab/Gitee)
  • 触发 Webhook 通知 CI/CD 平台启动流水线

2. 代码质量检查

  • 静态分析:SonarQube、ESLint、Checkstyle、PMD
  • 安全扫描:SAST(Snyk、Semgrep)、依赖漏洞检测(Dependabot)
  • 格式规范:Prettier、Black、go fmt

3. 构建编译

  • 编译源码、打包依赖、生成可执行文件或 Docker 镜像
  • 工具:Maven/Gradle(Java)、npm/pnpm(Node.js)、Go Build、Docker Build

4. 自动化测试

  • 单元测试:JUnit、pytest、Jest —— 覆盖核心逻辑
  • 接口测试:pytest + requests、Postman/Newman Collection、REST Assured
  • E2E 测试:Cypress、Playwright、Selenium

5. 制品打包

  • 构建 Docker 镜像、编译产物 JAR/ZIP
  • 推送到制品仓库(Harbor、Nexus、Docker Registry)

CD 阶段(持续部署)

6. 预发布环境部署

  • 将新版本部署到 staging 环境
  • 执行集成验证、回归测试、性能测试

7. 生产部署

  • 滚动更新、蓝绿部署、金丝雀发布
  • 工具:ArgoCD、FluxCD、Jenkins、GitHub Actions

8. 监控与告警

  • Prometheus + Grafana、ELK、SkyWalking
  • 发布后自动监控错误率、响应时间、业务指标

主流 CI/CD 平台

平台特点适用场景
GitHub Actions与 GitHub 深度集成、YAML 配置、丰富市场开源项目、GitHub 仓库
GitLab CI/CD内置 CI/CD、.gitlab-ci.yml 配置、私有部署企业级私有化
Jenkins插件生态最丰富、高度可定制、社区成熟传统企业、复杂流水线
ArgoCDGitOps 原生、声明式部署、Kubernetes 原生云原生 K8s 环境
云效/腾讯云 CODING国内一站式 DevOps、中文友好国内企业
CircleCI / Travis CI配置简单、云端托管中小型项目

注:[1] B站博主:测试干货铺http://【【2026最新版】软件测试零基础入门到精通教程,全程干货,适合小白入门,别再盲目自学了!】https://www.bilibili.com/video/BV1U9iEBREWt?p=4&vd_source=a94a2e7a699eae782e68e7e73ed12ff4

[2] B站博主:白月黑羽编程

http://【Python + Selenium Web自动化 - 2024 更新版 - 自动化测试 爬虫】https://www.bilibili.com/video/BV1Z4411o7TA?vd_source=a94a2e7a699eae782e68e7e73ed12ff4

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询