当前位置: 首页 > ai >正文

软件测试从入门到精通:通用知识点+APP专项实战

一、软件测试基础:价值、岗位与核心分类

1. 测试的核心价值

(1)测试本质:质量的“最后防线”

软件测试的核心目标是发现缺陷(Bug) 并推动修复,覆盖从用户体验(如文案错误)到功能失效(如登录失败),再到安全风险(如数据泄露)的全场景问题。其本质是验证软件是否符合用户需求,避免因质量问题导致用户流失或商业损失(如电商APP支付失败)。

2. 软件测试的核心分类

生产阶段代码可见度等维度划分,不同类型对应不同测试场景,需针对性设计方案:

(1)按生产阶段划分:覆盖研发全流程
测试类型测试对象执行角色核心目标电商案例
单元测试单个代码模块(如函数)开发工程师验证模块内部逻辑正确性校验“密码加密函数”是否处理特殊字符
集成测试模块间交互(登录→下单)测试工程师验证模块协作无数据断层检查“购物车→提交订单”数据传递完整性
系统测试整个系统(功能+非功能)测试工程师全面验证系统符合需求测试“登录→搜索→下单→支付”全流程
验收测试最终交付版本用户/产品经理验证是否满足实际使用场景用户实操下单,确认优惠券使用功能
(2)按代码可见度划分:黑盒、灰盒、白盒
测试类型代码可见度测试重点适用场景
黑盒测试完全不可见(仅见UI)输入→输出正确性,不关心内部逻辑功能测试(如登录页面账号密码校验)
灰盒测试部分可见(如接口文档)输入输出+数据流转(接口参数)接口测试(Postman调用登录接口)
白盒测试完全可见(源代码)代码逻辑覆盖率(分支、循环)单元测试(验证“密码错误3次锁定”逻辑)
(3)其他关键类型
  • 冒烟测试:提测后优先验证核心功能(如登录、下单),不通过则打回开发,避免无效测试;
  • 回归测试:修复Bug或新增功能后,重新测试旧功能(如修复支付Bug后验证登录正常);
  • 专项测试:针对非功能需求,如性能(并发量)、安全(SQL注入防护)、兼容性(多浏览器/设备)。

二、软件测试核心方法:从用例设计到落地

测试方法是保障覆盖率的关键,常用方法覆盖“输入场景、边界场景、多条件场景”,需结合需求灵活选择:

1. 等价类划分法:用少量数据覆盖大量场景

针对表单输入类需求(注册、登录),将数据划分为“有效”“无效”两类,每类选代表性数据,减少冗余:

  • 步骤
    1. 划分有效等价类(满足需求,如“已注册手机号”);
    2. 划分无效等价类(不满足需求,如“未注册手机号”“10位手机号”);
    3. 每类选1-2个代表数据。
  • 案例:网易163邮箱注册(密码需求:8-16位,含大小写+数字)
    • 有效:Test1234(8位)、Test@1234567890(16位,含特殊字符);
    • 无效:test1234(无大写)、Test123(7位,长度不足)、Test12345678901234567(17位,超限)。

2. 边界值分析法:聚焦临界值,暴露隐藏Bug

针对有范围限制的需求(密码长度、商品数量),重点测试“边界点”“临近边界点”(Bug常出现在临界值):

  • 步骤
    1. 确定边界范围(如密码8-16位);
    2. 选“上点”(边界值:8、16)、“离点”(边界外最近点:7、17)、“内点”(范围内:12);
    3. 用这些点设计用例。
  • 案例:电商购物车(库存100,数量范围1-100)
    • 上点:1、100(添加1件成功,添加100件成功);
    • 离点:0(提示“数量不能为0”)、101(提示“超出库存”);
    • 内点:50(添加成功)。

3. 判定表法:处理多条件组合逻辑

