难道用例设计不是测试最核心最基础的技术吗?
新入局的兄弟们是不是真的了解这个职业的工作内容?
是幻想天天 搞开发、安全、性能、架构、AI、运维、云原生
还是 和开发吵架,然后把开发的活干了,让他心服口服?
都不是
普罗大众的测试日常基本都是围绕以下这几个,我象征性的给了比例:
因此,这也是为什么我会主要问测试用例设计的能力,
用例设计 是测试最基础最核心的技术能力
沟通表达 是保证工作流程顺利的重要能力
研发相关技术能力:是提升上面两个能力的有效辅助
我主问用例设计
是因为我没有脱离群众
回到开头,面试时,一个好的测试用例设计回答应该是怎样的?
我问你某个场景需求的用例设计
是考察你测试思维、分析能力、沟通技巧和系统化方法的绝佳方式
所以面试者不能一直自己在说,而是要学会互动起来
如最最最最烂大街的问题 A: 用户登录功能的用例
B: 好的,针对你提到的用户登录功能设计测试用例,我理解我们需要验证的是用户登录的这一流程,为了能设计更全面的用例,我想确认几个点:
很多人一看面试官提问题,就会不假思索的开始各种套路模板的述说。我更建议互动起来,就跟你平常和产品经理聊需求一样,不假设,而是通过沟通明确需求,避免遗漏重要方面,体现你的专业性和沟通能力。
B: 基于这个场景,我认为核心要测试的功能点包括:
[列出 1-3 个最关键的点如:1. 使用有效凭据登录成功 2. 处理无效凭据登录失败 3. 记住登录状态],
除了功能正确性,我认为还需要关注:[例如:安全性(防暴力破解、密码存储/传输)、用户体验(错误提示清晰度、响应速度)、兼容性(不同浏览器/设备)]
让面试官知道你有大局观,知道测试不仅仅是 “点按钮”,还要考虑质量的不同维度。
B : 我会结合使用几种测试设计技术来确保覆盖度:
等价类划分 & 边界值分析: 这是最基础的。例如对于用户名和密码字段,我会划分有效等价类(正确用户名/密码)、无效等价类(错误用户名、错误密码、两者都错、空用户名、空密码、超长用户名/密码、特殊字符用户名/密码)。边界值比如密码最小长度、最大长度。”
决策表/因果图: 如果登录逻辑涉及复杂条件组合(例如:记住我 + 自动登录 + 首次登录/非首次登录),我会用决策表来梳理所有可能的组合和预期结果。
状态转换图: 如果登录状态有流转(例如:未登录 -> 登录中 -> 登录成功/失败 -> 登出),我会用状态图来设计覆盖各个状态和转换的用例。
错误推测法: 基于经验,我会考虑一些常见的错误场景,例如:网络中断时登录、重复快速点击登录按钮、登录后修改密码再尝试用旧密码登录(如果会话管理不当)、SQL 注入/XSS 尝试等。
场景法: 我会模拟真实用户的典型操作路径,例如:打开 App -> 进入登录页 -> 输入正确信息 -> 登录成功进入首页 -> 登出。同时也会考虑异常路径,如登录失败后重试、忘记密码流程的衔接。
展示你掌握专业的测试设计方法,而不是凭感觉罗列用例
不需要列出所有细节,但给出类别和代表性例子。清晰说明输入、操作步骤、预期输出。
B:
功能 - 正向:
功能 - 负向:
安全性:
用户体验:
兼容性:
性能 (如果场景要求):
可访问性:
目的: 展示你能覆盖不同维度、不同优先级(正向、负向、安全、UX 等)的测试点,体现全面性。
测试数据: “设计用例时我会考虑准备不同的测试数据:有效用户账号、无效账号、被锁定账号、不同权限的账号(如果系统有权限区分)、带特殊字符的用户名/密码等。”
环境: “我会考虑在不同环境测试:开发环境、测试环境、预发布环境。明确是否需要模拟特定的网络条件(如弱网、断网)。”
目的: 展示你理解测试执行的准备工作。
说明优先级: 在资源有限的情况下,我会优先执行核心正向路径(1)和关键的负向路径(3, 4, 5, 6)以及高安全风险的用例。账户锁定和性能也很重要。
风险评估: “我认为最高风险点是安全漏洞(如密码泄露、注入攻击)和核心功能失效(所有人无法登录)。其次是糟糕的用户体验(如错误提示不清导致用户困惑)和账户锁定策略失效(如无法锁定暴力破解)。”
目的: 展示你具备风险意识,知道如何合理分配测试资源。
来个总结: “综上所述,我会围绕功能正确性、安全性、用户体验、兼容性等维度,运用等价类、边界值、错误推测等方法,设计覆盖核心流程、主要异常、边界条件和安全风险的测试用例集。”
寻求反馈: “这是我初步的思路,你觉得是否覆盖了你关心的重点?或者您希望我在某个方面再深入展开一下吗?” 或者 “在实际项目中,我还会参考需求文档、与开发和产品经理进一步沟通来完善这些用例。”
目的: 展示沟通闭环和持续改进的意愿。
一般这样一整套下来,我相信只要是价值观正向的面试官,基本都会觉得你沟通能力和基础不错
最后
社会里有一小部分人
会以工资高低论英雄
会以开发能力论测试能力
但是我希望你能回归到现实
无关岗位,大部分人工资都是不高的,不要觉得工资待遇和能力水平是等价的,时间、机遇、市场环境都是因素
测试的工作内容也是测试,大部分人遇不到什么高大上的场景和技术
每个人的境遇都不同
但绝大多数测试工作的内容会一致
那就是做测试工作