Web测试转App测试不看不知道
Web测试
Web通常指的是互联网应用系统,比如税务电子化征管档案系统、金融数据平台、餐饮商家管理后台等等,其实质是C/S的程序。
C是Client——客户端,S是Server——服务器。
Web中的客户端一般指的是Browser——浏览器,也就是B/S。
Web系统有三层结构 == 表示层 + 业务层 + 数据层。
MVC软件设计模式也是三层 == 模型 + 视图 + 控制器。
它们的对应关系如下,不完全准确,简单意会意会即可,

测试的一个重要思路是,了解被测对象的架构,Web系统典型架构如图所示,

这个图很重要,多看几秒!想想这些问题,
我测试覆盖的是哪些地方?
有哪些环节是漏掉的?
浏览器从请求到响应,这个过程是怎样一个链路?
测试难点
Web测试,不仅仅是页面的点点点。
面对这样复杂的系统,如何保障质量,使系统健康的、长期的、稳定的运行,是测试的难点。
业务复杂度本身就是难点,而且这是测试核心中的核心。
安全、性能的评估,也是一个棘手的难点。
网站用户的能力,包括浏览器、操作系统、设备、网络带宽都可能是参差不齐。
网络中断,或弱网情况下,网站的表现。
网站本身的应用日志、系统资源、冷热数据。
引入的第三方程序的质量,虽然可以直接用,但仍需做黑盒测试。
国际化差异,如语言、时差、货币兑换。
你要考虑的不是一个点,也不是一个面,而是一个整体。
表示层
表示层的测试对象包括了,
- UI(User Interface)用户界面
- UE(User Experience)用户体验
- UED(User-Experience Design)用户体验设计
简而言之就是,系统的外观和感觉。
更专业具体点,就是整体审美、字体、链接跳转、图形分辨率和大小、色彩、拼写检查、文字语法和风格、光标位置、选中默认按钮、交互操作体验友好、商业特定术语和风格、确认框、浏览器版本、操作系统配置等。
表示层的测试主要以人工为主,部分测试也可以通过工具完成,如无效链接检测。
业务层
业务层包括内部业务和外部服务,内部业务和外部服务都需要经过测试。
内部业务就是实实在在的业务,每个公司的业务都有差异。
业务测试是贯穿于测试周期自始始终的。
最开始测试考虑的是业务,测试结束考虑的也还是业务。
业务层测试是用到测试用例设计方法最多的,包括等价类划分、边界值、判定表、因果分析、场景法等。
同时也需要做性能测试,考察响应时间、吞吐率等性能指标。
毫不夸张的说,无业务,不测试!
数据层
数据层主要干的事就是读写数据。
数据层的数据既包括系统自产的,也包括从用户收集来的数据。
数据是存放在数据库服务器里边的,包括RDBMS、NoSQL。
数据模型定义了数据层接口和数据存储方式。
数据可以直接使用,但往往是经过了ETL对数据进行加工。
数据层的测试是有一些门槛的,但一些隐藏的bug就藏在这一层。
首先需要测试的是数据存储的正确,其次需要测试冗余数据的清理,还有数据状态的变化。
数据库的性能,sql的耗时,数据量大小,数据冷热。
数据库的数据类型,长度、精度、字符集、日期时间格式、时区等。
数据库的安全,数据加密和安全性。
还有数据库的鲁棒性,故障处理,备份恢复能力,最大化MTBF,最小化MTTR。
App测试
网络
App测试还是从架构入手,先看看App的典型的无线运营商网络架构,

