说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Web应用程序完全测试指南

HTML文档下载 WORD文档下载 PDF文档下载
大量的优质应用逐渐提升了用户的品味,也降低了用户的容忍度,如果你的Web应用无法使用户满意,那么很快会有其他应用来代替。这要求开发者从各方面对其进行测试,以便让用户在使用过程中不会出现各种各样的问题。

随着Web技术和移动互联网的发展,越来越多的应用被迁移到了云端,这也使得用户可以随时随地使用它们。目前大量的优质应用,逐渐提升了用户的品味,也降低了用户的容忍度,如果你的Web应用无法使用户满意,那么很快就会有其他的应用来代替。

对于开发者来说,建立良好的客户口碑才是最有意义的事情。在完成了Web应用的设计和开发工作后,并不意味着你就可以直接发布了,你还需要从各方面来对其进行测试,以便让用户在使用过程中,不会出现各种各样的问题,比如性能、使用体验、安全问题等等。


那么对于Web应用来说,该测试哪些方面,该如何测试呢?来看看作者 Abhimanyu Ghoshal给出的这些建议。

一、首先应该测试什么?

当测试Web应用的时候,首先要明确你的应用要用来做什么,比如帮助用户编辑照片、发送票据、联系朋友或跟踪社交媒介等。你通常需要着眼于这四大领域:

1.  功能性测试

几乎所有的用户都期望自己所使用的Web应用功能准确、迅速、一致。这就意味着开发者必须精益求精,帮助用户实现某种形式上的结果。下面是一些需要全面测试的常见的功能元素:

  • 表单:无论是反馈调查、创建任务计划,还是订阅新闻,都需要用到表单。你需要检查提交操作是否正常,是否能够提交连接并提交到你的数据中,所有字段是否能够接收输入的内容。
  • 文件操作和计算:这其中涉及图像和文档的上传、编辑、计算功能和正确的输出值。首先,要确保你能想象得到会有多少用户会使用你的应用,并尽可能地针对他们进行调节。另外,要考虑一下如何使你的App更有效地计算并显示出结果,给用户提供一个更加流畅的用户体验。
  • 搜索:如果你的应用允许用户搜索内容、文档或文件,那么就要保证你的搜索引擎能够索引这些信息,并定期更新,以便能够让用户实现快速查找,并根据查找条件快速显示相关结果。
  • 媒体播放组件:测试音频、视频、动画和互动媒体播放组件(如游戏和图形工具)的时候,这些组件应该像预期的功能效果一样,在加载和运行的时候不能影响(暂停或减缓)其他应用的运行。
  • 脚本和类库:确保你的脚本(比如图像显示或Ajax页面加载)在各种浏览器之间是相互兼容的,因为不同的用户可能会使用不同的浏览器访问你的应用,同时你可以测量不同浏览器的加载时间来进行性能优化。如果你的脚本只能和某些浏览器相互兼容,那么就要确保应用中的其他组件有更好的性能,这样所有的用户就能得到最好的应用体验。

最后,就是要全面检查其他组件的功能,包括提示系统、用户配置文件和管理仪表板等。

2.  用户界面和可用性测试

