04_Web功能测试和非功能测试
字数
6646 字
阅读时间
26 分钟
AI简介:
- AI(Artificial Intelligence):即人工智能,让计算机系统模拟人类智能来执行各种复杂任务的技术。
- 对测试人员:协助测试人员高效完成测试任务(文档编写、代码编写/纠错)
0. 🌟如何准备面试问题
- 熟悉核心业务流程图
- 熟悉测试点设计
- 自己用语言讲解介绍一下该项目中有哪些核心业务,介绍一下正向逆向场景测试点
1. 项目介绍
1. 要能说出测试项目类型和核心业务
作用:
1. 具备x年测试经验/项目经验,面试官会提问你负责测试过的大型项目的核心业务(大型项目:具备复杂业务的项目)
2. 判断你是否具备独立负责项目的能力- 项目名称:黑马安享智慧理财
- 项目类型:借贷金融平台
- 项目特点:
- 功能通用性强
- 业务流程复杂
- 项目地址:
- 前端:http://121.43.169.97:8081/
- 后端:http://121.43.169.97:8082/
- 管理员账号:admin
- 管理员密码:HM_2025_test
2. 核心业务及模块
- 项目角色:借款人、投资人、平台审核员等
- 项目业务:借款业务、投资业务等(还有还款业务)
- 系统及模块:


3. 项目架构【了解】
- 系统架构:B/S和C/S,目前只有B/S架构,C/S没有上架
- 开发语言
- 前端:HTML+CSS+JavaScript+VUE
- 后端:Java+SprintBoot
- 应用服务器:Nginx、Apache
- 数据库:MySQL
- 图片服务器:OSS服务
- 开发语言
- 特点:前后端分离开发

4.专业术语
- 投资专业术语:
- 债权人(投资人):出钱的企业或个人
- 借款人:需要钱的企业或个人
- 投资(贷):出钱做某件事的过程(不一定能获取到利益)
- 投标(借):提交方案(乙方)
- 招标:发布需求(甲方)
- 中标:提交的方案被选中
- 流标:提交的方案没有被选中
- 债权转让:未完成的借款业务转让给他人(第三者)
案例:李四需要买辆车,准备找张三借5W,约定期满1年后连本带息1次性还款6W元。
1、债权人:张三 是李四的债权人 ===> 投资人
2、借款人:李四
3、投资:张三给李四借钱的买车过程
4、投标:张三给李四给钱方案 ===> 分批次/一次性
5、债权转让:张三急需把钱把借贷关系转让给王五(王五给张三5.5W) ===> (李四最后把本息还给王五)- 本息专业术语:
- 本金:借/贷原始的资金
- 利息:借款人给债权人最后给予的报酬(本金 * 利率)
- 利率:一定期限内,利息和本金的比率,一般以年利率较常见
案例:张三借给李四5W,约定期满1年后连本带息1次性还款6W元
本金:5W
利息:1W
利率:利息/本金=利率 ==> 20%- 还款专业术语
- 等额本息:将利息均摊,先息后本。相对于等额本金总还款额要多。每月固定还款额,适合收入不稳定人群。
- 提前将所有利息计算完毕,每月固定还款(本金+利息),前期还款利息占比多,后期还款本金占比多
- 等额本金:将本金均摊,每月固定本金,整体还款先高后低。相对于等额本息总还款额少。适合收入稳定人群。
- 每月偿还相同的本金 + 剩余本金产生的逐月递减的利息,因此月供逐月减少。
- 提前还款:提前将剩余借款还完。
- 等额本息:将利息均摊,先息后本。相对于等额本金总还款额要多。每月固定还款额,适合收入不稳定人群。
- 金融项目需求文档术语解释:
- 驳回:打回去重新修改,还可以再次提交
- 不通过:最终结果失败了,无法进行下去了,节点结束
- 撤标:这个活动取消不了【流标:撤标之后的结果】
- 满标待审(未过期,且投满):申请的借款在有效期内已经投满了,可以让平台管理员进行审批
- 部分复审(已过期,未投满):申请的借款在有效期内没有投满,到期后管理员将已借到的金额进行审批
- 提前复审(未过期,未投满):申请的借款在有效期内没有投满,未到期时用户申请管理员提前进行审批
- 延期:申请的借款已经过了筹款期限未投满,此时可以申请管理员进行延期继续进行投资
5. 具体业务流程操作
a.如何借款
我注册的测试账户:
16666458455
abc123- 借款之前需要先申请借款额度(一般银行等借款机构会先评估借款人的还款能力,根据还款能力给予借款额度)
如果额度不够,则借款时会提醒
- 申请额度之后,需要后台管理端对用户申请的借款额度进行审核(一般银行会评估资质、信用、流水等数据来判断是否发放额度,我们这个系统仅用于梳理业务流程,不是实际的银行项目,这步资质审核就跳过),我们先到后台管理端通过该审核,再继续进行借款业务


