测试目标写得含糊,后续的策略和计划就很难落地。本文用一个假设的“登录功能安全性测试”情景,给出一份完整填写的测试目标样例,逐项说明每个字段为什么这样填,并提炼换测试对象时可以直接套用的写法规律。示例为虚构演示,不对应真实客户或项目,讨论范围限于测试规划层面。
要点总览(TL;DR)
- 测试目标示例要写清三件事:测什么对象、验证什么可观察结果、在什么条件下算通过,三者缺一目标就无法执行。
- 完整样例采用虚构的“内部管理系统 V2.3 登录功能安全性测试”,覆盖测试对象、验证场景、可观察结果、通过条件、前置条件、关联风险、策略与计划八个字段。
- 字段之间是派生关系:风险项决定验证场景,验证场景决定可观察结果,可观察结果决定通过条件,策略和计划回答怎么测、谁来测、先测什么。
- 换测试对象时保持“对象与版本 + 验证场景 + 可观察结果 + 通过条件 + 前置条件”的结构,按功能模块、测试类型、测试层级替换内容并联动资源约束。
- 样例依赖内部系统、账号密码登录、独立预发布环境等假设,涉及外部用户、敏感信息、合规要求或跨团队依赖时需要改写和补充。
示例要解决什么问题:从一句模糊目标到可执行目标
很多测试目标写成“保证登录功能安全可靠”,这句话放在评审会上没人反对,却无法回答三个问题:测的是哪个对象的哪部分、验证到什么程度算数、在什么条件下判定通过。目标一旦停在这个层面,风险识别没有落点,测试策略只能笼统写“做安全测试”,计划里的用例和资源也无法按目标倒推。
本文示范的填写任务,就是把这类口号式表述改写成可执行的目标:明确测试对象及其边界,明确要观察的结果,明确通过判定所依赖的条件。读者可以拿这份样例对照自己手上的测试目标,检查是否缺项。
需要先说明三点。第一,示例中的系统、版本、环境、人员均为虚构,仅用于演示填写方法。第二,本文只讨论测试目标、风险、策略、计划之间的组织关系,不涉及测试脚本编写、渗透攻击手法或源码实现。第三,示例不构成安全测试的标准或规范,实际项目应结合自身业务和合规要求调整。
完整示例:登录功能安全性测试目标填写样例
示例背景设定如下:某内部管理系统(虚构)的登录功能,假设当前版本为 V2.3,测试环境为独立的预发布环境,与生产环境配置保持一致但不含真实用户数据;测试由两名测试人员在一周内完成,依赖开发提供接口说明和账号体系文档。以下为填写完成的测试目标及其配套内容。
测试目标表述
验证 V2.3 登录功能在预发布环境下,对账号密码登录、连续失败锁定、会话保持三类场景的处理结果符合既定安全要求:错误凭证不泄露账号是否存在,连续失败达到设定次数后触发锁定,会话在超时或退出后失效。在上述条件全部满足时判定本目标通过。
字段与取值
| 字段 | 示例取值 | 说明 |
|---|---|---|
| 测试对象 | 内部管理系统 V2.3 登录功能 | 限定到具体功能与版本,不含注册、找回密码 |
| 验证场景 | 账号密码登录、连续失败锁定、会话保持 | 三类场景对应三条可观察结果 |
| 可观察结果 | 错误提示不区分账号是否存在;达到设定次数后锁定;超时或退出后会话失效 | 每条结果都能用操作复现并判定 |
| 通过条件 | 三类场景全部符合要求,无阻断性缺陷 | 给出整体判定口径 |
| 前置条件 | 预发布环境、配置与生产一致、无真实用户数据 | 结果只在该条件下有效 |
| 关联风险 | 账号枚举、暴力破解、会话劫持 | 目标由风险倒推而来 |
| 策略要点 | 以手工场景验证为主,辅以接口层检查 | 说明用什么方式验证 |
| 计划要点 | 两人一周,先锁定与会话场景,再覆盖登录提示 | 说明顺序、人力与周期 |
这份样例的自洽之处在于:风险项决定了验证场景,验证场景决定了可观察结果,可观察结果决定了通过条件,策略和计划则回答“怎么测、谁来测、先测什么”。任何一环改动,其他环节都要跟着调整。
逐项解释:每个字段为什么这样填
目标表述如何做到可观察、可判定
样例目标没有使用“安全”“可靠”这类无法直接判定的形容词,而是把它们拆成三条可复现的结果。判断一条目标是否合格,可以用一个简单检验:换一个没参与编写的人,能否仅凭这句话设计出验证步骤并给出通过或失败的结论。如果做不到,说明目标还停留在口号层面,需要继续拆分到具体场景和结果。
验证对象与范围边界如何划定
样例把对象限定为“V2.3 登录功能”,并明确排除注册和找回密码。这样做的原因是:登录、注册、找回密码虽然同属账号体系,风险点和验证方式不同,混在一个目标里会导致通过条件含糊。划定边界时,通常按功能模块、版本、环境三个维度收口,边界之外的内容另行立目标。
通过条件与风险项如何对应
样例中的三条风险——账号枚举、暴力破解、会话劫持——分别对应三条验证场景和三条可观察结果。这种一一对应关系让通过条件有据可依:每条风险都有对应的验证动作,每个验证动作都有明确的判定标准。如果某条风险找不到对应的验证场景,说明目标覆盖不全;如果某个场景对应不上任何风险,则需要确认它是否属于本次范围。
策略与计划如何承接目标
策略回答验证方式的选择。样例中登录提示和锁定机制适合手工操作验证,接口层检查用于补充确认服务端行为,这与目标中“可观察结果”的性质相匹配。计划回答执行安排:两人一周、先锁定与会话场景、再覆盖登录提示,排序依据是风险影响面和验证依赖关系。策略和计划都从目标派生,而不是先定人天再倒推测什么。
当测试目标、风险项和计划需要在团队内同步流转时,可以把目标写成工作项描述,把风险项登记为独立条目,把计划拆成带负责人和时间的任务,让评审、执行和结果记录在同一处衔接。ONES 支持工作项与文档的组织,可用于承载这类测试规划信息;具体字段和流程按团队现有管理方式配置。
可迁移规律:换一个测试对象怎么套用
从样例中可以提炼出一个通用结构:对象与版本 + 验证场景 + 可观察结果 + 通过条件 + 前置条件。换测试对象时,保持结构不变,替换各字段内容即可。
- 换功能模块:例如把对象换成“订单提交功能”,验证场景改为金额计算、库存扣减、重复提交,可观察结果改为对应页面与数据状态,通过条件随之调整。
- 换测试类型:性能测试的目标需要补充负载条件和指标口径,例如并发用户数、响应时间阈值、持续时间;兼容性测试的目标需要列明设备、浏览器或系统版本范围。
- 换测试层级:单元层目标聚焦函数或模块的输入输出,集成层目标聚焦接口之间的数据传递,系统层目标聚焦端到端业务流程,层级不同,可观察结果的粒度也不同。
- 联动资源约束:目标中承诺的验证范围要与可用人力、环境、时间匹配。资源不足时,应缩小场景范围或延长周期,而不是保留宽泛目标却只做部分验证。
常见填写偏差有四类:一是目标只有方向没有判定标准;二是对象范围过大,把多个模块塞进一个目标;三是风险项与验证场景脱节,风险列了一堆却没有对应动作;四是通过条件写成“无严重缺陷”,却没有定义什么算严重。修正方向都是回到“可观察、可判定”这一条检验标准上。
适用边界:这个示例在什么情况下需要改写
样例成立依赖几个假设:被测系统是内部系统、登录方式为账号密码、环境为独立预发布环境、测试周期为一周、团队具备基本安全测试经验。任一条件变化,样例都需要改写。例如系统面向外部用户且涉及支付,风险等级和合规要求会显著提高,验证场景和通过条件都要扩充;若登录支持多因素认证或第三方单点登录,场景需要重新设计。
以下情形需要补充或改写:涉及个人敏感信息处理时,需增加数据保护相关的验证要求;有明确合规或等级保护要求时,目标应引用对应条款作为判定依据;跨团队协作的系统,前置条件中要写明依赖方的交付物和时间。
本示例不覆盖测试脚本与自动化实现、攻击技术与渗透方法、源码级安全设计,也不替代需求评审。需求评审关注需求本身是否完整合理,测试目标关注如何验证已确定的需求,两者分工不同,不能互相替代。把样例当作填写参照,结合自身对象、风险和约束调整,才能得到可用的测试目标。
常见问题
测试目标里写“保证系统安全可靠”这类表述,评审时没人反对,为什么还要改?
这类表述在评审中容易通过,是因为它没有给出可反驳的内容。它无法回答测的是哪个对象的哪部分、验证到什么程度算数、在什么条件下判定通过,后续的风险识别、策略选择和计划排期都缺少落点。
改写时可以做一个检验:换一个没参与编写的人,能否仅凭这句话设计出验证步骤并给出通过或失败的结论。做不到,就继续拆分到具体场景和可观察结果。
示例中的风险项和验证场景必须一一对应吗?出现多对一或一对多怎么办?
样例采用一一对应,是为了让通过条件有据可依:每条风险都有验证动作,每个动作都有判定标准。实际项目中允许一条风险对应多个验证场景,例如会话劫持可能同时需要超时失效和退出失效两类验证;也允许一个场景覆盖多条风险。
需要守住的是覆盖关系:每条列入范围的风险都能找到对应验证动作,每个验证场景都能追溯到某条风险或明确的范围理由。找不到对应关系的项,要么补验证,要么移出本次目标。
团队人力和环境有限,目标里承诺的验证范围做不完,应该缩目标还是保留目标只做部分验证?
建议缩小目标范围或延长周期,让目标与实际执行保持一致。保留宽泛目标却只做部分验证,会让通过条件失去意义,评审时也无法判断结果是否达标。
具体做法是按风险影响面排序,把高影响场景留在本次目标内,其余场景明确移出并另行立目标,同时在计划中写清人力、环境和时间的前提。目标、策略、计划三者的范围应当相互吻合。
把示例套用到性能测试或兼容性测试时,需要额外补哪些字段?
结构保持不变,重点补充与测试类型相关的条件和口径。性能测试的目标需要写明负载条件(如并发用户数)、指标阈值(如响应时间)和持续时间,否则“性能达标”无法判定;兼容性测试的目标需要列明设备、浏览器或系统版本范围,并说明每个组合的判定标准。
这些补充内容同样要落到可观察结果和通过条件上,并与可用测试环境、工具和人力相匹配。
测试目标和需求评审是什么关系,能不能用测试目标代替需求评审?
两者分工不同。需求评审关注需求本身是否完整、合理、可实现;测试目标关注如何验证已经确定的需求,回答测什么、验证到什么结果、什么条件算通过。
测试目标不能替代需求评审。需求存在歧义或缺失时,测试目标会跟着含糊,此时应先推动需求澄清,再确定测试目标。本文示例也不覆盖单份需求文档的质量评审。


