你的Web应用不但要像加满油的机器一样运行,还要能够为所有的用户提供一个高质量的前端体验。为了达到这个目标,你还需要考虑你的用户可能会遇到的所有的视觉和文本元素方面的问题,在Web应用发布之前,尽可能地测试这些元素,以确保它们正确而有效地显示。


  • 导航:主页面上的导航链接以及返回主页面的链接都应该明显的突出出来,并指向正确的目标页面。
  • 可访问性:尽最大可能的确保你的Web应用易于操作、使用,哪怕是对那些有视力障碍或行为障碍的人来说,简易的使用步骤是最受欢迎的。W3C有一篇文章 《Web Content Accessibility Guidelines》能够帮助你很好的定义这一点,并指出了如何让你的Web应用在广大用户群里成为“用户友好型”的应用。
  • 跨浏览器测试:用户很有可能会从多种浏览器和操作系统中访问你的站点,不要让你的应用在不同的环境下无法显示同样的效果,所以你需要尽可能多地测试这些浏览器和操作系统组合,以确保你的Web应用能够按照计划运行,为更广泛的用户提供一致的体验。
  • 错误消息和警告信息:在很多情况下,你的Web应用在某种程度上一定会崩溃,但这不是你的错。你所要做的就是:当用户遇到例如404页或无法成功上传资料的问题的时候,要确保应用程序中显示的消息是描述性的、对用户来说对解决问题是很有帮助的。
  • 帮助和文档:并不是所有的用户在使用你的Web应用时都能感觉很顺畅,有些用户在刚开始的几次可能需要帮助;而其他人即使是很熟悉这款产品,也可能在使用该过程中会遇到一些问题。这时候你需要做的事是运行你的应用,检查文档,确保在任何模块或页面中都有渠道让用户快速获得帮助信息。
  • 布局:测试你的Web应用以确保它能够在尽可能多的浏览器和不同分辨率的屏幕中正确、一致地显示。

你还可以继续检查一下所有的动画和交互操作(例如拖放特性和模态窗口)、字体和字形(尤其是Web字体)。当然,还有前端性能(页面渲染速度、图片和脚本加载时间)等。

3.  安全性测试


大多数Web应用都会从用户那里获取并储存数据,包括用户的个人信息、计费信息和工作/个人文件——这些数据都是用户在信任你的应用安全性的基础上才会输入的,所以你的Web应用应该做到下面这几点:

  • 对私人数据进行加密
  • 在授予访问权限之前坚持进行身份验证,并对数据访问进行限制
  • 确保数据完整性,尊重用户的要求

黑客可以在任何时间任何地方攻击你的应用,但是,如果你能熟悉Web应用漏洞的种类以及黑客常用手段的话,那这也是一个很好的避免被攻击的好方法。攻击Web站点和应用的方法通常包括:

  • 跨站脚本:当一个网站被以诱骗的方式接受了恶意代码,它就会向用户传播这个恶意代码。
  • SQL注入:如果黑客通过一个用户输入漏洞运行一段SQL命令,就可能导致用户数据遭到损坏或被窃。这些情况通常发生的原因是:Web应用允许在SQL命令或系统命令中使用特殊元素。
  • DDoS(分布式拒绝服务)攻击:当一个Web应用无法呈现给用户的时候,通常它会向服务器发出大量请求,会逐渐拖慢服务器并导致最终无法响应。

另外就是一定要对常见的、容易引起安全漏洞的编程错误进行测试,它们可能会让你的Web应用存在潜在的危险。这些常见的编程错误包括:缺少认证检查、使用硬编码凭证、没有加密敏感数据、没有锁定Web服务器目录访问。

除了对上面所述的内容进行测试以外,你还可以寻求正义的安全专家的帮助,或者是寻找一些专门针对安全测试的自动化工具。

4.  加载测试

当你的Web应用的用户人数从10个增加到100个的时候,速度肯定是会慢下来的。另外,你还可能会发现,在某一天、某一月或者是某一个时刻,流量会剧增,这有可能是因为你的优惠政策吸引了病毒,或者是你的App出现在了某著名刊物上了,引来了众多的用户。

在加载测试环节,需要测试你的应用和服务器环境,以确保在不管有多少用户登录的情况下产品都能够顺利运行。大多数高质量的Web主机都提供了实时的、大范围的问题解决方案,所以在购买主机的时候一定要货比三家。

二、如何测试你的应用

测试是构建Web项目不可分割的一部分,你需要通过一个系统化的方法来最大化有限时间和资源的使用。下面所列举的就是测试一个典型的Web应用所涉及到的步骤。

1. 设定目标

