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架构(客户端和服务 ...
随机推荐
- proxy是什么
普通的因特网访问是一个典型的客户机与服务器结构:用户利用计算机上的客户端程序,如浏览器发出请求,远端WWW服务器程序响应请求并提供相应的数据.而Proxy处于客户机与服务器之间,对于服务器来说,Pro ...
- 从LocalDateTime序列化探讨全局一致性序列化
日拱一卒无有尽,功不唐捐终入海. 楔子 前两周发了三篇SpringSecurity和一篇征文,这周打算写点简单有用易上手的文章,换换脑子,休息一下. 今天要写的是这篇:从LocalDateTime序列 ...
- 分布式ID生成服务,真的有必要搞一个
目录 阐述背景 Leaf snowflake 模式介绍 Leaf segment 模式介绍 Leaf 改造支持RPC 阐述背景 不吹嘘,不夸张,项目中用到ID生成的场景确实挺多.比如业务要做幂等的时候 ...
- django-rest-framework-源码解析003-视图家族和路由(APIView/GenericAPIView/mixins/generics/viewsets)
视图家族 视图家族在rest_framework源码位置和学习曲线为: rest_framework.views: 基本视图(APIView) rest_framework.generics: 工具视 ...
- JavaFX让UI更美观-CSS样式
相对于Swing来说,JavaFX在UI上改善了很多,不仅可以通过FXML来排版布局界面,同时也可以通过CSS样式表来美化UI. 其实在开发JavaFX应用的时候,可以将FXML看做是HTML,这样跟 ...
- JAVA实现BP神经网络算法
工作中需要预测一个过程的时间,就想到了使用BP神经网络来进行预测. 简介 BP神经网络(Back Propagation Neural Network)是一种基于BP算法的人工神经网络,其使用BP算法 ...
- Biopython 第三方库示例
Biopython 第三方库示例 https://biopython-cn.readthedocs.io/zh_CN/latest/
- 线程_apply堵塞式
''' 创建三个进程,让三个进程分别执行功能,关闭进程 Pool 创建 ,apply执行 , close,join 关闭进程 ''' from multiprocessing import Pool ...
- 自学java,学多久可以自己找到工作?
先以肯定的语气说明一下自学Java,多久可以找到工作: 按照目前Java的体系来说,Java的几个重点在于Javase.数据库.Spring全家桶系列的框架.而其他的在Java体系之内,会基础的操 ...
- PHP array_rand() 函数
实例 返回一个包含随机键名的数组: <?php $a=array("red","green","blue","yellow& ...