软件测试 52 讲
茹炳晟
腾讯 TEG 基础架构部 T4 级专家
71691 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 63 讲
结束语 (1讲)
软件测试 52 讲
15
15
1.0x
00:00/00:00
登录|注册

01 | 你真的懂测试吗?从“用户登录”测试谈起

总结
非功能性需求
隐式功能性需求
显式功能性需求
测试用例设计

该思维导图由 AI 生成,仅供参考

作为专栏的第一篇文章,我选择了一个你耳熟能详的“用户登录”功能作为测试对象,希望通过这样一个简单直白的功能帮助你理解如何做好测试,以及现阶段你需要加强和提高的测试技能。
可能你会说,“用户登录”这个测试对象也有点太简单了吧,我只要找一个用户,让他在界面上输入用户名和密码,然后点击“确认”按钮,验证一下是否登录成功就可以了。的确,这构成了一个最基本、最典型的测试用例,这也是终端用户在使用系统时最典型的 Happy Path 场景。
但是作为测试工程师,你的目标是要保证系统在各种应用场景下的功能是符合设计要求的,所以你需要考虑的测试用例就需要更多、更全面,于是你可能会根据“用户登录”功能的需求描述,结合等价类划分和边界值分析方法来设计一系列的测试用例。
那什么是等价类划分和边界值分析方法呢?首先,这二者都隶属于最常用、最典型、也是最重要的黑盒测试方法。
等价类划分方法,是将所有可能的输入数据划分成若干个子集,在每个子集中,如果任意一个输入数据对于揭露程序中潜在错误都具有同等效果,那么这样的子集就构成了一个等价类。后续只要从每个等价类中任意选取一个值进行测试,就可以用少量具有代表性的测试输入取得较好的测试覆盖结果。
边界值分析方法,是选取输入、输出的边界值进行测试。因为通常大量的软件错误是发生在输入或输出范围的边界上,所以需要对边界值进行重点测试,通常选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了测试用例设计的复杂性和全面性,以及测试工程师在设计测试用例时需要考虑的方方面面。首先介绍了等价类划分和边界值分析方法,并详细列举了基于这些方法设计的“用户登录”功能的测试用例。随后,文章提出了有经验的测试工程师会增加的测试用例,涉及到用户名和密码的大小写敏感性、页面密码框的加密显示、忘记用户名和密码功能等。进一步,文章强调了非功能性需求测试的重要性,包括安全性、性能和兼容性测试用例的设计。最后,文章指出了测试的不可穷尽性,强调了测试的风险驱动模式。通过这些内容,读者可以深入了解测试用例设计的复杂性和全面性,以及测试工程师需要具备的广泛知识面和深入理解能力。整体而言,本文为读者提供了对测试用例设计的全面认识,引发了对测试更多思考的启发。文章内容涵盖了测试用例设计的基本原则和方法,以及对非功能性需求的重视,对于测试工程师和软件测试人员具有重要的指导意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件测试 52 讲》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(208)

  • 最新
  • 精选
  • 夸夸狗
    1.网络延迟或者弱网或者切换网络或者断网时正常登录是否正常 2.是否支持第三方登录 3.是否可记住密码,记住的密码保存是否加密 记住密码是否有有效期,有有效期,过期之后是否会清空密码

    作者回复: 很棒的补充,对于网络延迟和弱网络场景下的测试,我们通常会用工具来模拟网络延迟和故意引入固定百分比的网络丢包。这也从另一个侧面反映出了测试的不可穷尽性,当面对大量测试点,但是测试时间资源和人力资源都有限的情况下,我们就必须根据具体风险来决定测试的范围和优先级,很多情况下不得不在质量和成本之间找到平衡点。

    2018-06-29
    2
    224
  • 文大头
    关于登录,想到几点: 1.常规用例中,用户名密码是否支持特殊字符和中文等 2.是否可以使用登录的API发送登录请求,并绕开验证码校验 3.是否可以用抓包工具抓到的请求包直接登录 4. 截取到的token等信息,是否可以在其他终端上直接使用,绕开登录。token过期时间校验 5.除了前端校验格式长度等,后端是否也校验? 6. 登录后输入登录URL,是否还能再次登录?如果能,原登录用户是否变得无效 7. 登录错误后的提示是否有安全隐患 暂时想到这些,另外,可能还会有些系统特别的登录相关功能,看需求来定了。

    作者回复: 太棒了,能想到这么多有技术含量的测试点,大家可以参考学习。感谢你的分享

    2018-06-29
    6
    151
  • 何大小姐
    看完这个,再也不怕面试的时候问“一个登陆页面,你给我设计一些用例吧”😂😂

    作者回复: 能够有收获就好,感谢你的支持

    2018-06-29
    91
  • 小叶榕
    1、GDPR相关的测试偏少,比如用户登录后存储在数据库中的用户个人信息是否加密;用户登录过程中log中是否有个人信息明文打印; 2、登录用户限制:比如同时支持10个用户登录,同时9个或者11个用户登录是否正常或者提示信息正确

    作者回复: 非常好的补充,一看就知道你对测试用例的设计很有经验!这也从另一个侧面反映出了测试的不可穷尽性,当面对大量测试点,但是测试时间资源和人力资源都有限的情况下,我们就必须根据具体风险来决定测试的范围和优先级,很多情况下不得不在质量和成本之间找到平衡点。

    2018-06-29
    2
    44
  • 阿莲
    还应该包括: 1、未激活的用户登录 2、被停用的用户登录 3、登录的操作日志记录是否准确 4、登录有实效性是否控制正确

    作者回复: 很棒的补充,这也从另一个侧面反映出了测试的不可穷尽性,当面对大量测试点,但是测试时间资源和人力资源都有限的情况下,我们就必须根据具体风险来决定测试的范围和优先级,很多情况下不得不在质量和成本之间找到平衡点。

    2018-06-29
    2
    34
  • Tomandy
    虽然是一个看似简单的“用户登录”功能,却蕴含大学问。用例设计考验的是Tester的思维能力,而测试思维方式的培养是一个持续的过程。本人很认可《你的灯亮着吗》里的一段话:每一个解决方案都是下一个问题的来源,要真正理解问题,那至少对自己的解决方案提出三个可能出错的地方。

    作者回复: 非常棒的见解,测试用例设计的思维模式培养才是最核心,也是最有价值的部分,同时这个过程中还可以利用用例设计的设计模式来协助你做出更全面系统的用例集合。

    2018-06-29
    32
  • MegaQi
    我补充一些思路:密码强弱性校验,数据库设计和数据操时候合理等。

    作者回复: 很棒的补充,这也从另一个侧面反映出了测试的不可穷尽性,当面对大量测试点,但是测试时间资源和人力资源都有限的情况下,我们就必须根据具体风险来决定测试的范围和优先级,很多情况下不得不在质量和成本之间找到平衡点。

    2018-06-29
    28
  • 双子
    补充几条测试过程中遇到过的印象比较深刻的细节: 1、为空和输入空字符串时的校验是否一致; 2、使用中文键盘输入字母时和使用英文键盘输入字母时传给后端的字符长度是否一致; 3、登录成功后的session时效设置; 4、安全性方面异地登录校验、更换设备登录校验、登录信息异常是否考虑账号冻结停用;是否允许第三方工具平台存储密码。

    作者回复: 非常棒的补充,从补充的内容就可以看出你有过非常丰富的实际功能测试经验。值得借鉴!

    2018-06-29
    22
  • 白天黑夜
    还有是是否用到缓存

    作者回复: 对的,这是一个很好的测试点,尤其是浏览器启用了缓存的场景,这里可以具体这个点引出一大堆测试用例。很棒!

    2018-06-29
    16
  • luosj
    涉及资产风险的,对登录设备和地区检测

    作者回复: 某种意义上说,这是一个功能性需求,非常棒哦

    2018-06-29
    2
    16
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部