- 继续前往个人借款界面借款

- 填写借款信息

- 成功提交借款项目

b.如何投资
- 开通
资金托管功能,该功能相当于借款双方在第三方(银行等)机构的监督下进行,借款双方都先在银行注册一个新账户,借款的钱会在银行的这两个账户间流转,确保了资金的安全性透明性

- 进入投资列表,找到心仪项目进行投资

- 进行投资之前,需要先进行风险评估

- 风险评估后,继续投资,提示账户余额不足,这是因为先前开通的资金托管账户(平台账户)中没有钱,你的钱都在个人账户中,必须由你个人将钱转入平台账户后,才能进行投资

- 前往个人首页,点击“充值”,可以将个人账户中的余额转入平台账户用于投资(如果充值不成功,可以前往后台看一下)



- 平台账户余额充值完毕后,可以前往投资列表查找项目进行投标,这里随便找了个项目投资,发现投资金额满额后,会显示无法再继续投资,项目 进入满标待审阶段。但此时,债权人(投资人)投资的金额仍然在银行手中,借款人需要联系管理员进行审批,审批通过后银行才会将资金打到其平台账户中

- 若满标待审不通过,则该项目直接流标,什么都拿不到,项目也结束了
- :项目失败,结束项目,投资人的钱全部原路返回
- 平台管理员审批

- 管理员审批通过后,该项目的状态由“满标待审”变为“还款中”

- 切换到借款人账户,查看账户余额信息,发现项目资金成功提取到平台账户中

- 若要将平台账户的钱提取到个人账户中,就需要到个人主页进行提现操作,提现操作需要指定提现的银行卡

c.如何还款
- 先搞清楚当前是哪种账户


- 进入借款账户,查看“我的还款计划”,点击“还款”可以每月还款

- 注意,只有项目处于“还款中”状态时才有这个还款计划,如果项目未通过审批,则需要先去后台管理端将该满标待审项目审批通过
d.如何提前复审
- 用户向管理员提交提前复审申请
- 管理员前往后台管理端进行操作


