51Testing软件测试网Df7A4`Lq1H-dT@ 前言51Testing软件测试网5@-Lq(o?Z5u
51Testing软件测试网O\ vG4vy;D 无线产品线的很多模块基本上都属于前端类型,前端模块一般具有如下几个特征:接收处理用户请求,本身不维护数据,从后端模块获取数据,进行build页面后展示给用户。51Testing软件测试网 Ujy&OAyD0R
51Testing软件测试网%w;kh"TO2N
S!OvZs
从图示可以看到,针对前端测试,我们需要根据手机特性,针对用户和前端的输入输出进行针对性的测试。
A7nlt
U'L0 问题及解决方法分析51Testing软件测试网z%SIZ`
目前wap前端测试采用的方法有如下几个:
KH'g+b[0 对于build页面的系统逻辑部分的case,采用自动化方式进行测试51Testing软件测试网'vc4v MW#Ck
对于页面展示部分的case,使用能够支持wml和xhtml页面的pc浏览器(比如opera或者安装了wmlbrowser的firefox)进行测试51Testing软件测试网9L3W
lZSw9Y
对于前端页面的重大调整,比如尝试使用新的页面元素,采用真机或手机模拟器的方式进行,但主要偏重于验证是否由于新元素的使用引入了兼容性问题
R0P8_6dO%~PU$p0
由于真机测试的效率得不到很好的保证,且手机浏览器比pc浏览器种类纷繁复杂(包括手机内置浏览器及第三方开发的浏览器),难以依靠几款手机或浏览器进
行覆盖,因而在wap前端测试中采用真机进行的比较少。测试中比较多的采用pc浏览器进行模拟,而手机和pc浏览器之间又存在较多的差异性,给wap的前
端测试带来了诸多bad case甚至bug。
MDw+G&SO0 从输入角度51Testing软件测试网.^6@y4B!T
由于手机提交请求的差异性,比如部分手机提交不符合http协议规范的header,给无线的前端测试带来了诸多的问题,典型示例如下:
5`*Aoi0xX0 发现由于某些手机提上来有key没value的header字段而使webserver抛出异常而处理失败。51Testing软件测试网[`
Q`6AwS!J
前端架构升级项目,web server上线过程中发现部分手机发送的get请求携带content-length=0,web server对于此类不符合http协议规范的请求直接抛弃而拒绝服务。51Testing软件测试网%V"BHil
为了避免以后再出现类似问题,我们考虑的解决办法是:收集并分析用户请求的差异性,形成case库及参考文档,供以后测试参考。
+~5U!zC!GG`0 从输出角度51Testing软件测试网"Xt7c+?s6w
目前wap页面包括wml和xhtml两个版本,由于手机浏览器的兼容性没有pc浏览器的兼容性好,经常可能会由于一些小的语法错误导致页面无法正常显示,典型示例如下:51Testing软件测试网f5xx&[2fc~H
页面中url参数的&符未转义51Testing软件测试网j4P)w"W1x/WtH
由于手误,在从xhtml版本修改为wml版本时带入了不支持的标签
Om j1EWX
?r0 这种问题往往用pc浏览器比如ff不容易发现,而依靠真机或者手机模拟器测试又不够高效。针对这一问题,我们的解决思路如下:首先保证我们的wap页面是符合规范的;在我们符合规范的情况下尽可能的收集bad case并予以规避。
7L&V.QpGI,tS0 改进实践51Testing软件测试网.cS;f#Z/Z{9ok![
T!L
手机header数据仓库
8d/^x cAay0 整个数据仓库形成思路如下:
ia!_x @0 步骤1:首先不依赖于web server,编写socket server,通过日志得到请求
q.Z\R1]'T5Z4uJV0 步骤2:其次分析header的key类型,给出key集合,并对出现概率较高的header查阅资料给出解释,形成参考文档51Testing软件测试网/Ly7X^&gN
U(^a
步骤3:再次针对每种key,工具生成value取值集合,并结合含义给出等价类划分,从而形成case库
)U"`B8r/su4Kc+[Y0 针对步骤2,收集用户header,脚本分析得到不同的header集合。对于数量过万的header集合,即在用户请求中出现的比例大于1/1000的header,整理并形成参考文档。
8}:~T%z j b)M"B5T0 针对步骤3,对于步骤2整理出来的100中key,分析线上引流数据生成其value取值,去重后得到的value全集,见附录。对于其中重要的key,划分其等价类集合。51Testing软件测试网0v2y]9N-oN N#e
wap页面规范性校验库51Testing软件测试网+P m ]IE
如何保证wap页面是符合规范的,就需要按照标准wml和xhtml的规范进行页面检查。wap页面规范性校验库包括如下两个步骤:51Testing软件测试网IaY7pJ.D$[,O
步骤1:总结目前使用的页面标准规范,形成参考文档51Testing软件测试网0b];cj1O
J7u4L
步骤2:封装开源xml校验库,集成到自动化框架中51Testing软件测试网~~U&S*nM0C&Z
针对步骤1,目前wap页面包括wml和xhtml版本,wml基本上都是”wml_1.1.xml”,xhtml基本上都是”xhtml-mobile10.zip”,整理其相应的规范内容见下表。
NPO'en ]*f0x0 针对步骤2,调研目前开源的xml语法校验工具,比如http://validator.w3.org/,将开源的校验库封装成工具,且集成到自动化框架中,方便的进行调用,提高测试效率和覆盖率。目前实现为基于java语言,采用dom4j开发了wml&xhtml语法校验库,根据页面申明的dtd进行检查。之所以采用dom4j主要因为其是非常优秀的Java XML API。51Testing软件测试网`oHR([&U-m-a
另外由于wise页面采用的dtd规范基本一致,例如wml基本上都是”wml_1.1.xml”,xhtml基本上都是”xhtml-
mobile10.zip”,因而采用dtd本地保存的方法,加快执行速度。封装到wise-test后,使用非常简单,case中只需调用
check_validation(url),即可实现对指定url的语法检查。在升级项目中,对该工具进行了实践检验,基本上每个页面的自动化case
都进行了语法检查,发现了在两个wml页面引入xhtml标签导致的页面解析失败问题。
^UrLE2Bh M0 (全文完)
/d4_`A[aY
_8d-J0