所谓的浏览器服务器端测试,也就是常说Browse/Server(B/S)架构测试。是刚踏入测试行业的小白们,最先接触的测试。例如,业务逻辑很简单的门户**,业务较复杂的MES系统等。针对这类B/S架构的应用,在进行功能、自动化、性能、安全上有哪些重点呢?

B/S架构功能测试

B/S架构的功能测试相对来说是比较简单的,因为受到浏览器限制,往往不会出现什么复杂的操作,核心内容就是点完input点button,点完button点Link。但是B/S架构的测试却比C/S架构还麻烦,麻烦在技术上而不是业务上,而对于这里应用的功能测试主要需要注意以下几点:

适配性

这里主要指的是针对浏览器的兼容性,无论是从HTML到HTML5,或者是基本JS到Jquery等库,再说CSS的各个版本及调用方式的不同,都会带来在不同浏览器(IE7891011,Firefox版本太多了,Chrome几个主要版本,什么360,百度,搜狗,腾讯等等)不同的体验和感受。

对于兼容性测试方面的内容,建议大家根据浏览器内核的不同,挑选有代表性的浏览器测试即可。当然,还有许多兼容性测试的辅助测试工具,自行百度,根据介绍挑选适合自己的就好。

易用性

B/S架构的易用性会比C/S更高,因为主要的操作都是通过鼠标左键来实现的,那么操作的距离,操作的步骤都是需要考虑的内容。虽然通过某些JS库或者Flex技术可以很好提供优秀的互动性,但右键的不支持和无法多层窗口,总是一个巨大的坑。除了鼠标以外,还有键盘结合鼠标的操作,也是易用性所要关注的部分。关于易用性,如果测试人员可以现实对用户的使用习惯进行调研,会对这部分的测试更有意义及针对性

功能

B/S架构的功能相对来说在业务上简单,在技术上难,由于客户端几乎无法实现业务的处理,所以所有的数据均要提交到服务器端来进行处理。对于这种情况验证的时候就比较强调以下两点:

1.是否能够正确的发送数据到服务器端口,这个对抓包和理解包结构有一定的要求,也是大多数新手做功能测试最缺乏的技术。

2.在服务器端处理返回的数据是否正确,同样也需要对抓包和包结构的理解有要求。

通过这两点技术的突破后,B/S架构的测试会突然显的非常的简单,这也是在集成测试章节中所提到过的接口测试。

在某些方面针对JavaScript的单元测试及动态调试也是功能测试中定位问题的一个有效手段。

在实际执行测试中,大家普遍会觉得功能测试就是点点界面,没有什么技术含量。即便是停留在界面级别的功能测试,也可以很具有技术含量。这种体现就来自我们的功能测试用例,也是显示测试人员能力的主要标准之一。有时100条测试用例的执行结果,和1000条测试用例的执行结果是一样的。甚至后者还不如前者。所以需要大家考虑一下,我们怎样把测试用例写好?我们怎样通过测试需求的提取及业务理解后,在不影响测试覆盖度的情况下,用最少的测试用例达到最优的效果。没有几年的黑盒测试经验,你无法做到。所以看似简单的事情,永远是其他复杂事物的基础。盖房子要把地基打好了,这是很重要的。

B/S架构自动化测试

B/S架构的自动化测试应该算是比较成熟了,一方面是由于HTML或者JS技术相对来说成熟和规范的多,另一方面是UI未必是最重要的测试角度。

通过DOM或者Xpath技术完成对对象的识别定位,框架即可准确的完成对元素的操作,这和JS本身的操作有很多类似之处。而如果不太在意UI部分,那么直接通过协议形式对服务器接口进行自动化测试,是更加高效的策略。

B/S架构的自动化测试在UI方面主要还是浏览器兼容性测试,如果在静态部分针对HTML、JS、CSS进行有效的兼容性规范验证,那么效率和质量会进一步提高。

随着测试技术的发展,曾经红遍一时的QTP也逐渐失去了部分市场,停留在UI层面的自动化也会被更好的测试策略所取代。对于.net支持优秀的Ranorex,对于浏览器兼容性测试的webdriver, 对于根据项目特色不同自行开发的自动化测试工具,这些都是未来发展的主流方向。需要我们不断学习,自学能力是小白们必备的基础。

B/S架构性能测试

B/S架构的性能测试是非常重要的也是相对来说比较简单的。一方面由于B/S架构无法评估客户端的数量,而且每一个用户对服务器的资源需求都要比C/S架构要高;另一方面B/S架构本质都是通过HTTP协议完成的,在报文结构和报文组织发送上非常的成熟。

在B/S架构中性能测试的复杂在于两点:

1.用户需求

所谓的用户需求就是多少用户以什么样的规律来访问系统,访问系统的那些业务,在这种情况下需要评估系统能够支撑多少用户的这类行为,并且确保上线出现同样负载时能够正常合理的响应用户请求。

这里对整个需求的把握、分析、引导都有较高的要求。网上有很多计算用户并发需求的公式,不得不说,大家不要迷恋公式,还是要从业务分析的角度去制定用户需求,这样才更具有实用性。

2.脚本业务

所谓的脚本业务也就是脚本中GET或者POST的Parameter是何含义,如何传输处理的。只有在理解了脚本业务后,才能正确的使用参数化、关联等脚本技术完成对用户行为的正确模拟,进一步帮助负载脚本正确的生成。对于脚本的调试等,大家可以通过对于接口的理解出发,这样能更有效的帮助大家彻底的理解,怎样做和为何这么做。

