功能测试中常见的面试题-二

二、测试设计与用例编写题

  1. 解释等价类划分 (Equivalence Partitioning) 和边界值分析 (Boundary Value Analysis)?并举例说明。

    • 等价类划分 (EP): 将输入域划分为若干组(等价类),假设同一组内的数据对揭露程序错误具有等效性。只需从每个等价类中选取一个代表值进行测试即可。

      • 例子: 测试一个输入年龄(1-120岁)的文本框。

        • 有效等价类: [1, 120] (如 30)

        • 无效等价类: < 1 (如 0, -5) 和 > 120 (如 121, 200)

    • 边界值分析 (BVA): 是对等价类划分的补充,关注输入域边界及其附近的值。因为经验表明,边界处最容易出错。

      • 例子: 同上年龄输入框 (1-120)。

        • 有效边界值: 1, 120 (边界点), 2, 119 (边界内邻点)

        • 无效边界值: 0 (刚好小于下界), 121 (刚好大于上界)

    • 通常结合使用: 先划分等价类,再针对每个等价类的边界设计测试用例。

  2. 什么是决策表测试 (Decision Table Testing)?适用于什么场景?

    • 回答: 决策表是一种系统性的方法,用于测试由多个输入条件组合决定的不同输出结果(动作) 的业务规则或逻辑。它以表格形式列出所有可能的条件组合及其对应的预期输出。

    • 适用场景: 复杂的业务逻辑、规则引擎、具有大量布尔条件(真/假)组合的功能。

      • 例子: 信用卡申请审批规则(条件:年龄、收入、信用分;动作:批准/拒绝/需人工审核)。

  3. 什么是状态转换测试 (State Transition Testing)?适用于什么场景?

    • 回答: 这种方法适用于系统或对象的行为依赖于其当前状态,并且状态会因特定事件或条件而改变的场景。通过绘制状态转换图或状态转换表,设计测试用例来覆盖有效的状态转换路径(正常流)和无效的转换(异常流)。

    • 适用场景: 具有明确状态和状态转换的系统,如登录/登出流程、订单状态机(待支付、已支付、发货中、已完成、已取消)、工单状态、游戏角色状态等。

  4. 什么是错误推测法 (Error Guessing)?

    • 回答: 一种基于测试人员经验、直觉和对系统弱点的理解来推测程序中可能存在的错误,并针对性地设计测试用例的方法。它依赖于测试人员的技能和对类似系统常见缺陷的了解。

    • 例子: 测试文件上传功能时,推测可能的错误:上传超大文件、上传0字节文件、上传非法格式文件、上传文件名包含特殊字符的文件、网络中断时上传等。

  5. 一个好的测试用例应包含哪些要素?

    • 回答: 通常包含:

      • 用例ID: 唯一标识符。

      • 用例标题/描述: 清晰、简洁地说明测试目的(What to test?)。

      • 前置条件: 执行该用例前系统必须满足的状态(如:用户已登录,特定数据已存在)。

      • 测试步骤: 详细、可执行的操作步骤(How to test?)。

      • 测试数据: 执行步骤所需的具体输入值。

      • 预期结果: 每一步或整个用例执行后,系统应有的正确响应或状态(What should happen?)。

      • 后置条件: 执行后系统的状态(可选,常用于清理或为后续用例准备)。

      • 优先级: 标识用例的重要程度(高/中/低)。

      • 所属模块/功能: 方便组织和管理。

  6. 如何为一个登录功能设计测试用例?

    • 回答: 这是非常经典的场景题!考虑以下方面:

      • 功能正确性:

        • 输入正确用户名和密码 -> 登录成功(跳转到正确页面,创建有效Session)。

        • 输入正确用户名+错误密码 -> 登录失败,提示“密码错误”。

        • 输入错误用户名+正确密码 -> 登录失败,提示“用户名不存在或密码错误”(安全考虑,避免提示太明确)。

        • 输入错误用户名+错误密码 -> 登录失败。

        • 用户名/密码为空 -> 登录失败,提示“用户名/密码不能为空”。

        • 用户名/密码包含空格(前/中/后) -> 处理是否合理(通常应Trim前后空格)。

      • 输入验证 (等价类 & 边界值 & 特殊字符):

        • 用户名/密码长度限制(过短/过长/恰好边界)。

        • 用户名/密码允许的字符类型(字母、数字、特殊字符@#$_等,需根据需求)。

        • 输入SQL注入/XSS尝试字符串 -> 应被阻止或转义。

      • 用户体验:

        • 错误提示信息是否清晰、友好、无技术术语。

        • 登录失败后,密码是否被清空(安全考虑)?用户名是否保留(方便用户)?

        • 是否有“忘记密码”、“注册”等链接?是否可用?

        • 是否有“记住我”功能?是否有效?

      • 安全性:

        • 传输是否加密(HTTPS)?

        • 登录失败多次是否有锁定机制(防暴力破解)?

        • 登录成功后Session管理是否安全(Cookie HttpOnly, Secure)?

        • 错误信息是否泄露敏感信息(如明确提示“该用户不存在”)?

      • 其他:

        • 不同浏览器/设备上的表现(兼容性)。

        • 网络中断时登录。

        • 同时多点登录(同一账号在不同地方登录)的处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Oooon_the_way

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值