在大多数情况下,测试是一个有时限的检验过程,尤其是当Web应用准备发行的时候,这也就是为什么要考虑哪些功能需要优先测试。例如,如果你正在构建一个允许用户创建在线商店的App,你可能会优先测试支付网关连接这一功能,之后才会测试文本对齐问题。

目标优先不仅可以帮助你确保你的应用的主要功能完备,还可以让你在正确的方向上为整个开发团队制定清晰的计划流程表。

2. 定义流程和使用案例

在开始测试Web应用之前,为你和你的团队制定一个合理的流程非常重要。先收集所有可用的文档,和你的测试人员分享一下观点。接下来,设想多个用户在使用你的应用时可能会遇到的场景,比如应用在使用过程中崩溃了该怎么办。

一定要设置一个bug跟踪工具,测试人员可以用它来报告问题,开发人员和设计人员可以用它来识别和修复bug。

3. 设定一个测试环境

在测试你的Web应用之前,要将它部署在跟上线后的环境一致的服务器上,这样才能测试出各种真实使用情况下的问题。

有些问题在本地服务器上是测试不出来的。例如,在一个地图Web应用上,地图中大量的SVG图像可能需要很长时间的加载过程,如果移动用户使用你的应用,会导致他陷入困境,无法获知前进的路线。

4. 真实的单元测试

Flow项目(一个致力于在线任务管理和协作的应用)的QA专家Jeremy Petter表示:

在大多数的Web应用测试过程中,困难是难以想象的,有可能要花一个星期的时间进行测试。不过也有捷径,那就是将整个App分解成可管理的几个块进行测试。
在Flow项目中我使用一个列表来标记每个用户在应用中进行交互的位置,以及它的一般形式和功能。因为这是一个模块化列表,你可以添加或删除一些项目,或者对在开发过程中发生变化的项目进行标注。


5. 验证你的代码

为了提供一个清洁、无错的用户体验,你应该对代码进行验证,并确保它是建立在Web标准基础之上的。这样做不仅能增加跨浏览器兼容性,而且还能提升Web应用的性能。

6. 加载测试和性能调优

测试你的Web应用和它的运行环境是否能经得起巨大的流量和激增的带宽需求,并寻找可能会导致App性能问题的瓶颈。同时,你也可以考虑使用一些网上服务来监控用户流量、服务器利用率和因代码引起的问题,对App进行一些相应的微调,以提高App的速度和效率。

7. 安全性测试

最后,测试你的Web应用以确保它能够对抗得了黑客的恶意攻击。从基本的应用可用性和正常运行时间开始进行测试,直到用户数据的完整性测试结束为止。

三、对于测试的两个小建议

测试过程中,首先要考虑把用户放在第一位,在测试之前要彻底想清楚用户会怎么使用这个Web应用。设身处境的把自己放在用户的角度上思考一下,这会对制定切合实际的开发设计场景很有帮助。

Jeremy Petter对测试人员的建议是:

测试是注重细节的工作,需要高度集中注意力。而且最富有成效的测试过程发生在第一个小时或者是刚开始的时候,所以,在测试的时候最好是按照规定的时间开始/关闭项目,以便测试人员的注意力和效率达到最大化。

原文: A comprehensive guide to testing your Web app(编译薛梁)