- “更改锁定状态” 左侧的 “撤标” 是用于将选定的项目撤销(不管有没有筹到钱,直接流标,不要这个项目了,当然也拿不到给该项目筹集的资金)
6.测试实施
0)测试准备分析
- 测试选择:用户使用频率较高的业务及独立功能模块
- 业务:完成指定任务所经历的工作流。【例如:网上买东西全过程】
- 独立功能(功能):具备独立提供某项服务的能力。【例如:登录】
- 具体任务:
- 独立功能:注册、登录、额度申请、额度审核、借款申请、初审管理、充值、投资申请、投资审核、提现
- 核心业务:借款业务、投资业务
1)需求评审与分析
知道怎么做就行- 评审目的
- 理解需求,查漏补缺
- 评审内容
- 产品需求文档(PRD),UI原型图
- 评审方式
- 会议
- 评审人员
- 产品、开发、测试(、其他)
- 评审结果:评审通过无异议的PRD
Q:如何进行需求评审? A:
- 是否能看懂需求文档,需求文档内容是否需要完善
- 借助AI理解完善
- 人工辨别,整理优化
2)制定测试计划
具体步骤内容参考黑马头条项目测试基本步骤流程 安享智慧理财系统测试要求:
- 项目类型:金融项目
- 测试团队:6人
- 测试时间:6个月
3)测试设计(业务、单功能、非功能测试)
测试优先级: P0:业务正向 P1:业务逆向 P2:单模块正向 P3:单模块逆向 拿到一个项目后一般,先要确保基本功能能够走通
- 为什么需要业务测试?
- 从测试角度/用户角度,需要验证系统使用频率最高的功能组合(必测)
- 怎么开展业务测试?
- 根据业务流程找路径梳理测试点
- 根据路径编写测试用例
- 业务流程图哪里来?
- 产品提供
- 测试自己画(需要熟悉业务流程)
- 前提:先熟悉核心业务(可以问产品,然后自己结合UI原型图/环境分析)
- 过程:熟悉常见符号,先画主要操作(长方形),最后再加判断
- 可以再结合业务确定是否需要优化(不要太关注细节,会让流程图过于复杂)
编写测试用例内容:
- 用例编号:项目_模块_编号(英文简称)
- 用例标题:测试点
- 模块/项目:所属项目或模块
- 优先级:表示用例的重要程度或者影响力 ( P0
p4 ) ( P0 最高,为最核心用例) - 若某功能出现 bug 会导致用户直接无法使用应用,则该功能的测试优先级最高,为P0,若不影响正常使用,可降低优先级
- 前置条件:(没有它无法进行)要执行此条用例,有哪些前置操作,该项
非必填- 该项内容看棱形框填就行
- 测试步骤:描述操作步骤(怎么执行的过程,不用考虑细节)
- 测试数据:操作的数据,没有的话可以为空,
非必填- 要填的话,只填核心信息就好
- 预期结果:期望达到的结果(对应标题的结果)
a,业务流程测试(仅功能测试)
a1.额度申请审核业务
- 流程图:

- 测试点:
- 额度申请审核成功(正向)
- 借款人登录 --> 申请额度 --> 审核员登录 --> 额度审核 --> 审核通过
- 额度申请审核失败(逆向)
- 借款人登录失败(账号密码错误)
- 借款人登录 --> 申请额度提交失败(必填项为空/不满足条件/......)
- 借款人登录 --> 申请额度 --> 审核员登录失败(账号密码错误)
- 借款人登录 --> 申请额度 --> 审核员登录 --> 额度审核 --> 不通过
- 额度申请审核成功(正向)
a2.🌟特殊流程图(流程中含有循环):循环下一次选择路线随机选一条就行
- 示例流程图:

- 一般循环后选择正向的路线
- 🌟使用流程图设计测试点必须要保证流程图中的每条路线至少被覆盖一次
a3.🌟投资业务未过期流程(泳道流程图)

- 左泳道:投资人;右泳道:管理员
a4.🌟投资业务已过期流程(泳道流程图)
- 流程图:

- 继续投资:是一个子流程,表示进入该子流程,则后续流程与投资业务未过期流程图中未过期正在借款状态后的流程一致
- 子流程:仅适用于两个流程之间有关联的情况(一般是有相同后续流程)
- 🌟一般写的测试点,只需要考虑覆盖就行了
- 子流程:仅适用于两个流程之间有关联的情况(一般是有相同后续流程)
- 左泳道:投资人;右泳道:管理员
b.测试点设计(以功能测试为主)
具体设计可以参照Xmind文档中的内容按照如下思路进行分析,并设计测试点
- 单模块设计思路:
- 功能(如:登录)(业务则不需要对“显示”进行判断)
- 显示
- 数据信息必须显示正确
- 页面布局等与UI原型图一致
- 操作(运行软件)
- 目的(能干啥?不能干啥?)
- 成功(单条件正向取值的组合) --> 总数量:看单条件正向的最大数
- 失败(每个条件中的逆向数据) --> 总数量:所有条件的逆向数量之和
- 条件组合(如果不会写测试点,可以先对功能的条件进行分析)
- 正向(满足需求规则)
- 逆向(不满足需求规则)
- 目的(能干啥?不能干啥?)
- 其他(例如:登录功能中的忘记密码,属于其他版块的功能,在登录功能中仅作为跳转按钮,忘记密码的实际功能测试需要单独进行)
- 显示
- 非功能测试
- 兼容性
- 易用性
- 安全性
- 性能
- 功能(如:登录)(业务则不需要对“显示”进行判断)
c.单模块测试
- 前提:需求说明书PRD,UI原型图(有一个就行,两个都有最好)
- 单模块设计范围(测试点设计)
- 功能测试(能不能)
- 显示
- 操作
- 非功能测试(质量模型特性)
- 性能
- 兼容:不同终端能否正常使用
- 安全
- 易用:好用、好理解
- 功能测试(能不能)
c1.测试步骤
- 熟悉需求
- 理解需求:UI原型图,需求文档
- 理清 核心测试目的 + 条件
- 提取测试点(Xmind分析设计)
- 功能测试(能不能)
- 显示:是否正常
- 操作(含规则):能否成功
- 非功能测试(质量模型特性,详情见本页
c2.非功能测试介绍)- 性能
- 兼容:不同终端能否正常使用
- 安全
- 易用:好用、好理解
- 功能测试(能不能)
- 将测试点转化为测试用例(注意测试用例的8大内容,不要遗漏)
- 可以手工编写测试用例
- 可以通过AI生成,然后优化
- 测试用例评审(业务的测试点提取的测试用例也可以评审)
- 目的:防止漏测
- 方式:可以交叉评审(你改我的,我改你的),也可以提交给AI评审
- 执行测试用例
- 记录执行过程,登记缺陷管理
Q:为什么要对测试用例进行评审? A:目的是防漏测、查漏补缺;与开发人员实现方案保持同步 Q:评审的会议形式一般是什么? A:会议形式,或是交叉评审 Q:评审的结果是? A:获得项目内一致认可的测试用例
c2.🌟🌟 非功能测试介绍
一般非功能测试的步骤、内容是固定的,仅与系统架构有关,背下来就行(B/S架构和C/S架构的步骤内容不同)
一般非功能测试不会编写测试用例(可以设计测试点),非功能测试主要以正向用例测试为主
本项目是B/S架构,以浏览器为主- 兼容性测试(主要考虑浏览器兼容就行):
- 浏览器兼容(前三者是主流浏览器)
- Chrome
- Firefox
- Edge
- Safari
- Opera
- 一般先测主流的浏览器,选择一个主流浏览器测试全部用例,其他两个主流浏览器只测正向用例(自动化测试可以解决手工测试执行繁琐的问题)
- 一般情况下要测试当前版本的浏览器 + 上一个版本的浏览器
- 操作系统兼容
- Windows系列
- windows10
- windows11
- MacOS系列
- Windows系列
- 浏览器兼容(前三者是主流浏览器)
- 易用性
- 主观感受:好用,好理解,好看,体验好(用户粘性高,使用频率高,使用时间长),......
- 问卷调查:从 年龄、学历、使用背景 等多个方面设计调查问题
- 安全性
- 数据安全
- 传输安全
- 存储安全
- 权限安全:不能出现越权,低权限不能访问高权限内容,高权限可以访问低权限内容
- 防攻击(第三方专业级的测试,对以下三种漏洞进行测试并防范)
- 系统性漏洞
- 架构层漏洞
- 网络层漏洞
- 数据安全
- 性能(专项测试):服务端性能(接口性能)
- 并发
- 压力
- 负载
c3. 实战案例:额度申请模块
- UI原型图:

- 需求文档内容:

- 对审核申请模块的分析及设计
- 单模块分析:

- 单模块测试点设计:

