Web一般指的是互联网应用系统,好比税务电子化征管档案系统、金融数据平台、餐饮商家管理后台等等,其实质是C/S的程序。web
C是Client——客户端,S是Server——服务器。sql
Web中的客户端通常指的是Browser——浏览器,也就是B/S。数据库
Web系统有三层结构 == 表示层 + 业务层 + 数据层。设计模式
MVC软件设计模式也是三层 == 模型 + 视图 + 控制器。浏览器
它们的对应关系以下,不彻底准确,简单意会意会便可,安全
测试的一个重要思路是,了解被测对象的架构,Web系统典型架构如图所示,服务器
这个图很重要,多看几秒!想一想这些问题,网络
我测试覆盖的是哪些地方?架构
有哪些环节是漏掉的?app
浏览器从请求到响应,这个过程是怎样一个链路?
Web测试,不只仅是页面的点点点。
面对这样复杂的系统,如何保障质量,使系统健康的、长期的、稳定的运行,是测试的难点。
业务复杂度自己就是难点,并且这是测试核心中的核心。
安全、性能的评估,也是一个棘手的难点。
网站用户的能力,包括浏览器、操做系统、设备、网络带宽均可能是良莠不齐。
网络中断,或弱网状况下,网站的表现。
网站自己的应用日志、系统资源、冷热数据。
引入的第三方程序的质量,虽然能够直接用,但仍需作黑盒测试。
国际化差别,如语言、时差、货币兑换。
你要考虑的不是一个点,也不是一个面,而是一个总体。
表示层的测试对象包括了,
简而言之就是,系统的外观和感受。
更专业具体点,就是总体审美、字体、连接跳转、图形分辨率和大小、色彩、拼写检查、文字语法和风格、光标位置、选中默认按钮、交互操做体验友好、商业特定术语和风格、确认框、浏览器版本、操做系统配置等。
表示层的测试主要以人工为主,部分测试也能够经过工具完成,如无效连接检测。
业务层包括内部业务和外部服务,内部业务和外部服务都须要通过测试。
内部业务就是实实在在的业务,每一个公司的业务都有差别。
业务测试是贯穿于测试周期自始始终的。
最开始测试考虑的是业务,测试结束考虑的也仍是业务。
业务层测试是用到测试用例设计方法最多的,包括等价类划分、边界值、断定表、因果分析、场景法等。
同时也须要作性能测试,考察响应时间、吞吐率等性能指标。
绝不夸张的说,无业务,不测试!
数据层主要干的事就是读写数据。
数据层的数据既包括系统自产的,也包括从用户收集来的数据。
数据是存放在数据库服务器里边的,包括RDBMS、NoSQL。
数据模型定义了数据层接口和数据存储方式。
数据能够直接使用,但每每是通过了ETL对数据进行加工。
数据层的测试是有一些门槛的,但一些隐藏的bug就藏在这一层。
首先须要测试的是数据存储的正确,其次须要测试冗余数据的清理,还有数据状态的变化。
数据库的性能,sql的耗时,数据量大小,数据冷热。
数据库的数据类型,长度、精度、字符集、日期时间格式、时区等。
数据库的安全,数据加密和安全性。
还有数据库的鲁棒性,故障处理,备份恢复能力,最大化MTBF,最小化MTTR。
App测试仍是从架构入手,先看看App的典型的无线运营商网络架构,
移动网络,是App区别于Web应用的重要差别。
移动网络的通讯协议并非基于IP的,而一般是一种基于射频的协议。
如,
不少运营商都使用某种代码转换器或Web代理来进行移动设备与互联网的通讯。可是由于竞争的关系,运营商通常不会披露这些细节。他们可能会“偷偷”干这些事,
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』
版权申明:本文为博主原创文章,转载请保留原文连接及做者。