软测学习中的一些记录
一测试流程六个部分[1]①掌握需求保障软件质量的前提是理解软件何为正确②测试计划有计划才能按时上线才能控制成本③测试用例用例就是测试工作执行的细节④测试执行按照计划和用例执行具体的测试工作⑤测试报告测试完之后对软件质量的一个评估报告适当可视化⑥回归测试之前测试发现问题开发修复后再次测试二 该工作一般会有两个部分1.系统需求规格说明书做计划划分功能模块任务排期2.BUG管理工具的地址和账户发现问题并记录测试环境注明格式步骤-结果-期望具体情况因地制宜三、测试用例编写方法与常用设计技巧测试用例是测试工作的核心是验证软件功能是否正确的具体步骤和预期结果的集合。一个设计良好的测试用例可以提高测试效率有效发现缺陷。本节将系统介绍测试用例的编写方法、设计技巧和最佳实践。1. 测试用例的核心要素一个完整的测试用例通常包含以下要素用例编号唯一标识符便于追踪和管理。测试标题/名称简明扼要地描述测试目的。前置条件执行测试前需要满足的环境、数据或状态。测试步骤清晰、可执行的操作序列。测试数据测试过程中需要输入的具体数据。预期结果每一步操作后系统应有的正确响应。实际结果执行测试后观察到的真实结果执行时填写。优先级通常分为高、中、低决定测试执行的顺序。测试类型功能、性能、安全、兼容性等。所属模块测试用例对应的功能模块。2. 测试用例设计方法黑盒测试常用以下方法主要用于黑盒测试帮助系统性地设计测试用例提高覆盖率。2.1 等价类划分法将输入域划分为若干等价类从每个等价类中选取少数代表性数据作为测试用例。原则是同一等价类中的输入对揭露程序错误是等效的。有效等价类符合规格说明的、有意义的输入数据集合。无效等价类不符合规格说明的、无意义的输入数据集合。示例一个用户名输入框要求长度为6-18位字符。有效等价类长度为6、12、18位的字符串。无效等价类长度为5位、19位、空字符串、包含特殊字符的字符串。2.2 边界值分析法基于“错误更可能发生在输入域的边界处”的经验对输入或输出的边界值进行测试。这是对等价类划分法的补充通常一起使用。对于范围 [a, b]测试点通常包括a-1, a, a1, b-1, b, b1。对于长度、数量、次数等方法类似。示例同上用户名长度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密码Test123。测试步骤1. 打开系统登录页面。2. 在“用户名”输入框中输入“testuser”。3. 在“密码”输入框中输入“Test123”。4. 点击“登录”按钮。测试数据用户名testuser密码Test123预期结果1. 页面跳转到系统主页。2. 页面右上角显示“欢迎testuser”。3. 浏览器的URL包含“/dashboard”。掌握科学的测试用例设计方法是成为一名优秀测试工程师的基础。在实际工作中需要根据被测对象的特点灵活组合运用多种方法才能设计出高效、高覆盖率的测试用例集。四 find_element写法Selenium 升级到版本 4 以后建议写成下面这种格式from selenium.webdriver.common.by import Bywd.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[typesubmit]).click()五 黑盒测试与白盒测试黑盒测试与白盒测试的定义黑盒测试是一种不考虑内部代码结构的测试方法仅关注输入与输出是否符合预期。测试人员无需了解系统内部实现细节只需验证功能是否满足需求规格。白盒测试则需要了解代码内部逻辑通过检查程序结构、路径、条件和循环等来设计测试用例。测试人员需具备编程知识确保代码的每一部分都被覆盖。黑盒测试的特点关注功能验证系统是否按需求工作。无需代码知识测试人员无需编程背景。测试用例设计常用等价类划分、边界值分析、因果图等方法。局限性无法检测代码中的隐藏错误或冗余逻辑。白盒测试的特点关注代码逻辑检查代码路径、分支和条件。需要代码知识测试人员需理解编程语言和实现细节。测试用例设计常用语句覆盖、分支覆盖、路径覆盖等方法。局限性可能遗漏未实现的用户需求或接口问题。适用场景对比黑盒测试适合功能验收测试、系统测试和用户场景验证。白盒测试适合单元测试、集成测试和代码质量评估。常用技术或工具黑盒测试工具SeleniumWeb自动化、PostmanAPI测试、JMeter性能测试。白盒测试工具JUnitJava单元测试、PyTestPython测试、Coverity静态代码分析。结合使用的优势在实际项目中通常结合两种方法黑盒测试确保功能符合需求。白盒测试提升代码健壮性和覆盖率。六 冒烟测试冒烟测试的定义冒烟测试Smoke Testing是一种初步的软件测试方法用于验证系统的基本功能是否正常运行。通常在开发或构建新版本后执行目的是快速发现关键缺陷确保软件的基本核心功能没有严重问题。冒烟测试的特点快速执行测试用例通常较少仅覆盖核心功能耗时短。高优先级重点测试影响系统启动或主要流程的关键功能。非详尽测试不涉及边缘案例或细节功能验证。冒烟测试的应用场景持续集成CI在代码提交后自动运行冒烟测试确保新代码未破坏核心功能。版本发布前在正式测试前快速验证版本是否可测试。修复缺陷后确认修复的缺陷未引入新的重大问题。冒烟测试的执行步骤选择测试用例选取覆盖主要功能的高优先级测试用例例如用户登录、核心业务流程等。执行测试运行选定的测试用例观察系统行为是否符合预期。分析结果若测试通过继续进行详细测试若失败则需修复问题后重新验证。冒烟测试与回归测试的区别冒烟测试聚焦核心功能快速验证版本稳定性。回归测试覆盖更广泛的功能确保新修改未影响现有功能。冒烟测试的工具支持自动化工具如Selenium、JUnit、TestNG等适合集成到CI/CD流水线。手动执行适用于小型项目或初期开发阶段。通过冒烟测试团队可以快速识别关键问题避免在后续测试或发布过程中浪费资源。七 CI/CDCI/CDContinuous 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安全扫描SASTSnyk、Semgrep、依赖漏洞检测Dependabot格式规范Prettier、Black、go fmt3. 构建编译编译源码、打包依赖、生成可执行文件或 Docker 镜像工具Maven/GradleJava、npm/pnpmNode.js、Go Build、Docker Build4. 自动化测试单元测试JUnit、pytest、Jest —— 覆盖核心逻辑接口测试pytest requests、Postman/Newman Collection、REST AssuredE2E 测试Cypress、Playwright、Selenium5. 制品打包构建 Docker 镜像、编译产物 JAR/ZIP推送到制品仓库Harbor、Nexus、Docker RegistryCD 阶段持续部署6. 预发布环境部署将新版本部署到 staging 环境执行集成验证、回归测试、性能测试7. 生产部署滚动更新、蓝绿部署、金丝雀发布工具ArgoCD、FluxCD、Jenkins、GitHub Actions8. 监控与告警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?p4vd_sourcea94a2e7a699eae782e68e7e73ed12ff4[2] B站博主白月黑羽编程http://【Python Selenium Web自动化 - 2024 更新版 - 自动化测试 爬虫】https://www.bilibili.com/video/BV1Z4411o7TA?vd_sourcea94a2e7a699eae782e68e7e73ed12ff4
