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. 关于JS深拷贝和浅拷贝

    最近在前端开发中遇到一些问题,就是数组中的某个对象或某个对象的值改变之后,在不刷新页面的时候需要重新渲染值时,页面显示的还是原来的数据.比如: data{ A:[{id:1,num:1},{id:2, ...

  2. Linux 通过源代码安装和编译程序

    Linux源代码安装在平常工作学习中经常用到,总结下步骤↓↓↓ 第一步:#mount /dev/cdrom/mnt (挂载一个软盘) 第二步:手动安装httpd-2.4.25.tar.gz 依赖关系包 ...

  3. Java多线程原理+基础知识(超级超级详细)+(并发与并行)+(进程与线程)1

    Java多线程 我们先来了解两个概念!!!! 1.什么是并发与并行 2.什么是进程与线程 1.什么是并发与并行 1.1并行:两个事情在同一时刻发生 1.2并发:两个事情在同一时间段内发生 并发与并行的 ...

  4. OSCP Learning Notes - Exploit(5)

    Java Applet Attacks Download virtual machines from the following website: https://developer.microsof ...

  5. Java历史[史上最详细的阐述了Java发展的历史过程]

    Java历史 学习Java语言之前,我觉得大家应该是从头开始,对吧?不管你之前是学过还是没学过,都和学习某一个知识一样,从头开始去了解它,然后到这个深入的掌握,到最后你可能理解并且灵活的运用.所以它肯 ...

  6. vue使用select间相互绑定

    让这两个select相互绑定,让roleOptions选取值后,worklist弹出得是roleOptions值 <el-select v-model="postForm.projec ...

  7. 题解 洛谷 P3825 【[NOI2017]游戏】

    从题面中四元组\((i,h_i,j,h_j)\)限制选择车子型号,不难想到这题要用\(2-SAT\)解决. 考虑转化为\(2-SAT\)模型,发现除地图\(x\)外,其他地图都只有两种车子型号可以参加 ...

  8. 基于python实现查询ip地址来源

    接口调用方法是在url后面直接加上IP地址. url = 'http://freeapi.ipip.net/218.192.3.42' #中文免费 url2 = 'http://ip-api.com/ ...

  9. 图书馆管理系统程序+全套开发文档(系统计划书,系统使用说明,测试报告,UML分析与设计,工作记录)

    图书馆管理系统程序+全套开发文档(系统计划书,系统使用说明,测试报告,UML分析与设计,工作记录): https://download.csdn.net/download/qq_39932172/11 ...

  10. Python(set/list/dict/tuple)

    set集合:set是一个无序,不重复元素的集合.可嵌套列表,字典(可以for循环或者迭代的对象). ######差集: a={11,22} b={22,33} c=a.difference(b) #a ...