针对多条件约束需求(促销活动、权限控制),用表格梳理“条件→结果”对应关系,避免逻辑遗漏:

  • 组成
    • 条件桩:所有条件(如“是否在活动时间内”“金额是否满1000”);
    • 动作桩:所有结果(如“享受9折”“无折扣”);
    • 条件项:条件取值(是/否);
    • 动作项:条件组合对应的结果。
  • 案例:促销活动(活动时间内+金额满1000→9折)
    | 条件 | 组合1 | 组合2 | 组合3 | 组合4 |
    |---------------------|-------|-------|-------|-------|
    | 1. 是否在活动时间内 | 是 | 是 | 否 | 否 |
    | 2. 金额是否满1000元 | 是 | 否 | 是 | 否 |
    | 动作:是否享受9折 | 是 | 否 | 否 | 否 |

三、软件测试全流程:从需求到报告的规范落地

规范的流程是质量保障的基础,需覆盖“需求分析→用例执行→缺陷跟踪→报告输出”5个核心步骤:

1. 需求分析与评审

  • 目标:明确测试范围,无歧义理解需求;
  • 输入:需求文档、产品原型(如登录验证码有效期3分钟);
  • 输出:需求分析文档(标注重点,如“验证码过期需提示重新获取”)。

2. 测试计划与用例设计

(1)测试计划

明确资源(人员、环境)、进度(如3天完成登录模块测试)、风险(如支付接口依赖第三方,需提前联调)。

(2)测试用例核心要素

用例是测试的“执行手册”,需包含以下关键信息:

要素说明示例
用例编号唯一标识(项目_模块_序号)login_001
用例标题测试目标(预期结果)登录失败(账号为空+密码不为空)
前置条件执行前需满足的条件已打开登录页面、账号已注册
测试步骤操作流程1. 输入空账号;2. 输入正确密码;3. 点击登录
测试数据输入的具体数据账号:空;密码:Test1234
预期结果期望的系统响应提示“账号不能为空,请输入已注册手机号”

3. 用例执行与缺陷提交

(1)执行前提
  • 开发提测版本稳定(冒烟测试通过);
  • 测试环境就绪(数据库、接口地址正确)。
(2)缺陷判定标准

实际结果与预期不一致即为Bug,需满足以下任一:

  1. 未实现需求明确的功能(如登录后未跳转个人主页);
  2. 实现需求外功能(如登录页额外显示“会员等级”);
  3. 功能错误(如正确密码提示“密码错误”);
  4. 用户体验差(如验证码刷新按钮隐蔽)。
(3)缺陷提交规范(用禅道/Jira)
  • 标题:简洁描述问题(如“登录时验证码过期未提示”);
  • 步骤:复现流程(如“1. 打开登录页;2. 等待3分钟;3. 输入验证码点击登录”);
  • 附件:截图/日志(如验证码过期页面截图);
  • 严重程度:P0(致命,如支付失败)→ P3(轻微,如文案错别字)。

4. 缺陷跟踪与回归测试

  • 缺陷流程:提交→开发确认→修复→测试回归→关闭/重新打开;
  • 回归测试:验证Bug修复,同时检查是否引入新问题(如修复登录Bug后验证下单正常)。

5. 测试报告编写

核心内容:

  • 测试范围(如登录、购物车模块);
  • 用例执行情况(通过率:执行100条,通过95条,通过率95%);
  • 缺陷统计(严重程度分布:P0 1个,P1 3个);
  • 风险总结(如未修复的P1缺陷:“购物车超库存添加无提示”)。

四、APP专项测试:移动端特有场景实战

APP测试需重点应对“多设备适配、性能消耗、移动场景干扰”等问题,核心覆盖以下方向:

1. APP与Web测试的核心差异

维度APP测试(C/S架构)Web测试(B/S架构)
架构特性需下载安装客户端,依赖移动设备基于浏览器访问,无需安装
运行环境受系统版本(Android/iOS)、硬件(机型/屏幕)影响大环境统一(依赖浏览器)
测试重点安装/卸载/升级、性能(内存/电量)、设备兼容性浏览器兼容性、页面渲染、接口联调
特有场景Push消息、交叉事件(来电干扰)、离线功能无,依赖网络连接

2. APP测试核心范围

测试类型核心内容示例场景
功能测试单模块(登录、搜索)、业务流程(下单、支付)登录验证码有效期校验、购物车数量限制
专项测试安装/卸载/升级、兼容性、Push消息、交叉事件、用户体验不同系统版本安装适配、来电时APP稳定性
性能测试资源占用(CPU/内存/电量/流量)、启动速度、流畅度、长期稳定性首页滑动帧率(FPS)、冷启动时间

