测试基础篇-设计测试用例

测试用例设计 

针对“用户登录”功能,可以设计的用例包括:

1.输入已注册的用户名和正确的密码,验证是否登录成功;

2.输入已注册的用户名和不正确的密码,验证登录失败,并且提示信息正确;

3.输入未注册的用户名和任意密码,验证是否登录失败,并且提示信息正确;

4.用户名和密码两者都为空,验证是否登录失败,并且提示信息正确;

5.用户名和密码两者之一为空,验证是否登录失败,并且提示信息正确;

6.如果登录功能启用了验证码功能,在用户名和密码正确的前提下,输入正确的验证码,验证是否登录成功;

7.如果登录功能启用了验证码功能,在用户名和密码正确的前提下,输入错误的验证码,验证是否登录失败,且提示信息正确;

8.用户名和密码是否大小写敏感;

9.页面上的密码框是否加密显示;

10.后台系统创建的用户第一次登录成功时,是否提示修改密码;

11.忘记用户名和忘记密码的功能是否可用;

12.前端页面是否根据设计要求限制用户名和密码长度;

13.如果登录功能需要验证码,点击验证码图片是否可以更换验证码,更换后的验证码是否可用;

14.刷新页面是否会刷新验证码;

15.验证码具有时效性,需要分别验证时效内和时效外验证码的有效性;

16.用户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面;

17.不同级别的用户,你比如管理员用户和普通用户,登录系统后的权限是否正确;

18.页面默认焦点是否定位在用户名的输入框中;

19.快捷键Tab和Enter等,是否可以正常使用;

安全性测试用例包括

20.用户名和密码后台存储是否加密;

21.用户密码在网络传输过程中是否加密;

22.密码是否具有有效期,密码有效期到期后,是否提示需要修改密码;

23.不登录的情况,在浏览器中直接输入登录后的URL地址,验证是否会重定向到用户登录界面;

24.密码输入框是否不支持复制和粘贴;

25.密码输入框内输入的密码是否都可以在页面源码模式下被查看;

26.用户名和密码的输入框中分别输入典型的sql注入攻击字符串,验证系统的返回页面;

27.用户名和密码的输入框中分别输入典型的XSS跨站脚本攻击字符串,验证系统的返回页面;

28.连续多次登录失败的情况下,系统是否会阻止后续的尝试以应对暴力破解;

30.同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性;

性能压力测试用例包括:

31.单用户登录的响应时间是否小于3s;

32.单用户登录时,后台请求数量是否过多;

33.高并发场景下服务端的监控指标是否符合预期;

34.高集合点并发场景下,是否存在资源死锁和不合理的资源登录;

35.长时间大量用户连续登录和登出,服务器端是否存在内存泄漏;

兼容性测试用例包括:

36.不同的浏览器下,验证登录页面的显示以及功能正确性;

37.相同浏览器的不同版本下,验证登录页面的显示以及功能正确性;

38.不同移动设备终端的不同浏览器下,验证登录页面的显示以及功能正确性;

39.不同分辨率的界面下,验证登录页面的显示以及功能正确性;

40.网络延迟或弱网或者切换网络或者断网时登录是否正常;

41.是否支持第三方登录;

42.是否可记住密码,记住的密码保存是否加密;

43.记住密码是否有有效期,如果有有效期,过期之后是否会清空密码;

44.用户登录后,存储在数据库中的用户个人信息是方加密;用户登录过程中log是否有个人信息明文打印;

45.登录用户限制:比如同时支持10个用户登录,同时9个或11个登录是否正常或提示信息正确;

黑盒测试方法

以上用例设计中有用到黑盒测试最典型、最常用、最重要的测试方法:等价类划分方法、边界值分析方法;

等价类划分方法:将所有可能的输入数据划分成若干个子集,在每个子集中,如果任意一个输入数据对于揭露程序中潜在错误都具有同等效果,那么这样的子集就构成了一个等价类。后续只要从每个等价类中任意取一个值进行测试,就可以用少量具有代表性的测试输入取得较好的测试覆盖结果。

边界值分析方法,是选取输入、输出的边界值进行测试;因为通常大量的软件错误是发生输入或输出范围的边界上,所以需要对边界值进行重点测试,通常选取正好等于、刚刚大于或刚刚小鱼边界值的值作为测试数据。

从方法论上可以看出来,边界值分析是对等价类划分的补充,所以这这两种测试方法经常结合起来使用。

测试的不可穷尽性

“穷尽测试”:是指包含了软件输入值和前提条件所有可能组合的测试方法,完成穷尽测试的系统里应该不残留任何未知的软件缺陷。因为如果有未知的软件缺陷,你可以通过做更多的测试来找到它们,也就是说你的测试还没有穷尽。

但是,在绝大多数的软件工程实践中,测试由于受限于时间成本和经济成本,是不可能去穷尽所有可能的组合的,而是采用基于风险驱动的模式,有所侧重地选择测试范围和设计用例,以寻求缺陷风险和研发成本之间的平衡

名词解释

             GDPR:通用数据保护规范(General Data Protection Regulation);相关地址:http://www.aqniu.com/learn/30670.html

             暴力破解:相关地址:

              https://www.cnblogs.com/Jewel591/p/7484516.html

              https://blog.csdn.net/wu_zeqin/article/details/7948946

总结

首先对于高质量的软件测试,用例设计不仅需要考虑明确的显式功能性需要,还需要涉及兼容性、安全性和性能等一系列的非功能性需求,这些非功能性需求对软件系统的质量有着举足轻重的作用;

其次,优秀的测试工程师必须具有宽广的知识面,才能设计出有针对性、更易于发现问题的测试用例;

最后,软件测试的用例设计是不可穷尽的,工程实践中难免受制于时间成本和经济成本,所以优秀的测试工程师需要兼顾缺陷风险和研发成本之间的权衡;当面对大量测试点,但是测试时间资源和人力资源都有限的情况下,我们必须根据具体风险来决定测试的范围和优先级,很多情况下不得不在质量和成本直接找到平衡点。

本篇文章是由在极客时间专栏上学习阅读而来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值