1. 业务测试
1.1行业的动态理解,金融相关的新闻、政策要持续关注
1.2竞品的分析,研究竞品的逻辑交互、业务流程,和我们的产品是否有差异,差异在哪,为什么会有这种差异,哪种更合理更好
(以上两点的看似对测试没有立竿见影的作用,但在实际工作中会起着潜在的指导作用,对一些问题的处理判断会给予一定启发)
1.3对测试人员而言,需求的最终输入是PM,我们在做需求理解时,除了理解prd,交互稿等等需求设计文档以外,更重要的一点是理解需求对应的业务背景。在缺陷类型中有一类错误叫做需求错误,就是指产品存在逻辑上的漏洞、业务上的漏洞,测试人员要发现这种错误,前提就是需要对需求的业务背景进行了解,为什么这个需求会存在?解决了什么问题?
比如一个新需求要求对A页面的某金额进行修改,如果你不理解产品的业务,会认为页面A修改完即可。但是如果你带着业务去思考,会发现页面B也存在同类业务或者依赖业务,从而可以提出业务相关的问题,避免问题产生
2. 功能测试
交互逻辑检查
a.业务流转是否正确,接口调用逻辑是否正确。
b. 数据管理权限,如系统管理员是否可以修改用户提交内容
c. 用户权限有严格限制
d. 用户提交资料后,涉及审批制。审批流程机制是否健全,如节点回滚等。
页面之间的数据读取
a. 页面取数据库的值
b. 值的展示处理逻辑,如小数转换、单位换算、null值、金额溢出规避等
b. 值的计算,应考虑多位小数、边界值(1、0、-1等)的情况。
c. 密码、手机、身份证号、电话、邮箱格式限制。
d.百分占比计算,如1/3情况,占比之和是否为100%
e. 数据缓存机制
g.数据job执行逻辑
一般性检查
a. 新增、修改、删除是否有提示,提示风格是否与产品提示风格一致
b.菜单层级
c. 导航指示清楚
d. 加载动画是否合理,当响应时间较快时是否取消动画加载
3. 安全性测试
敏感数据本地可破解
检查是否在本地保存用户密码,无论加密与否
检查敏感的隐私信息,如聊天记录、关系链、银行账号等是否进行加密
检查是否将系统文件、配置文件明文保存在外部设备上
部分需要存储到外部设备的信息,需要每次使用前都判断信息是否被篡改
文件权限
检查App所在的目录,其权限必须为不允许其他组成员读写
网络传输
检查敏感信息在网络传输中是否做了加密处理,重要数据要采用TLS或者SSL。http请求默认是明文的,如果安全验证和加密机制存在漏洞,通过网络嗅探扫描,很容易被猜到和模拟请求,也可能被注入。
Android组件权限保护
禁止App内部组件被任意第三方程序调用。若需要供外部调用的组件,应检查对调用者是否做了签名限制
升级
1.检查是否对升级包的完整性、合法性进行了校验,避免升级包被劫持。
2.升级后的数据检查,避免出现升级后密码失效等。
应用自身安全性
对某个应用进行逆向,看反编译后的代码有没有敏感信息暴露。反编译后对代码修改,插入劫持代码后重新打包,如果存在这种漏洞,对用户和开发者都构成极大的威胁。
请求传输
如H5页面数据分享,是否将用户session也分享出去了。
4. 其它通用类测试点:
如性能测试、易用性测试、兼容性测试、安全性测试、稳定性测试。针对APP,还需对APP的独有特点进行专项测试,如:流量测试、电量测试、弱网络测试、环境干扰测试等。
6发版及项目回顾
建立严谨合理的上线发版流程,确保产品顺利上线;及时收集用户使用反馈,供产品改进;同时,QA需将各个阶段的执行数据进行有效分析,发现问题,提出改进措施,并跟进改进结果。