• 测试用例的设计方法


    工欲善其事必先利其器,做好一件事情的前提先找到有利的武器,磨刀不误砍柴工说的是同样的道理。在测试用例的设计上,比较常用的有下边几种武器:

    • 等价类划分法
    • 边界值法
    • 因果图设计法
    • 判定表设计法
    • 正交实验法
    • 错误推测法
    • 场景法
    • 用等价类划分方法划分大部分场景设计测试用例
    • 任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强
    • 程序业务复杂度比较高,则适当使用场景法补充一部分测试用例
    • 如果你对该业务非常熟悉,可以根据经验在容易出错的地方补充一些测试用例

    基于这样的设计方法,同样还是当初的那个登录界面,我们大体可以设计出下边的测试用例:

    1. 已存在的用户,输入正确的用户名和密码,点击登录,验证是否登录成功;
    2. 不输入任何内容,直接点击登录,验证是否登录失败,提示信息正确;
    3. 已存在的用户,输入正确的用户名和错误的密码,点击登录,验证是否登录失败,提示信息正确;
    4. 已存在的用户 A 与 B,输入 A 的用户名和 B 的密码,点击登录,验证是否登录失败,提示信息正确;输入不存在的用户名和任意密码,点击登录,验证是否登录失败,提示信息正确;
    5. 已存在但状态异常的用户(如停用、冻结、锁定),输入正确的用户名和密码,点击登录,验证是否登录失败,提示信息正确;
    6. 已存在的用户,用户名为小写,输入大写的用户名及正确的密码,点击登录,验证是否登录失败;
    7. 已存在的用户,密码为小写,输入正确的用户名及大写的密码,点击登录,验证是否登录失败;
    8. 密码是否自动加密显示或包含隐藏 / 显示功能,验证是否可以正常使用;
    9. 用户权限是否区分,管理员及普通用户登录成功跳转是否正确;
    10. 用户名及密码输入框是否具有长度限制,与注册时长度要求是否一致;
    11. 登录失败到达一定次数,是否会自动显示验证码;
    12. 有验证码情况下,输入正确的用户名密码及正确的验证码,验证是否登录成功;
    13. 有验证码情况下,输入正确的用户名密码及错误的验证码,验证是否登录失败;
    14. 有验证码情况下,点击验证码图片(或换一张按钮)是否更换验证码,更换后的验证码是否可用;
    15. 有验证码情况下,点击验证码图片(或换一张按钮)更换验证码,使用更换前验证码登录,验证是否登录失败;
    16. 刷新页面验证码是否跟随刷新;
    17. 验证码超过可用时效,输入当前验证码,验证是否登录失败;
    18. 登陆失败后,用户名是否保存,密码为空;
    19. 是否有记住用户名功能和记住密码功能,是否可用;
    20. 快捷键是否可用,密码是否不可以通过粘贴粘入;
    21. TAB、ENTER 是否可以自动跳转控件及自动提交;
    22. 是否支持第三方登录(微信、支付宝、QQ、微博等),登录验证是否正确;
    23. 是否支持手机验证码登录,手机是否可以收到短信,是否可以登录成功;
    24. 手机验证码超时,使用已超时验证码登录,是否可以登录成功;
    25. 用户 session 失效后是否重新跳转登录页;
    26. 用户登出后,通过后退按钮,是否可以继续操作;
    27. 是否具有忘记密码功能,是否可用。

    所谓的需求覆盖全面,所谓的完备一定不仅仅包含我们刚才的纯黑盒功能测试的内容,测试人员需要考虑的更多。一般情况下,我们还需要考虑数据日志测试、界面 UI 测试、兼容性测试、性能测试和安全测试等方面。我们分开来看:

    数据日志测试

    所谓的数据日志测试主要包含我们在前端,在页面或者 APP 上看不到的测试项,我举几个例子:

    • 数据库密码字段验证是否加密
    • 登录失败次数是否记录在数据库、缓存中,逻辑是否正确
    • 登录失败冻结等场景数据库是否正确修改状态
    • 错误日志是否完备,是否便于排查问题
    • 对象是否容易定位,便于自动化
    • 是否有增加埋点,进行用户行为分析

    界面 UI 测试

    日常测试来说,界面和用户体验的测试也是非常必要的,像我们前边关于 TAB 和 ENTER 的使用其实就是用户体验的一种,所以如果要更全面地进行测试覆盖,就一定也要考虑到界面的测试。

    • 布局是否合理,是否对齐
    • 界面设计是否与需求、UI 设计文档一致
    • 是否有错别字、标点错误缺失
    • 页面颜色搭配是否得当
    • 错误文字是否明确易懂
    • 界面视觉效果是否恰当,界面动画展示是否流畅

    兼容性测试

    • 不同操作系统下,是否可以兼容(Windows、MAC OS、LINUX)
    • 同一操作系统不同版本下,是否可以正常显示及功能正确性
    • 不同浏览器下(Chrome、IE、FireFox 等)下是否可以兼容
    • 同一浏览器不同版本下是否可以兼容
    • 移动端是否兼容
    • 放大缩小界面时是否兼容展示
    • 不同语言下,界面展示是否正确
    • 是否具有高对比读模式(为视力不好的人准备)

    性能测试

    性能测试又可以分为服务端性能和前端性能,也需要综合考虑,同时,针对性能的指标和场景也伴随着不同模块、不同企业、不同需求而有所不同,我在这里简单举几个比较通用的例子:

    • 用户登录接口的最大并发数(响应时间 3s 内)
    • 特定负载测试下服务器的性能指标
    • 压力测试过程中服务的稳定性和性能指标
    • 服务的分布式处理逻辑,负载均衡逻辑、缓存及队列的使用
    • 能够支持的接口最大并发量
    • GC 处理,是否有内存溢出等情况
    • 高并发下数据库是否有慢 SQL 和死锁
    • 页面加载速度
    • 页面资源大小,是否应用雪碧图
    • YSLOW 分析,静态性能
  • 相关阅读:
    iOS new Date() 报invalid Date
    Windows查找端口对应进程
    Dbvisualizer Free版本无sql自动提示功能解决方案
    Docker
    更换k8s集群,或者创建集群使用用户不对,导致ranchar无法显示容器处理
    linux下mysql5.7.30安装
    ansible 使用redis缓存
    tr命令
    ipvsadm安装配置NAT
    2019新电脑主板安装win10系统
  • 原文地址:https://www.cnblogs.com/lvchengda/p/12677862.html
Copyright © 2020-2023  润新知