B/S架构主要是针对服务器端的性能测试,但是对于客户端Browse也会有一定的性能要求,这方面主要在页面渲染和资源大小、网络传输有关。

C/S架构安全测试

B/S架构的安全测试往往是重点,因为可以注入的点实在是太多了,可以看到OWASP的前几名都是和B/S架构有关系的。

无论是业务上的一些可能存在的时序或者注入,还是客户端的注入,都会带来十分可怕的结果,通过XSS完成Cookie窃取并且暴库的案例比比皆是。虽然有比较成熟的安全扫描工具可以帮助我们,但是并不代表就能够高枕无忧,这一块还是任重道远的。

BS软件测试初学者,BS软件测试要点总结!相关推荐

  1. 手机应用软件测试的思路与要点

    软件测试主要针对于移动互联网行业,那么APP等相关软件的测试工作是非常多的,尤其对于产品的手机项目(应用软件),主要是进行系统测试.针对手机应用软件的系统测试,通常从如下几个角度开展:功能测试,兼容性 ...

  2. 软件测试初学者精华(一)

    转自http://blog.csdn.net/gslcn/article/details/1611283 作者: life0 发表日期: 2006-08-04 09:56 文章属性: 转 1.测试新手 ...

  3. mysql 内部 临时表_MySQL内部临时表策略 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    1H#dGTog4r5J6H0通过对源码的跟踪和调试,以及参考MySQL官方文档,对MySQL内部临时表使用策略进行整理,以便于更加深入的理解.#D4s,PXr9k_2S051Testing软件测试网 ...

  4. 杂项-职位-软件测试工程师:软件测试工程师

    ylbtech-杂项-职位-软件测试工程师:软件测试工程师 软件测试工程师(Software Testing Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有缺陷(Bug),测试 ...

  5. 深圳软件测试培训:软件测试的需求评审

    深圳软件测试培训:软件测试的需求评审 需求评审 1.需求阶段评审的角色和职责 一句话,根据具体情况选择相关人员,充当相关角色,履行相关职责,大家也别吐槽我,现实就是这样,别去记忆这些死规则了 2.好的 ...

  6. 软件测试教学案例,软件测试案例教程

    <软件测试案例教程>是2011年1月1日机械工业出版社出版的图书.本书以案例驱动,讲述了软件测试的相关概念.方法和技能.[1] 书    名 软件测试案例教程 出版社 机械工业出版社 出版 ...

  7. 27岁还能从事软件测试吗?软件测试这个行业能干到多少岁?

    其实,根据市场就业调查数据显示,目前超过三十五岁的测试工程师确实没有年轻人好找工作,甚至有些公司直接明文规定 "要求年纪 35-40 岁以下".市场产生如此残酷的现象的原因大致有如 ...

  8. (转)软件测试的分类软件测试生命周期

    软件测试的分类&软件测试生命周期 软件测试的分类: 按测试执行阶段:单元测试.集成测试.系统测试.验收测试.(正式验收测试,Alpha 测试-内侧,Beta 测试-公测) 按测试技术分类:黑盒 ...

  9. 南柯服务器压力,性能测试的数据解释及分析 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    顾名思义,测试服务(服务,服务,其他网络应用服务,本地服务)的性能如何?如何衡量性能?最表面的无非就是看能支撑多少个用户同时使用该服务.且关注用户使用过程中的用户体验. U.^*A+Mb6{*z@0T ...

最新文章

  1. 号召,有兴趣做博客园自己的网络游戏的请举手..
  2. chrome中F12工具说明
  3. 送书福利 | 哈工大SCIR倾力打造NLP新书,详解预训练语言模型
  4. Shell脚本之sed的使用
  5. Entity Framework Core 2.0 新特性
  6. Android开发小技巧之商品属性筛选与商品筛选
  7. 使用LiteOS Studio图形化查看LiteOS在STM32上运行的奥秘
  8. 2061:【例1.2】梯形面积【入门题】
  9. AcWing 4244. 牛的比赛(双向建图BFS)
  10. 【配送路径规划】基于matlab遗传算法求解单配送中心多客户多车辆最短路径规划问题【含Matlab源码 1602期】
  11. 10个Python实战编程项目,有趣又好玩
  12. VBScriptVBS(二)变量、数组变量的应用与理解
  13. java excel 打不开_Java使用POI生成Excel文件后打不开的问题
  14. 360 vs QQ 有意思的大战
  15. 新猿木子李:0基础学python培训教程 Python操作Excel之修改数据
  16. 处理未支付订单30分钟后取消方案分析
  17. 诺基亚N95手机使用技巧
  18. LightGBM整理
  19. linux 笔记本调整屏幕亮度的方法
  20. vue v-if 加key值的作用

热门文章

  1. 动态生成的html代码
  2. 联想仅仅依靠不断的重组是不够的
  3. POWERLINK 工业实时以太网协议简介
  4. “AV终结者”清除方法
  5. 前端常用的工具方法,常用js方法
  6. 求面积 (坐标叉积公式+凹多边形面积-坐标公式)
  7. Quartus调用FIFO或者是RAM、ROM出现的问题
  8. vnx 服务器映射,主机到VNX系统的常见注册方式
  9. Python构建企业微信智能应答机器人(含服务器部署)
  10. 【java基础】java的反射机制