3. APP专项测试实战(5大核心场景)

(1)安装/卸载/升级测试:保障生命周期稳定性
  • 安装测试
    • 正常场景:不同系统(Android 5.1~14、iOS 11~17)、渠道(应用宝、华为商城)、路径(手机内存/SD卡);
    • 异常场景:安装时关机/断网(恢复后可继续)、存储空间不足(提示“清理空间”)。
  • 卸载测试
    • 正常卸载后无数据残留(缓存、数据库);
    • APP运行时卸载(提示“是否强制卸载”)。
  • 升级测试
    • 临近版本(V1.0→V1.1)、跨版本(V1.0→V2.0)升级;
    • 升级后保留历史数据(如用户收藏、订单记录)。
(2)兼容性测试:覆盖多设备与网络
  • 设备兼容
    • Android:覆盖华为、小米、OPPO等主流机型(市场占有率Top10);
    • iOS:近3代机型(iPhone 13/14/15)及系统(iOS 15~17);
    • 屏幕适配:分辨率(720×1280、1080×1920)、尺寸(4.7/5.5/6.7英寸),避免控件遮挡。
  • 网络兼容
    • 覆盖2G/3G/4G/5G/Wi-Fi,弱网场景(4G切换2G提示“网络不佳”);
    • 断网恢复(支付时断网,恢复后可继续)。
  • 测试工具
    • 真机:公司自备主流机型;
    • 云测平台:Testin、腾讯云测(批量测试数百机型);
    • 模拟器:MuMu(初期功能验证,不支持电量/真实网络)。
(3)Push消息推送测试:验证准确性与及时性
  • 推送原理
    • Push(服务器主动推送,节省资源):iOS APNs、Android华为/极光推送;
    • Pull(客户端主动拉取,耗资源):仅用于低实时性场景。
  • 核心测试点
    • 服务器配置:定向推送(仅VIP用户收优惠)、定时推送(每日9点日报);
    • 客户端接收:APP前台(弹窗)、后台(通知栏)、离线(重启后接收);
    • 跳转正确性:点击消息跳转至对应页面(如“订单提醒”→订单详情)。
(4)交叉事件测试:干扰场景下的稳定性

交叉事件(冲突测试):APP运行时被其他操作干扰,验证恢复能力:

干扰事件测试点
接打电话/收发短信播放视频时来电,挂断后继续播放;短信弹窗不遮挡支付按钮
切换网络4G切Wi-Fi时,商品列表加载不中断
设备状态变化横竖屏切换布局不错乱;插拔充电器不闪退
其他应用干扰后台下载时APP滑动不卡顿;打开相机后返回APP保留当前页面
(5)用户体验测试:以用户视角优化
  • UI界面:控件风格(按钮、字体)统一,空数据场景有引导(如购物车空时提示“去添加商品”);
  • 易用性:核心业务(下单)不超过3步,按钮可点击范围≥80dp(避免误触);
  • 横竖屏适配:动态页面(表格)切换时布局自适应,视频APP支持横屏锁定。

4. APP性能测试:监控资源与稳定性

APP性能直接影响用户留存(卡顿、耗电快会导致卸载),需重点监控7类指标,工具推荐SoloPi(Android)、Xcode(iOS):

指标监控重点测试方案
内存实际使用内存(PSS)、私有内存(Private Dirty);避免泄漏/溢出SoloPi监控,滑动首页观察PSS是否稳定,日志搜“OutOfMemory”排查溢出
CPU全局/应用CPU占用;避免长时间≥90%(发热、响应慢)SoloPi监控,加载数据时CPU≤70%,日志搜“ANR”(无响应)
流量上行/下行流量;避免无意义请求(重复加载图片)SoloPi监控首页流量,优化:压缩图片、缓存数据
电量平均耗电量(每小时≤5%);避免频繁定位、后台唤醒真机+AccuBattery,操作2分钟统计耗电,对比竞品(每小时≤8%)
流畅度帧率(FPS):静态页≥15帧,动态页≥24帧,最佳≥60帧SoloPi监控帧率,滑动商品列表FPS稳定≥24帧
启动速度冷启动(首次打开)≤3秒,热启动(后台切前台)≤1秒SoloPi“启动耗时计算”,减少启动初始化任务
稳定性避免崩溃、闪退、ANR;长期运行无异常Android Monkey命令:adb shell monkey -p 包名 -v 500000 > log.txt,日志搜“Exception”

