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』
版权申明:本文为博主原创文章,转载请保留原文链接及作者。