Operation InVersion:拯救了LinkedIn的大修项目 五步走战略——Avocado在最初几周内迅速扩大30倍 NoSQL产品测评:Cassandra、MongoDB、Couchbase和Aerospike 谷歌眼镜开箱评测:比想象更精致 Pinterest谈实战经验:如何在两年内实现零到数百亿的月访问 初创公司Instart Logic:专为电子出版商和网站站长解决“痛点” 未来即卖芯片又卖服务!Intel收购软件厂商Mashery 继MSN之后,微软又开始整合Skype与Lync服务 阿里将推AMOS智能机 斥资10亿鼓励开发App AMPLab开发重构的Hadoop版本Tachyon:吞吐量要比HDFS高300多倍 一名理科生的创业路 十大界面原型与布局工具 Google产品经理Kenneth Norton:如何与工程师共事 如何创建自适应系统来增强用户体验 Jolla下月展示首款Sailfish手机 将重点发展中国区 海外1GB大容量游戏,国内渠道如何分发? 真正的能源大户是WiFi网络 数据中心只是“伪军” CloudFlare创始人传奇人生:7岁编程,法学博士,获哈佛商学院最高荣誉 2013云计算深入实践 jQuery 2.0发布 不再支持IE 6/7/8 Google再发力,更新Dart M4! 【多图】鼠标、光驱等13个即将消失的PC技术 直击OpenStack美国峰会:分享五大经验收获 Project Savanna:让Hadoop运行在OpenStack之上 看Go桌面技术副总,如何解读Facebook Home 增长最快的游戏公司Supercell 你学得会? 移动周报:为什么我们出不了IT神童? AWS、VMware和OpenStack谁是赢家? 消息称苹果正在寻找新任CEO取代库克 请别人云亦云 PC仍然重要且活得很好 比预想晚几年!IBM x86服务器或终将卖给联想 大家认为考研考进其他学校(且跨专业)的可能性有多大 显示图片 数据库搜索的一个怪问题 共享上网问题!急~!!!! 句柄和指针有什么区别吗? 大虾快进来,帮帮兄弟们!!!再现等待!高分!! 请问C++Builder的程序中能不能使用*.mdb类型的数据库? 帮帮忙!!个位大哥 请问用java编程能实现数据采集的程序并进行传输(即c/s模式)吗? 请问什么命令找开一个窗体的? 请问:如何从文件中获取icon并得到HBITMAP句柄? 如何在客户端打开一个word文件 MVP是个什么概念???? linux启动不了,Bringup loopback interface时出错,请问是什么原因? 帮帮忙!! 我海军一艘潜艇失事 70名官兵不幸全部遇难!! 明天朋友结婚,征集整人的法子 是谁删除了我贴?? 而且没有跟我说一声!!! 白天工作,晚上溜狗,爽呀!比大暑天喝了冰镇雪碧还爽! 我的jsp服务器是iis+TOMCAT+win2000pro 不知怎的每次用不了多久就显示出 网页无法显示 目前访问该 Web 站点的用户过多,我只是自已用怎么 终于有星了,高兴,散分(第一次散分,请斑竹手下留情) 我的刚装的2000进入启动界面时,进度条读到2/3时就蓝屏了! 请问在运行时向ActiveX控件中添加ActiveX控件的方法是什么? 高手请进:如何在WinNT以上系统进行BIOS读取! 毕业设计的问题,请各位大哥帮小弟一个忙 备份与恢复 数据备份与恢复 我用win2k,下载了php4.3.1,extension_dir是c:\php\ext 可是里面没有php_gd.dll,怎么办,到哪里可以down一个补上? 帮我一下:解决中文问题 新手问题:怎么在用ATL COM WIZARD已生成的dll加入MFC 请问如何删除系统? warton给大家散分来了! 求助,请问哪儿提供的域名空间最好? 新手上路,VB中用ODBC连接ACCESS 关于ORACLE中(多)表的备份和恢复问题 MM``狂给分^*^ 找人一同研究JUnit对于数据库的测试架构 怎样在程序中动态生成数据库(内存库)?求救高手 请问,怎样用本机作web服务器? 这样的夜晚 想起一些故人.... 各位的jbuilder是用什么命令运行的 刚学者求问 python+CGI 如何获得客户端IP Win2000上, 对话框没能弹出到桌面顶层 在静态上下文中不能引用非静态变量? 有没有高手可以举例讲解一下self的各种用法? 一个很困惑的问题:文字处理软件中,字体大小改变时,字符的高度,宽度怎么变化? 移动硬盘在重装系统时忘记拔下来。结果给误删了,求助!没有格式化的! 怎样创建自己的 Cursor ? 请问一下 这个是什么意思 public Properties() { this(null)} 在SQL7中日志满了,如何清除日志. ?????????? 凡卡 以凡卡甜蜜的梦结束的妙处是什么 求一UFO电影,内容是这样的,前面忘了,女的是外星人,最后男的在田里造了一个麦田圈,然后飞碟就来了,把女的接走了.字打打完了,补充也是内容. 阿姨在超市里买了4千克苹果和5千克西瓜,共付出24.7元.已知西瓜的单价是苹果的二分之一 核舟记作者细致写人的外貌和动作有什么作用 如图,木椅木床等木家具上的联接木条的金属片叫做什么? Please go to there.Are you know the boy's name?Please take the CDs Miss Brown.这些句子哪错了 Are ______in the same class?A.you,he and I B.you,I and he哪位高手朋友能告诉我要选择A还是B,为什么 160万用英语怎么说1600000 用英语该怎么说呢? lf you get to there,please let me know 哪里错了 You and I are in the same school .are为什么不能用both 随便吃些什么  用英语怎么说? 有机皂是什么组成的?想知道是不是所有的有机皂都是纯有机物组成的 娱乐这个词语的意思是什么? very后面可不可以加ly(形容词)? 肥皂里的油怎么提炼?3Q 娱乐这个词什么意思? cad,已知四边形四条边长度和面积,怎么画出四边形 肥皂为什么会气泡?3Q 娱乐这个词的意思是什么 四边形四条边长度一样 面积一样吗?四边形是不规则的或者平形的.四条边长度确定,面积确定吗?四条边的长度确认,就是四条边的长度是确定的,角度变化.例如四边形四条边150,86,87,153这个四边 质量为0.025kg的质点,受力F=ti的作用,式中t为时间,t=0时该质点以v=2j的速度通过坐标原点,则该质点任意时刻的位置矢量是~~ I do not like these jeans.Could you show me another one?错在哪里 已知四条边能不能算四边形面积 (1/2)物理:质量为0.25kg的质点,受力F=ti(SI)的作用,当t=0时,该质点以v=2jm/s的速度通过原点,则该...(1/2)物理:质量为0.25kg的质点,受力F=ti(SI)的作用,当t=0时,该质点以v=2jm/s的速度通过原点,则该质 I do not like these trousers. Can you show me( )A、one anotherB、another oneC、any other oneD、any others请各位把原因也写上,谢谢 麦田圈到底是外星人所为还是人为炒作? 质量m=2kg的质点,在f=7i-6j作用下,从坐标原点静止开始运动,则前2s内f力做功为?,第2s末的功率为?大学物理积分 very一词的用法 为什么直接在名词前我看到一个句子 the very house 这个very在译文中没翻译出来,在这有什么作用 麦田圈的存在是人为还是外星人所为? 如何计算圆台体的体积… 求有关古诗词的题目 麦田圈是怎麽一回事,这究竟是不是外星人所为还是磁场呢? 圆台的表面积怎么算阿?上面小;下面大;的圆管的表面积的计算公式! I'm busy these days.I have____to do .A.so many B.too many C.too much D.very much 请问:不规则四边形的四个边的长度已知,不知道各个角的角度,怎么样求该四边形的面积? 为什么有专门给孩子用的有机皂?想知道为什么有机皂是专门给孩子用 一道简单英语题求可填的词和分析句子结构(第3题,第4题) 不规则四边形面积但四条边的长度知道,角度不知, 为什么孩子特别喜欢有机皂呢? I'd give you most of it because you have been so good to me all these 将物重为20N的物体静止在粗糙的水平地面上,物体所受的摩擦力为 ▲ N;当用15N的水平推力恰能使将物重为20N的物体静止在粗糙的水平地面上,物体所受的摩擦力为 ▲ N;当用15N的水平推力恰 你们的孩子喜欢有机皂还是无机皂?大家的孩子比较喜欢有机皂一点还是无机皂一点 1.翻译:你的朋友比你要外向的多吗?Is your friend ___ ___ ___than you2.我的父母更严肃 my parents are ___ ___ 1一个圆柱的体积是1.8立方厘米,把它削成一个最大的圆锥体,应削去()立方厘米2一个圆柱的体积是234立方厘米,与它等低等高的圆锥体积是()立方厘米3一个圆柱和一个圆锥,它们的底面积和 圆台的体积,表面积(简单点)加上意思 妈妈买了二分之一千克苹果,也就是买了50%千克苹果. 我也十分想要《经典常考公文写作与处理试题集萃》,大哥可不可以给我也发一下, 圆台的表面积和体积的程序圆台的上底面半径r,下底面半径R,高h.求圆台的表面积和体积,写出程序. Bon Jovi的Have a nice day.MP3格式,放空间里用的. 如图所示,在梯形ABCD中,AB⊥AC,AB=CD,∠B=60°,AD=7,BC=14,求梯形ABCD的周长 请问怎么来选择有机皂的呢?想知道一般来说有机皂是怎么去选择的 1.His mother look young.(改错) 有个节目叫:比手划脚,就是:一个人在做动作,然后让别人来猜出这是那个成语或是词语.寻找可以用来做节目的词语 电场强度为E方向与x轴正方向成135°现有一个电荷量为q质量为m的重力不计的负离子从原点O以初速度v0射入电场,v0与x轴正方向成45°求离子通过x轴的坐标及在该处的速率 Peter doesn't look ___ his mother at all.填介词 这个诗词该定个什么题目,千里名炀 万里齐聚 望店奇观上有客房 下设美食 中夹美容另俱桑拿 层次分明 装饰豪华可与碧海为一拼 须常来 缓精神之压 品美食之肴 此地如此之雅引无数高朋竟 bamboo有没有复数 核舟记是谁写的 I have a tomato怎么变单数 落回原点速度是为什么是-vo 俄印蒙三国总理同日访华 中国周边外交美国与沙特进入公开紧张状态 多重分歧儿子被男生表白妈慌了 专家:应尊重孩奥巴马参观学校旁听课程 揶揄国会议员英国公务员薪酬制度注重个人能力且具等英国公务员薪酬制度注重个人能力且具等安倍称亚洲国家都担心中国 日本应领导国际晚班车:美国与沙特进入公开紧张状阿富汗士兵与北约部队26日发生武装冲英国公务员薪酬制度注重个人能力且具等中国首次成功研发H7N9禽流感病毒疫世界主要城市10月27日天气预报俄总理说中国是俄非常重要和可靠的战略美国与沙特进入公开紧张状态 多重分歧美国与沙特进入公开紧张状态 多重分歧伊朗处死16名反政府组织囚犯 回应边西班牙华商遭警察勒索殴打 寻求律师援奥巴马参观学校旁听课程 揶揄国会议员冯小刚:春晚我打算娱乐大众,每天想如冯小刚否认说过由着性子办春晚:我没傻央视马年春晚时长缩减至4小时 明星没环保公交运行 市民免费试乘中国应对经济减速具备强大“减震力”院士称号本应很纯粹(析院士制度改革 共同参观和平共处五项原则发表60周年30条线路运行时间大幅缩短人大修法:禁止航空器在军事禁区低空飞资源型经济转型的突破路径(干部说干事都是奖金惹的祸(风云直击)非走自主创新的道路不可(观点)城乡大病保险试点全面启动垃圾焚烧厂,如何与民为邻(政策聚焦·内地7月起事业单位打破终身制 改为合学点哲学,洞察大势(人民观点)图片报道中国民生发展论坛召开天堂动物园里中国日理性预期“以房养老”(纵横)靠自己,生活如瓜甜果香(100个人的群体和谐要“向内用力”扎紧“救命钱”的篱笆(纵横)欧盟 企业砸重金“公关”官员(深度观
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