5. APP发布流程:从内测到上线

(1)内部发布(测试阶段)
  • 工具:蒲公英、TestFlight(iOS);
  • 流程:开发上传测试包→平台生成二维码→测试扫码安装,支持版本管理。
(2)线上发布(正式上线)
平台发布要求
Android应用宝、华为商城;需提交开发者资质(营业执照、软著)
iOSApp Store;需苹果开发者账号(年费99美元),审核3-7天
第三方渠道豌豆荚、PP助手;部分需接入SDK(友盟统计)
  • 关键步骤:账号准备→添加渠道ID→提交审核→测试验证渠道包→正式上线。
(3)灰度发布策略

先发布至10%-30%用户/服务器,观察无异常后全量,降低风险;若发现严重问题(如支付失败),立即回滚。

6. APP测试实战:以TPShop商城为例

(1)功能测试:登录模块
  • 需求:支持手机号/邮箱登录,验证码有效期3分钟,密码错误3次锁定10分钟;
  • 核心用例
    用例编号标题步骤预期结果
    login_001登录成功1. 输入已注册手机号;2. 输入正确密码;3. 登录跳转个人主页,显示用户名
    login_002验证码过期1. 获取验证码;2. 等待4分钟;3. 登录提示“验证码已过期,请重新获取”
    login_003密码错误3次1. 输入正确手机号;2. 3次错误密码提示“账号锁定10分钟”
(2)性能测试:首页滑动流畅度
  • 工具:SoloPi;
  • 步骤:勾选“帧率”监控→进入首页滑动2分钟→结果:FPS平均35帧,无卡顿。
(3)稳定性测试:Monkey命令
  • 包名com.tpshop.malls(通过adb shell dumpsys window windows | grep usedApp获取);
  • 命令adb shell monkey -p com.tpshop.malls -v 100000 > tpshop.log
  • 分析:日志无“Exception”“ANR”,稳定性合格。
http://www.xdnf.cn/news/18500.html

相关文章:

  • 使用Screenpipe+本地大模型实现私人助手Agent
  • 某电器5G智慧工厂网络建设全解析
  • Linux学习:信号的保存
  • TypeReference 泛型的使用场景及具体使用流程
  • GEO优化服务商:AI时代数字经济的新引擎——解码行业发展与技术创新实践
  • 【Spring Boot】集成Redis超详细指南 Redis在Spring Boot中的应用场景
  • kubernetes-dashboard使用http不登录
  • 【卷积神经网络详解与实例】1——计算机中的图像原理
  • 卓伊凡的开源战略与PHP-SG16加密技术深度解析-sg加密技术详解-卓伊凡
  • pixijs基础学习
  • pyecharts可视化图表-map:从入门到精通
  • 【手撕JAVA多线程:2.线程安全】 2.1.JVM层面的线程安全保证
  • C++算法·进制转换
  • DeepSeek V3.1深度解析:一个模型两种思维,迈向Agent时代的第一步!
  • 并查集详解
  • 基于Python的农作物病虫害防治网站 Python+Django+Vue.js
  • 说说你对Integer缓存的理解?
  • 文献阅读笔记【物理信息机器学习】:Physics-informed machine learning
  • 【秋招笔试】2025.08.23美团研发岗秋招笔试题
  • SpringBoot applicationContext.getBeansOfType获取某一接口所有实现类,应用于策略模式
  • 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第五章整理
  • 墨刀原型设计工具操作使用指南及实践操作
  • 玩转Vue3高级特性:Teleport、Suspense与自定义渲染
  • 【假设微调1B模型,一个模型参数是16bit,计算需要多少显存?】
  • 【ABAP4】创建Package
  • 【力扣 Hot100】每日一题
  • Agent原理、构建模式(附视频链接)
  • 深度解析Bitmap、RoaringBitmap 的原理和区别
  • 讲点芯片验证中的统计覆盖率
  • 【攻防世界】easyupload