什么是软件测试
其实软件测试就是测试软件的功能是否满足用户的需求,是否还存在一些bug。对于这种针对系统功能的测试,就叫做软件测试。
软件测试的目的
就是验证软件产品特性是否满足用户的需求。不仅要看出软件符不符合用户的需求。并且要把不符合的方法也找出来。
简单的练习,找出不同,也就是找出和需求的 bug:
简单来说就是:软件按照用户提出的需求,而设计了很多的功能。软件测试人员 需要验证 软件功能 的方方面面:
- 验证功能是否能正常运行 【但是能跑,不代表就能达到预期的效果】
- 验证功能是否满足用户的需求【用户的需求 == 预期的效果】
测试登录
来尝试测试某软件的登录功能,需要测试的功能如下:
- 用户名和密码
- 扫码登陆
- 第三方登录
- 人脸
- 指令
- 声音
- 虹膜
- 手机验证码
这里我们只关注 用户名和密码 登录的方式,分析一下验证方式:
- 用户名/密码不匹配,或者不存在
- 向手机发送登录验证码的时候,手机能都接收到信息
- 向右滑动【图片验证】
- 输入图片上的 字符/数字
- 选择包含指定内容的图片
- 数值运算【输入加减乘除的结果】
- 选择指定的文字
- 文字游戏
- 成语填空
以登陆方式为 用户名和密码,验证方式为:输入图片中的字符,来设计测试用例:
- 把 用户名和密码中的大小写变换 [登录失败]
- 空输入 [用户名和密码都没有填写的情况,登录失败]
- 用户名/密码 长度不匹配 [登录失败]
- 用户名不存在 [登录失败]
- 用户名与其密码不匹配 [登录失败]
- 用户名与密码之间,有一个是输入错误的 [登录失败]
- 用户名和密码 输入正确,并且验证码输入正确 AND 在有效时间范围内,将验证码输入。[登录成功]
- 是否允许多地登录 [比如: QQ就不允许,如果你是相同类型的设备,它会把你挤下线]
- 网络波动的情况 [登录失败]
- 断网/断电,导致的登录失败
- 账号冻结 [登录失败]
- 账号被注销 [登录失败]
- 账号出现违规操作,禁用的账号
- 机器人冒充登录
- 多次输入错误 [账户被锁定]
- 未在指定时间内,输入验证码,验证码是否可以刷新,重新发送
- 输入错误的验证码 [登录失败)
- 密码的保密性
- 忘记密码,能不急找回密码
- 对于用户名和密码的长度,是否存在限制
- …
有的人可能会说:我越想越多,难道我要把所有的可能性都尝试一遍? 当然是不行的,穷举所有情况是不可能的!!!。测试工作主要保证:主要功能(用户频繁使用的功能) 和 核心流程 的正确性。也就是说: 测试是有优先级的,先把重要的测试了,其它的,可以往后放一放。就是测试软件的功能是否满足用户的需求。
自动售票机的测试
整个售票流程:
- 选择始发站和到达站
- 选择车次
- 选择座位
- 身份核验
- 付款
- 取票
根据流程设计测试点:
- 选择始发站和到达站:
输入一个不存在的站点,提示显示查无此站 - 选择车次:
该车次的车票已售完,无法买票
选择车次后取消,无法购买
是否接受中转站,还是一站到达? [如果接受,有两张票] - 选择座位
座位分:一等、二等,商务座,站票(可选)
票售完,是否进入该车次的候补区 [有人可能会退票]
是否货运托运 - 身份核验
身份信息不存在,核验失败,无法买票
学生证核验失败,无法购买折扣票
身份证过期了,校验不成功:反之,且信息真实存在,验证成功
其他的卡代替身份证核验,核验失败。[你用公交卡和一些杂七杂八的卡,去验证身份肯定是不行的] - 付款
现金
二维码(支付宝,微信)
银行卡 - 付款失败情况
支付宝/微信,余额不足
付款二维码失效
假币
现金残缺[获取参数不全]
现金不足以购买一张票
现金找零
银行卡 挂失/冻结/余额不足/消磁,不能使用
使用了 售票机 不支持的银行卡
售票机 断网/断电/故障,出票失败 - 取票
是否支持 线上/线下 取票
售票机(取票机) 断网/断电/故障,取票失败
售票机没纸了,无法打印车票 [提示用户: 联系工作人员]
售票机没墨了,无法打印车票 [提示用户: 联系工作人员]
取票要不要打印购票信息
衡量软件测试结果的依据 — 需求
需求是满足用户的期望或正式规定的文档(合同、标准、规范)所具有的条件和权限。需求包含用户需求和软件需求。
在具体设计测试用例的时候:
- 首先需要搞清楚每一个业务需求对应的多个软件功能需求点。
- 然后分析出每个软件功能需求点对应的多个测试需求点。
- 最后针对每个测试需求点设计测试用例。
像测试用户登录这样:
这个图列举的是主要的测试点,还有其它需要测试的对方,如:界面,易用性,可靠性,容错性,可移植性等等。
测试用例
测试用例是为了实施测试而向被测试的系统提供的一套组合,包括测试环境、操作步骤、测试数据、预期结果等要素。测试用例就是说明:测什么,怎么测。常见的测试用例分为:功能角度和非功能性需求维度。