移动网络,是App区别于Web应用的重要差异。
移动网络的通信协议并不是基于IP的,而通常是一种基于射频的协议。
如,
- CDMA(Code Division Multiple Access)码分多址
- TDMA(Time Division Multiple Access)时分多址
- GSM(Global System for Mobile)全球移动通信系统
- 4G (the 4th generation mobile communication technology)第四代移动通信技术
很多运营商都使用某种代码转换器或Web代理来进行移动设备与互联网的通信。但是因为竞争的关系,运营商一般不会披露这些细节。他们可能会“偷偷”干这些事,
- 将数据转换成WAP或HTTP支持的格式
- 压缩数据为了更快地传输和提高吞吐量
- 数据传输加密和隐私保护
- 屏蔽一些占用过高带宽的站点
- 从网页中抽取HTML头信息和其他元数据以供程序使用
WAP,是指Wireless Application Protocal,无线应用协议,已经过时。
现在大多数都使用HTTP协议了。
正是由于移动网络的存在,以及不同使用场景下网络状态的不稳定,在测App时,需要做弱网测试。
弱网包括无网(断网)、弱网(2G 3G 4G)、网络切换。
设备
App测试和Web测试,另外一个明显的区别就是,移动设备非常丰富。
不同的机型。不同的屏幕。不同的版本。不同的系统。不同的CPU内存。不同的浏览器。不同的配置。
App是To C的,也就意味着使用环境无法统一控制,是千差万别的。
这对测试来说是很大的挑战,以至于有漫画调侃,高级测试工程师,可以转行卖手机了!
不过好在有模拟器,有云测平台,减少了测试设备兼容性的成本。
模拟器也不是银弹,不能替代真机,所以App必须在真机上面跑过才算ok。
真机和模拟器,各有利弊,需要做必要的权衡。
可以先用模拟器完成大量测试,最后使用真机做验收。
用真机测试还需要注意的一个小问题就是,测试用例设计的尽量有效,不然每一次重复测试,就很可能在燃烧你的经费。
测试方法
App测试和Web测试有很多共同的地方,尤其是业务层和数据层。
不过由于网络和设备等因素,让App测试也有一些特殊的场景,
| 测试分类 | 说明 |
|---|---|
| 安装/卸载 | 确保用户可以正确的安装应用程序 确保用户可以完全卸载应用程序 测试安装中断后能否恢复正常 测试卸载能否中断 |
| 网络基础设施 | 证实应用程序在网络丢失的情况能够正确响应 证实应用程序能够正确响应网络回复的情况 证实应用程序能够在网络信号差的情况下正确响应 |
| 来电和短信处理 | 测试用户能够在应用程序运行的情况下接电话以及回短信 测试用户能够在处理完来电和短信之后能否返回应用程序 测试用户能否在不中断应用的情况下取消来电和短信 测试用户能否在不退出应用程序的条件下拨打电话和短信 |
| 内存不足 | 确保应用程序在设备内存不足的情况下仍然能够稳定工作 |
| 按键 | 测试所有的热键按照产品规格书实现 |
| 退出 | 检查程序能够正常退出(通过按键合屏或滑块锁屏) 确保在机器关闭的情况下应用程序的行为和设计规格说明书上一致 |
| 充电 | 确保程序在切换到充电模式时工作正常 确保程序能够在充电状态下正常工作 确保程序在退出充电模式时不会发生异常 |
| 电量 | 测试在电量不足的情况下应用程序的行为表现 计算应用程序将用多长时间耗尽电量 确保在电池突然拔出的情况下应用程序的反应和说明书一致 |
| 硬件资源 | 确保应用程序没有过度占用CPU 确保应用程序不消耗过多的内存资源 |
| 升级 | 确保静默升级、提示升级、强制升级情况下升级成功 确保补丁包、全量包升级成功 |
电子商务术语
B2B、B2C、C2C、O2O是电子商务的4种模式。
B2B,Business to Business,企业对企业,如经销商销货给超市。
B2C,Business to Customer,企业对个人,如超市卖东西。
C2C,Customer to Customer,个人对个人,如摆地摊。
O2O,Online to Offline,线上到线下,如网上点个豆浆早餐到肯德基取。
B端-->企业端。
C端-->个人端。
G端-->政府端。
参考资料
——《软件测试的艺术》
专注测试,坚持原创,只做精品。欢迎关注公众号『东方er』
版权申明:本文为博主原创文章,转载请保留原文链接及作者。
Web测试转App测试不看不知道的更多相关文章
- app测试、web测试-怎么测?
app测试 前言 看过许多大神对APP测试的理解,博主总结了一下我们平时测试APP应该注意的一些测试点并结合大神的理解,总结出这篇文章. 一.测试周期 测试周期一般为两周,根据项目情况以及版本质量可适 ...
- 【测试工具】这些APP实用测试工具,不知道你就out了!
本期,我将给大家介绍14款实用的测试工具,希望能够帮到大家!(建议收藏) UI自动化测试工具 1. uiautomator2 Github地址:https://github.com/openatx/u ...
- app测试与web测试的区别
1.从功能测试的来讲的话,在流程和功能测试上是没有区别的.系统测试和一些细节可能会不一样. 那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app则是c/ ...
- APP测试中的头疼脑热:测试人员如何驱动开发做好自测
如今,随着移动互联网的浪潮越翻越涌,移动APP测试工作的现状已经成了那本"家家难念"的经.不管公司大小,不管测试哪种类型的APP,让广泛测试者苦不堪言的就属重复性最多,测试工作量最 ...
- Web压力测试和手机App测试
总纲:认识测试关系和目标http://blog.csdn.net/superxgl/article/details/27189631 一.web测试和App服务端测试 软件安装 建议安装loadrun ...
- web与app测试的区别
单纯从功能测试的层面上来讲的话,APP 测试.web 测试 在流程和功能测试上是没有区别的. 系统架构方面: web项目,一般都是b/s架构,基于浏览器的 app项目,则是c/s的,必须要有客户端,用 ...
- 圆满完成平安科技Web安全与App应用安全测试培训!
圆满完成平安科技Web安全与App应用安全测试培训!
- Web测试与APP测试有哪些异同?
1.相同点 不管是传统行业的web测试,还是新兴的手机APP测试,都离不开测试的基础知识,即是不管怎么变,测试的原理依然会融入在这两者当中. 1)设计测试用例时,依然都是依据边界值分析法.等价类划分等 ...
- web测试和app测试的区别
功能上: 功能上没有什么区别,都是用同样的方法来写用例(等效.边界值...) 架构上: web是B/S架构(浏览器和服务器)代码更新后数据会同步,可以保证所有客户一致 app是C/S架构(客户端和服务 ...
随机推荐
- MySQL 面试题 24 问
MySQL 是数据库中的主流中的主流,小中性公司基本都以它为主,而作为后端开发和数据库工程师来说,MySQL 是面试必须要过的一关.以下是小编整理网络的 MySQL 面试高频题,希望对大家有所帮助. ...
- 关于springboot中过滤器和拦截器
在解决跨域问题中,发现拦截器和过滤器用得不是熟练.就参考了下一下两个作者的文档.希望大家也可以汲取精华 文档1 https://blog.csdn.net/moonpure/article/det ...
- ASP.NET Core3.1使用Identity Server4建立Authorization Server-2
前言 建立Web Api项目 在同一个解决方案下建立一个Web Api项目IdentityServer4.WebApi,然后修改Web Api的launchSettings.json.参考第一节,当然 ...
- Pycharm无法安装第三方库,错误代码Non-zero exit code (1) 的解决方案之pip升级
软件测试,B站爱码小哥邀你同行! 进入主题 问题场景:在pycharm进行安装某些库,install失败,提示需要升级pip ,报错界面问题如下错误代码Non-zero exit code 大致意思是 ...
- SpringBoot整合Swagger3生成接口文档
前后端分离的项目,接口文档的存在十分重要.与手动编写接口文档不同,swagger是一个自动生成接口文档的工具,在需求不断变更的环境下,手动编写文档的效率实在太低.与swagger2相比新版的swagg ...
- .clearfix 清除浮动,@import
我们知道,在网页的DIV+CSS布局中,很多时候要用到浮动. 既然有浮动,那就有清除浮动. 清除浮动有很多种方式,而在实际项目中,比较常用的是这一种. .clearfix:after { conten ...
- k8s教程:Kubernetes集群使用网络存储NFS
NFS存储 NFS即网络文件系统Network File System,它是一种分布式文件系统协议,最初是由Sun MicroSystems公司开发的类Unix操作系统之上的一款经典网络存储方案,其功 ...
- STL Stack(栈)学习笔记 + 洛谷 P1449 后缀表达式
稍微看了看刘汝佳的白皮书,“实用主义”的STL实在是香到我了,而且在实验室大佬的推荐下我开始了stl的学习. 每篇附带一个题目方便理解,那行,直接开始. 毕竟是实用主义,所以就按照给的题目的例子来理解 ...
- IDEA 2020.1.2 idea 2020.1.3下载 安装 一键破解
IDEA 2020.1.2 idea 2020.1.3下载 安装 破解 本项目只做个人学习研究之用,不得用于商业用途!若资金允许,请点击链接购买正版,谢谢合作!学生凭学生证可免费申请正版授权!创业公司 ...
- springboot整合Druid(德鲁伊)配置多数据源数据库连接池
pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-ja ...