- 单模块分析:
d. 设计难点
d1.业务流程测试
步骤:
- 熟悉业务场景:以用户视角去使用
- 无流程图情况(如果有流程图,则按流程图设计测试点即可):
- 自己画
- 普通流程图
- 泳道图:适用于复杂的、有不同角色交互逻辑的业务流程
- 设计完毕后需要进行小组评审
- 自己画
d2.单功能测试
- 难点1:只有UI图,没有需求和规则 --> 借助AI,以产品的身份输出需求文档,挑出其中的和即可
- 要求:有啥,能做什么。例如:登录功能有账号输入框、密码输入框、验证码输入框,就可以要求在输入框输入数据
- 规则:约束性的、逻辑性的,描述的是"在什么条件下"以及"应该遵循什么逻辑"。例如:输入框限定只能输入1 ~ 11 个字符
- 难点2:有UI图和需求文档 --> 结合设计方法拆分测试点
- 单选框
- 有默认值 --> 只有 有效 的情况,没有 无效
- 无默认值 --> 既有 有效,又有 无效
- 单选框
- 难点3:非功能测试需要考虑哪些方向?怎么设计测试用例?
- 一般选择正向的模块/业务用例执行
1. 基于B/S架构的非功能测试主要有:兼容性、易用性、安全、性能
2. 一般设计用例按照模块/业务的正向用例去执行。比如登录兼容性:考虑不同浏览器登录成功过程和结果是否正确;登录过程中数据传输是否加密、数据库存储是否安全;多人登录支持多少并发,压力测试的支持多少,最大负载有多少等d3.单功能模块中出现级联功能
级联:上级选择不同,下级会随之发生变化
例如:上级下拉框为借款方式,选择支为:请选择(不选)、按月计费、按日计费;假设下级下拉框选项为:借款期限
若不选,则借款期限均无效,无法选择(上级有效时,才能继续拆分分析下级)
若选择按月计费,则下级下拉框选项为1个月、2个月、...、240个月
若选择按日计费,则下级下拉框选项为1天、2天、...、365天- 基于页面功能中有上下级关系的条件,进行组合测试,如何覆盖更全且不出现逻辑问题
- 先确定上级(前提条件),将上级按有效和无效拆分,下级在上级有效的基础上进行再次拆分,最后进行组合
- 完成之后,将测试点提交给AI进行完善
4) 测试执行
- 什么时候开始执行?
- 按照 测试计划约定的时间
- 测试用例 + 环境已经部署完成
- 用例执行方式:
- 逐条执行
- 执行结果记录(前两种最常见):
- 测试通过 --> pass
- --> 后续修复bug后进行 回归测试
- 测试阻塞 --> block(严重程度级别最高的一等)
- 功能缺失 --> N/A
5) 缺陷管理
详情见4.软件缺陷及管理
回归测试必须在新版本中进行测试(先更新,再回归)
- bug修复后,若满足测试计划中确定的准入准出标准,则允许项目上线
- 准入准出标准如:用例执行100%,bug修复率98%,且没有遗留的中等级别以上的bug
6)编写测试报告
测试报告的作用:是测试完成的标志,对于测试工作的,也是对质量的和承诺 核心内容:项目概述 -> 过程回顾 -> 统计分析(-> 术语说明)-> 结果说明 -> 总结改进
黑马安享智慧理财金融项目的bug
- 后台管理页面中,"导出当前页面的数据" 功能有bug,点击该功能按钮,将会导出所有页面的数据内容,而不是仅导出当前页的数据(导出的excel文件名需要与当前功能模块名一致)

总结
迭代:从 1.0 版本到 1.1 , 1.2 版本的过程
重构:功能已经有了,但技术过时了(太老了),需要更新迭代技术 或 业务- 总结
- 项目名称
- 黑马安享智慧理财
- 项目时间
- 从0到1的项目
- 6个月+
- 的项目()
- 按月/周为单位
- 从0到1的项目
- 测试岗位
- 功能测试
- 项目类型及架构
- B/S的金融理财类型
- 主要解决问题
- 解决线上用户通过银行等机构借款和放贷手续繁琐的问题,能够在线快速审批放贷,快捷方便解决急用钱和有投资需求的用户
- 用户群
- 借款人
- 投资人
- 平台审核员
- 🌟项目有啥?
- 项目名称