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测试不看不知道的更多相关文章

  1. app测试、web测试-怎么测?

    app测试 前言 看过许多大神对APP测试的理解,博主总结了一下我们平时测试APP应该注意的一些测试点并结合大神的理解,总结出这篇文章. 一.测试周期 测试周期一般为两周,根据项目情况以及版本质量可适 ...

  2. 【测试工具】这些APP实用测试工具,不知道你就out了!

    本期,我将给大家介绍14款实用的测试工具,希望能够帮到大家!(建议收藏) UI自动化测试工具 1. uiautomator2 Github地址:https://github.com/openatx/u ...

  3. app测试与web测试的区别

    1.从功能测试的来讲的话,在流程和功能测试上是没有区别的.系统测试和一些细节可能会不一样. 那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app则是c/ ...

  4. APP测试中的头疼脑热:测试人员如何驱动开发做好自测

    如今,随着移动互联网的浪潮越翻越涌,移动APP测试工作的现状已经成了那本"家家难念"的经.不管公司大小,不管测试哪种类型的APP,让广泛测试者苦不堪言的就属重复性最多,测试工作量最 ...

  5. Web压力测试和手机App测试

    总纲:认识测试关系和目标http://blog.csdn.net/superxgl/article/details/27189631 一.web测试和App服务端测试 软件安装 建议安装loadrun ...

  6. web与app测试的区别

    单纯从功能测试的层面上来讲的话,APP 测试.web 测试 在流程和功能测试上是没有区别的. 系统架构方面: web项目,一般都是b/s架构,基于浏览器的 app项目,则是c/s的,必须要有客户端,用 ...

  7. 圆满完成平安科技Web安全与App应用安全测试培训!

    圆满完成平安科技Web安全与App应用安全测试培训!

  8. Web测试与APP测试有哪些异同?

    1.相同点 不管是传统行业的web测试,还是新兴的手机APP测试,都离不开测试的基础知识,即是不管怎么变,测试的原理依然会融入在这两者当中. 1)设计测试用例时,依然都是依据边界值分析法.等价类划分等 ...

  9. web测试和app测试的区别

    功能上: 功能上没有什么区别,都是用同样的方法来写用例(等效.边界值...) 架构上: web是B/S架构(浏览器和服务器)代码更新后数据会同步,可以保证所有客户一致 app是C/S架构(客户端和服务 ...

随机推荐

  1. proxy是什么

    普通的因特网访问是一个典型的客户机与服务器结构:用户利用计算机上的客户端程序,如浏览器发出请求,远端WWW服务器程序响应请求并提供相应的数据.而Proxy处于客户机与服务器之间,对于服务器来说,Pro ...

  2. 从LocalDateTime序列化探讨全局一致性序列化

    日拱一卒无有尽,功不唐捐终入海. 楔子 前两周发了三篇SpringSecurity和一篇征文,这周打算写点简单有用易上手的文章,换换脑子,休息一下. 今天要写的是这篇:从LocalDateTime序列 ...

  3. 分布式ID生成服务,真的有必要搞一个

    目录 阐述背景 Leaf snowflake 模式介绍 Leaf segment 模式介绍 Leaf 改造支持RPC 阐述背景 不吹嘘,不夸张,项目中用到ID生成的场景确实挺多.比如业务要做幂等的时候 ...

  4. django-rest-framework-源码解析003-视图家族和路由(APIView/GenericAPIView/mixins/generics/viewsets)

    视图家族 视图家族在rest_framework源码位置和学习曲线为: rest_framework.views: 基本视图(APIView) rest_framework.generics: 工具视 ...

  5. JavaFX让UI更美观-CSS样式

    相对于Swing来说,JavaFX在UI上改善了很多,不仅可以通过FXML来排版布局界面,同时也可以通过CSS样式表来美化UI. 其实在开发JavaFX应用的时候,可以将FXML看做是HTML,这样跟 ...

  6. JAVA实现BP神经网络算法

    工作中需要预测一个过程的时间,就想到了使用BP神经网络来进行预测. 简介 BP神经网络(Back Propagation Neural Network)是一种基于BP算法的人工神经网络,其使用BP算法 ...

  7. Biopython 第三方库示例

    Biopython 第三方库示例 https://biopython-cn.readthedocs.io/zh_CN/latest/

  8. 线程_apply堵塞式

    ''' 创建三个进程,让三个进程分别执行功能,关闭进程 Pool 创建 ,apply执行 , close,join 关闭进程 ''' from multiprocessing import Pool ...

  9. 自学java,学多久可以自己找到工作?

    先以肯定的语气说明一下自学Java,多久可以找到工作:   按照目前Java的体系来说,Java的几个重点在于Javase.数据库.Spring全家桶系列的框架.而其他的在Java体系之内,会基础的操 ...

  10. PHP array_rand() 函数

    实例 返回一个包含随机键名的数组: <?php $a=array("red","green","blue","yellow& ...