资讯详情

资讯详情

软件测试分类不是背名词,而是用筛选逻辑排测试计划

简介一份面向软件测试初学者和从业人员的软件测试分类专题PPT内容系统梳理软件测试的多维划分方式包括基于是否关注内部结构的黑盒测试与白盒测试、基于是否执行程序的静态测试与动态测试以及开发周期中的单元测试、集成测试、系统测试和验收测试并扩充回归测试、性能测试、安全性测试等常见测试类型。资源为1个PPT文件大小1.07MB文件主题集中适合作为课程教学、自学入门或培训演示的配套素材。目前已有141人学习浏览。PPT通过对比与实例的方式清晰讲解各类测试方法的原理、适用环境、优缺点和典型技术如黑盒测试中的等价类划分、因果图、边界值分析白盒测试中的静态分析与动态测试以及回归、负载、易用性、安全性等专项测试的关注重点帮助读者快速建立软件测试知识框架并理解不同测试策略在软件质量保障中的实际作用可直接用于课堂教学、考前梳理或项目测试方案设计参考。1. 软件测试测试分类不是让你背名词而是让你在有限人天里回答“这段改动用什么守”很多人打开《软件测试测试分类推选PPT文档.ppt》时以为里面不过把单元测试、集成测试、系统测试、性能测试、安全测试这些名词按金字塔形状排了一页。真正排测试计划时才发现分类这件事的用途根本不是穷举测试类型而是让团队在每次版本迭代的有限人天里快速回答一句话——这段代码改动我该用哪几类测试去守这个回答一旦有了测试用例设计、环境准备、自动化投入比例、人天估算全都能顺着往下排。我一般会把这类PPT当成一套“筛选逻辑”来用而不是当成名词陈列馆。这篇笔记就按我改造这份PPT成稿的思路把测试分类从一张图拆成可以落地的决策步骤含参数、边界和踩坑记录适合测开、测试组长和对测试策略有话语权的人看。2. 测试分类的四条主线为什么不能只按“功能/非功能”切一刀2.1 按开发阶段切单元、集成、系统、验收测试最容易被接受的分类方法是按开发阶段走。单元测试守函数和类集成测试守模块之间的接口系统测试守整个产品的端到端行为验收测试守需求方最终签字的那几条业务主线。这四个阶段不冲突也不互斥它们其实是同一条流水线上的不同关卡。我见过很多PPT把这四类画成四个方块旁边标上“由开发人员做”“由测试人员做”这是简化到失真。实际排期时阶段分类要回答的是“改动发生在哪一层就先从哪一层开始守”。举个常见做法后端改了支付接口的返回码你不能只做系统测试因为系统测试从UI点进去中间隔着鉴权、路由、加密脏数据很难定位正确的顺序是先把单元级边界用例跑掉再做一次接口级集成最后补一条UI冒烟。每一层的通过标准不一样单元测试看分支覆盖率和断言结果集成测试看接口契约是否被破坏系统测试看业务闭环是否可用。参数上我一般用“改动影响半径”来确定该走哪几个阶段。改动只涉及一个函数内部逻辑且该函数没有对外接口变化就停在单元测试加一条用例改动涉及两个模块间的报文格式就必须追加集成测试改动影响了用户操作入口才把系统测试拉进来。这个半径判断不需要工具靠代码评审时的diff范围就能估。PPT里应该放一张“阶段选择表”横向是改动类型纵向是四个阶段打勾的才是本轮要执行的。2.2 按是否运行程序切静态测试与动态测试另一种横切方式是看程序跑不跑。静态测试不执行代码只做代码评审、静态扫描、规范检查动态测试要真正把程序跑起来喂数据、看响应、比对结果。静态测试便宜一轮代码评审半小时能做完全组的关键diff动态测试贵构造环境、准备数据、执行用例、分析失败一条用例平均几分钟到几十分钟不等。很多团队都把静态测试当成“开发自己看代码”这是把概念缩小了。静态测试的有效场景包括新人的代码有没有低级错误有没有未关闭的资源有没有明显的SQL拼接痕迹。这些靠人眼看得慢靠静态扫描工具能在一分钟内扫完整个项目。动态测试则负责回答“程序行为是否符合预期”——只有动态测试能暴露运行时才出现的问题比如并发竞争、资源泄漏、异常分支下的崩溃。两者不是替代关系而是按成本递进的关系。我一般要求先过静态扫描任何高危告警清零之后才允许进入动态测试环节。这个顺序本身就是一道过滤器能把最便宜的问题拦在编译期之前。PPT讲到这一节时应该给两张对比截图一张是静态扫描告警列表一张是同一处问题在动态测试中引发的崩溃日志这样听众就懂了为什么要先静态后动态。2.3 按执行方式切手工测试与自动化测试手工测试与自动化测试的分类最容易引发争论原因是很多人把“自动化测试”当成一种测试类型实际上它是执行方式。手工适合探索性场景、UI视觉验证、复杂业务流的临时判断自动适合回归频繁、步骤固定、需要大量数据组合的用例。选择依据不是“团队会不会写脚本”而是“这条用例打算跑几次”。一条用例只跑一次手写手工更快一条用例要在每个版本跑十次不自动化才是浪费。自动化测试的成本要算三笔账第一笔是脚本编写成本通常一条用例从录制到稳定需要0.5到2人天第二笔是维护成本每次UI变更都可能让脚本失效第三笔是执行环境成本需要CI或定时任务来支撑。手工测试只有一笔账就是执行时的人力占用。所以对于界面频繁改版、业务规则还在快速变化的功能我不建议一上来就自动化等界面稳定、规则固定后再补脚本性价比最高。参数上可以定一条经验规则用例执行频率达到每周至少一次并且预期未来三个月不会有大改版才值得投入自动化。这条规则能避免两个极端——一个是什么都自动化结果是脚本比功能先腐化另一个是永远手工结果是每次回归都消耗巨大人力。而按执行方式分类之后PPT里要给出一个二维矩阵横轴是功能稳定性纵轴是执行频率落在右上象限的用例优先自动化。2.4 按是否查看代码切黑盒、白盒与灰盒黑盒不看内部结构只通过输入输出验证行为白盒要看代码路径追求语句、分支、条件的覆盖率灰盒介于两者之间通常是了解部分内部实现来设计更有效的黑盒用例。这三者的边界不是非黑即白。纯粹的白盒测试由开发来做因为只有写代码的人知道哪个分支最难走到黑盒测试更多由测试人员来做模拟真实用户视角灰盒则往往由既懂代码又懂业务的测开来做能精准定位接口层问题比如报文里某个字段为空时系统到底走异常分支还是悄悄默认值。一个常见翻车点是考核指标用了“行覆盖率必须达到80%”结果测试人员为了凑覆盖率写了大量无断言的测试只调用不校验覆盖率数字很好看但拦不住任何缺陷。所以白盒覆盖率应该作为辅助信息不能作为唯一验收标准。黑盒用例关注的是业务价值白盒用例关注的是代码风险两者合起来才能覆盖“用户会怎么用”和“代码哪里容易错”。灰盒的价值在接口测试中体现得最明显。做接口测试时测试人员能看到接口定义、字段约束、错误码清单但不需要看懂全部源码。这就是灰盒的典型姿态——比黑盒多知道一层契约比白盒少看一层实现。做PPT时可以用一个三栏表格把黑盒、灰盒、白盒的输入、观察点、产出物列清楚避免听众把灰盒理解成“随便看看代码”。3. 功能与非功能两条最常用的分支怎么落到测试用例上3.1 功能测试验证行为的最小闭环功能测试的核心不是“点了按钮有没有反应”而是验证某条业务规则在给定输入下是否产生预期输出并且这个输出在边界、异常、重复执行时是否稳定。一条功能测试用例的最小闭环是前置条件、输入数据、执行动作、预期结果、实际结果。缺了前置条件用例不可复现缺了预期结果执行完也不知道算不算通过。写功能用例时要重点补三个维度的输入正常值、边界值、非法值。比如一个金额字段允许输入0.01到10000正常值取500边界值取0.01和10000非法值取负数、0、10001、非数字字符。很多团队只写了正常流程导致缺陷都集中在边界上。这个现象不是偶然而是用例设计方法缺失。功能测试的另一个关注点是“业务闭环”即不只验证单个功能点还要把多个功能点串起来验证。比如下单成功后库存有没有扣减、优惠券有没有标记已用、支付流水有没有落库这些属于跨模块的功能验证。只对单个接口做返回码断言发现不了“库存扣了但订单状态没更新”的分布式问题。所以功能测试用例要分两层单点的用例聚焦输入输出链路的用例聚焦状态流转。3.2 非功能测试性能、安全、兼容性、易用性的执行取舍非功能测试往往被排在版本发布前一天然后在时间不足时被砍掉。这个现象普遍到几乎成了行业习惯但回头看事故很多线上问题恰恰来自非功能维度并发一高接口就超时、某个浏览器版本白屏、未登录用户可以绕过鉴权拿到数据。非功能测试不是锦上添花它是功能测试之外的另一道闸门。性能测试的参数要提前定好不能等压测时才想。吞吐量看每秒请求数延迟看P95和P99资源看CPU和内存峰值稳定性看长时间持续运行有没有内存泄漏。环境最好与生产规格一致否则压测数据只能做趋势参考不能做容量评估。安全测试至少覆盖鉴权绕过、越权访问、输入注入、敏感信息明文传输几个方向。兼容性测试则要选定目标用户真正在用的设备与浏览器组合而不是把市面上的主流产品全部测一遍。易用性测试与其说测试不如说观察。找几个没有参与过本产品设计的人走一遍核心流程记录他们在哪里停顿、哪里犹豫、哪里误操作这些观察比任何自动化检查都更能说明问题。非功能测试彼此之间也要排优先级新系统上线性能和安全性优先已有系统迭代兼容性和易用性可以适当放缓。PPT里需要一张“非功能维度的进入标准表”写明每个维度的触发条件和最低测试时长。3.3 回归、冒烟、探索性测试哪类项目优先需要这三种测试不是独立类型而是按执行目的定义的测试活动。冒烟测试在每次构建或部署后快速跑一遍核心链路确认系统“能启动、能登录、能走通主流程”一般控制在十分钟内。回归测试在修复缺陷或新增功能后把主路径和受影响模块的历史用例重新执行防止旧问题复现或新改动破坏已有功能。探索性测试则不预设详细用例由测试人员基于对业务的理解边操作边发现异常。我一般建议的搭配是每次提交代码后跑一轮自动化冒烟每个版本发布前跑一轮完整回归自动化为主手工补充高复杂度场景探索性测试放在手工测试人员有空余时段做不需要占用全部测试周期。同一个功能在不同时间点会经历这三类测试开发自测时是功能用例提测前是冒烟子集发版前又回到回归全集。这个“同一批用例在不同阶段以不同子集出现”的逻辑正是测试分类的实际价值所在。4. 要把测试分类装进“推荐PPT文档”关键是把分类关系画对4.1 用一张总分类图把多维关系讲清楚很多PPT把测试分类画成一棵大树根节点是“软件测试”分叉是“功能测试”“非功能测试”“自动化测试”“手工测试”这个画法会把不同维度混在同一层读者自然会问自动化怎么跟功能并排自动化是执行方式功能是测试目标它们描述的是同一条用例的两个标签不是互斥的类别。正确的做法是多维度标注同一条用例比如一条支付接口用例它同时是“接口层集成测试”“功能测试”“自动化执行”“灰盒设计”这些是它的不同标签不是不同类别。所以我在这类PPT里通常放一张“多维标签图”横轴是开发阶段纵轴是测试目标点的大小表示执行频率颜色区分自动与手工。这样一页就能说清楚某条用例在阶段、目标、执行方式三个维度上的位置。这张图不复杂用表格就能实现——每条用例一行标记它的阶段、目标、方式、频率然后在总结页把相同标签的用例聚合统计。4.2 用一张参数表和案例对比把分类标准串起来PPT不能只讲概念必须给一个具体的案例对比。常见做法是拿一个“订单支付”功能列出一组用例然后要求听众给每条用例打标签。通过这个练习听众会发现同一条用例可以被标上很多标签而不同的人标的还不一样。这个差异正是分类标准不统一导致的。我用一张参数表来解决用例编号用例名开发阶段测试目标执行方式设计方法执行频率是否自动化TC001支付成功后订单状态流转集成功能自动灰盒每次发版是TC002支付接口并发重复请求系统功能/性能自动灰盒每个版本是TC003新用户首单支付体验系统易用性手工黑盒每次大版本否TC004支付金额边界校验单元功能自动白盒每次提交是TC005支付网关超时重试集成功能/可靠性自动灰盒每个版本是每列都是一个分类维度行是同一条用例的多维属性。做法是让听众对照自己项目的核心功能填出一张同样的表。填的过程中他们就会意识到平时说的“要做功能测试和性能测试”其实是同一个用例在不同维度上的两条标签而不是两批不同的用例。4.3 让每张分页都回答“该用谁、什么时候用”PPT分页不该只给名词解释每页都应该回答一个问题——这个分类项在什么场景下才会被用到用了之后会得到什么可执行的结果。比如讲性能测试那一页要写清楚进入条件是“接口平均响应时间超过500ms且用户量预期过万”通过标准是“P95小于800ms且无内存泄漏”。有了进入条件和通过标准听众回到项目里才能判断自己要不要做、做到什么程度叫合格。执行方式那一页要讲清楚自动化适合哪些用例不适合哪些用例。手工适合探索性、视觉效果、主观体验类自动化适合数据驱动、高频回归、接口稳定类。每页分页最后加一行“常用选择建议”用一句话总结接口层优先自动化UI层手工为主性能与安全按版本频率周期性执行。这样整份PPT看完听众带走的不只是概念还有一张可以选择测试类型的检查清单。我习惯把PPT控制在15页以内前三页讲清楚四条主线中间五页讲功能与非功能的具体分支后三页放案例表格与选择建议最后两页放常见误区和避坑提醒。页数越少每页承载的决策信息越重读者越容易带走。5. 测试分类实践中的三个常见问题与排查思路5.1 维度混在一起讲完PPT后团队仍然无法对齐现象会议当场大家都点头回去写测试计划时A同学把“自动化测试”列为一个测试阶段B同学把它归入非功能测试C同学把冒烟测试当成一个独立的测试类型写在功能测试旁边。三个人的分类图完全对不上测试计划评审时吵成一团。原因PPT只展示了分类项没有展示分类轴的边界。听众不清楚“功能/非功能”是一条轴“手工/自动”是另一条轴“单元/集成/系统/验收”又是第三条轴不同轴的分类项可以叠加但不能互相包含。解决在PPT里增加一张“标签归属”示例页让每个人为同几条用例打标签然后现场对比差异。做完这轮练习后宣布统一规则任何一条用例都必须有且至少有四个标签——阶段标签、目标标签、方式标签、设计方法标签。缺一个标签用例就不允许进入用例库。这个规则一经固定后续测试计划评审就不会再在分类口径上争论。5.2 把自动化当成非功能测试分类错位导致决策失焦现象某团队在写测试计划时把“自动化测试”放在“非功能测试”目录下和性能测试、安全测试并列。结果每次评审自动化都被当成“有条件就做没条件就砍”的可选项和性能、安全享受同等待遇最后所有自动化用例都被砍掉了。原因非功能测试的定义是“验证系统在特定条件下的质量属性”自动化是一种执行手段不是质量属性。两者并列本身就是分类逻辑错误。自动化的价值体现在回归频率上把它列为非功能会让管理层误以为它是“锦上添花”而不是“降低成本的手段”。解决把PPT中的分类轴重新画一遍自动化测试从“非功能测试”目录下移到“执行方式”轴上与手工测试并排。同时给自动化单独算一笔账一条用例手工执行每次5分钟版本周期内执行10次自动化脚本维护成本摊薄后每次执行不到1分钟净节省时间一目了然。分类归位后决策逻辑才会跟着归位。5.3 每个分类都做了资源却不够用过度分类拖垮测试产出现象某项目按PPT里的全部分类维度排测试计划单元、集成、系统、验收全做功能、性能、安全、兼容性、易用性全做手工自动并行结果是人天超出预算三倍测试还没做完版本已经延期。原因分类是“可能性全集”不是“必做全集”。真正制定计划时要基于风险做筛选而不是基于分类做覆盖。一个修改量很小的版本根本不需要启动安全测试和易用性测试一个新上线的内部工具也不一定需要完整的兼容性矩阵。分类的价值在于你可以从中选出必要项不是把所有项都背在身上。解决建立两个筛选条件。第一个是“变更影响面”——只测本轮改动波及的功能和非功能维度。第二个是“业务风险等级”——涉及资金、隐私、核心链路的功能必须做安全和可靠性内部低频工具做到功能和性能冒烟即可。没有受变更影响、也没有高风险标签的分类项本轮直接跳过而不是安排人力去“意思一下”。6. 进阶技巧从分类走向筛选让测试计划在分类图上做减法测试分类走到最后真正的价值在于“筛选”而不是“排列”。我有个习惯动作每次拿到提测需求先往分类图上打点把本轮改动涉及的阶段、目标、方式逐个勾出来然后强制自己删掉至少三分之一。比如一个纯前端页面样式调整单元测试改几个针对工具函数的用例就够了安全测试和性能测试这轮可以直接划掉支付接口动了鉴权逻辑那安全和性能就要保留但不需要动兼容性测试。这个筛选动作我用一个简单的Python脚本辅助完成。脚本不复杂输入是需求的变更类型和风险标签输出是建议执行的测试分类清单。# 测试分类筛选根据变更类型与风险标签输出本轮必做测试分类 def filter_tests(change_types, risk_flags): # 阶段维度接口/底层改动触发单元与集成入口变动触发系统与验收 stages set() if 接口 in change_types or 底层 in change_types: stages.update([单元测试, 集成测试]) if 入口 in change_types or 流程 in change_types: stages.update([系统测试, 验收测试]) # 目标维度涉及资金/隐私强制安全涉及交互体验补易用性 targets {功能测试} if 资金 in risk_flags or 隐私 in risk_flags: targets.add(安全测试) if 性能 in risk_flags: targets.update([性能测试, 压力测试]) if 体验 in risk_flags and 入口 in change_types: targets.add(易用性测试) # 执行方式接口稳定且高频回归则自动主观体验则手工 if 接口 in change_types and 高频回归 in risk_flags: execution 自动化为主冒烟用例进CI else: execution 手工为主核心路径自动化 return { 阶段分类: sorted(stages), 目标分类: sorted(targets), 执行方式: execution, } # 典型输入本次改动涉及支付接口与结算流程风险标签含资金、性能 plan filter_tests(change_types[接口, 流程], risk_flags[资金, 性能, 高频回归]) for dim, items in plan.items(): print(f{dim}: {items})这段脚本里filter_tests函数接收两个参数change_types是被评审代码的diff类型risk_flags是产品与开发共同确认的风险标签。脚本输出三个维度的分类清单阶段分类、目标分类、执行方式。其中阶段分类由“改动是否触及接口/底层”和“改动是否触及入口/流程”两个条件分别判定目标分类由资金、隐私、性能、体验四个风险标签分别触发执行方式则优先看接口稳定性和回归频率。实际项目中我一般把这个函数放在测试计划模板的宏里提测时填一行参数清单自动生成再把生成结果人工复核一遍把明显不合理的项删掉。这样做的效果很直接测试计划从“把上一个版本的全量用例复制过来改成日期”变成“基于本轮diff动态生成最小必要集合”。多轮的收益更明显——同一套代码在快速迭代的前期需要大量功能测试与探索性测试到了后期接口稳定、业务规则固化测试资源会自动向自动化和回归用例倾斜。这个倾斜不是拍脑袋而是每次筛选时“高频回归”标签反复出现累积出来的结果。我还有一个习惯就是每轮版本结束后回看一次筛选清单把“做了但没发现任何问题”的分类项标记出来连续两轮没发现问题就把该项从下轮的默认清单中降级或移除。项目上线前我会专门找一小时把整个分类路径在本子上重画一遍确认没有因惯性漏掉真正高风险的新维度。这一小时的收益远高于临时补一轮测试。以上这些做法是我的血泪经验希望对同样在排测试计划时挣扎的你有一点参考希望帮到你。本文还有配套的精品资源点击获取
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →