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

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(编译薛梁)

TBatchMove用法-Delphi资料 TMemo的真正插入字符-Delphi资料 TREEVIEW的使用-Delphi资料 TreeView在电信综合统计管理系统中的应用-Delphi资料 VB6.0动态加载ActiveX控件漫谈-Delphi资料 捕捉来自 Thread 的异常-Delphi资料 定制Speedbar-Delphi资料 动态产生构件并相应事件-Delphi资料 对Borland可视部件的一处改进-Delphi资料 控件使用技巧-Delphi资料 改变VCL的行为--一个使用可视化元件的实例-Delphi资料 具有不同字体的列表框-Delphi资料 快速大量地更改控件内容-Delphi资料 快速动态创建MenuItem-Delphi资料 利用Delphi 5中调用Excel 97 利用Delphi的Tbitmap控件抓取屏幕图象 利用delphi美化你的菜单 面向组件的系统开发方法-Delphi资料 强大的树型编程控件TeeTree1.01-Delphi资料 确定MEMO控件中的当前行和列-Delphi资料 让字体左、右对齐-Delphi资料 如何给TListBox加上水平的滚动条?-Delphi资料 如何快速选择一个组件的父亲-Delphi资料 如何用Delphi编写自己的可视化控件 如何用VB创建控件-Delphi资料 生成程序组和项-Delphi资料 实现超级链接-Delphi资料 实战Delphi数据网格色彩特效 使dbgrid的某几笔资料变色-Delphi资料 树形图(Treeview)的使用概述-Delphi资料 透明FORM-Delphi资料 需要什么权限才能在active directory里添加用户??(实际上是想添加email帐号),谢谢各位 test 请问在winXP里该如何实现如下功能呢? 再问一次,怎么在mandrake下设显示器的刷新率!怎么想给分都送不出去! 当用c++编程时,能不能不用回收内存?100分 用VC处理XML文档时遇到的一些细微而重要的问题 大家能不能给我给我点 我有一个关于注册表的问题? delphi中要想定义一个整个工程文件中可以访问的变量怎样做才好?(说者有分) 本人泡MM精华之作,大家快看!! 25分散尽! 如何使用paradox.net? 类的定义与实现细节是否要放在不同文件 各位:我想当斑竹,位兄弟是否同意?:) 关于shell和key事件 为什么我的问题总是无人回答?给高分100!VC和VB下好用的控件在delphi下不好用!是不是dll的问题? pascal 为什么没有介绍在pIIII下汇编的书? paradox数据库的操作问题 text字段如何转换成image字段?? 东日论坛新开张 关于异常的问题,请各位大哥帮帮忙!(50分) 我有很多数字,如何以固定的间隔和行宽在打印机完整地上输出? 学过C++,想学java,难吗?多久能上手? 如何设置系统的日期,时间? 我的网卡的驱动一直装不上? 在下请问,在游戏中实现人物的移动有哪几种方法? 关于地址栏的显示问题 老大们来看看! 今天高兴,散分,先进者自有大大的好处 对不起网管我没看清楚发错了地方请您帮忙转到java区里吧谢谢你了! my oracle8.1.7 on redhat7.2进不去,请高手指教 关于打印机不能够正常打印问题 关于XP的时间问题? 哪位知道在VC下通过敲击键盘模拟钢琴键发音——通过声卡在音箱中实时发出声音 本人泡MM精华之作,大家快看!! 互联网上控件的安全性问题 SDK的疑惑? gluLookAt()函数的用法 什么是类如何来理解应用它!!!看书看了不是很理解 第一次来csdn 高兴,散分,第一个进入者得! 怎样从ACCESS数据库中读出jpeg,gif,bmp...图片? web的验证如何与数据仓库验证一致?请高手看看 我用JBUILDER作的JPUPUPMEUN show(jpane,getx,gety) 的显示位置老在鼠标下一大截,在JPANE的左上角击鼠标右键出现多余显示 请问如何作封面? 国内有自由软件开发组织吗? 如何永久的挂载非linux分区? 高手请进! 在线急等!明天要交任务了! 关于异常的问题,请各位大哥帮帮忙!(50分) VFP报表问题 help!!! 镁粉中混进少量铝粉,将铝粉除去,可选取用的试剂是什么? 配置1000毫升 0.1mol/L盐酸溶液,12mol/L的多少毫升重新来一道配置1000毫升 0.1mol/L盐酸溶液,应取浓盐酸12mol/L的多少毫升 尿素里有减性物质吗 打药时放尿素水有副作用吗 除去镁粉中的少量铝粉,可选用的试剂时.A盐酸B稀硫酸C水D氢氧化钠溶液为什么选D 镁能与冷水反应生成Mg(OH)2 2AL+2H2O+2NAOH=2NaAlO2+3H2↑根据除杂 不增和不减 这增了氢氧化镁沉淀,减少了镁单质为 0.05%氢氧化钠溶液的配制是取110克氢氧化钠溶于100毫升的蒸馏水中然后吸取上层清液2.7毫升溶于1000毫升水 碳化铝是不是化学品 0.1mol的钠,氢氧化钠,过氧化钠,氧化钠分别溶解在100ml水中,则它们的溶质质量分数大小顺序是怎样的?应该是氢氧化钠小于钠小于氧化钠等于过氧化钠 可是为啥氧化钠等于过氧化钠?应该过氧化 偏铝酸根与碳酸根为什么可以反应, 查尿素溶化成水喷洒大葱有好处吗 求化学高手 相同物质的量 【 0.1mol】的,钠,氧化钠,过氧化钠,氢氧化钠溶于水 比较溶质的质量分数大小求详细解释 偏铝酸根和碳酸根哪个更易与氢离子反应 铝呈暗灰色需添加什么化学品 瓶子里得冰融化了,为什么瓶子外会有水?瓶子外的水从什么地方来的? 偏铝酸根为什么能跟碳酸根发生双水解反应? 尿素有什么作用 瓶子里的冰融化后瓶子外面和瓶子下面的水是哪来的 就像冰冻的可乐,从冰箱里拿出来后可乐瓶子上会出现一些水,这些水是哪来的! 7g反物质能否毁灭地球质能转换公式 :E=mc^2我不晓得地球毁灭需要多少能量,查资料显示,核弹的能量以吨tnt衡量1吨TNT炸药爆炸释放的能量约为4183兆焦,假设4k话说美国的核弹可以毁灭地球 什么东西可以把铝变重比如什么东西可以渗金铝里 把铝 变重了 水和冰装到一个瓶子里那它是混合物吗 如果把地球变成反物质再与其他物质湮灭产生的能量能毁灭宇宙吗 什么东西可以让黄金局部变色,变成和铝一样的颜色? 尿素与硝酸反应吗?谢谢! 在瓶子里密封好了把水变成冰再把冰变成水 成分上有什么改变? 冰醋酸是什么 尿素会和硝酸反应吗?硝酸大概在5mol/L 如何证实偏铝酸根结合氢离子能力比碳酸根强供选试剂:氢氧化钠溶液 氯化铝溶液 硫酸铜溶液 PH试纸 碳酸氢钠溶液 氯化铁溶液 工业尿素和农业尿素怎么区分,请详细说明下 盐酸和硝酸反应生成什么?方程式怎么写? 二胺和尿素的区别二胺和尿素都是氮肥,但二胺和尿素使用有什么区别,效果有什么不同呢?铵态氮与硝态氮 求用尿素+饲料育肥小尾寒羊的最佳配方?(每月能长多少斤?) 除去镁粉中的少量铝粉为什么要用氢氧化钠溶液为什么不和镁反应 尿素和二胺各有什么作用 老柿子树生长,需要多少斤尿素 NaOH溶液除去镁粉中混有的少量铝粉怎么去除的?反应式我知道,可是NAOH不会和镁反映? 买了一个500毫升的塑料喝水瓶子 用了三天了 我发现瓶子一遇到高温的水的话买了一个500毫升的塑料喝水瓶子 用了三天了 我发现瓶子一遇到高温的水的话 瓶子外表就会发出一个怪味道 请问 HCHO和银铵溶液反应式是什么 在做盐酸与氢氧化钠中和反应实验时稀盐酸用胶头滴管滴加稀盐酸目的是什么 装有水的塑料瓶子为什么烧不坏? 13.5g金属铝与1L 2mol61L-1 NaOH溶液充分反应,生成的气体在标准状况下的体积为多少 水在化冰之后为什么瓶子会扁了我的意思是说,昨天我把未喝完的冰水放入冰箱的保鲜室(温度为2摄氏度)中,在放入之前还特意扭紧了瓶盖.可是今天再拿出来喝时,发现冰已经大部分化了,同 正常人尿液中的葡萄糖用肥林试剂检测生成砖红色沉淀吗 100ml.1mol•L的氯化铝溶液中加入一定体积2mol.L的NaOH得到3.9克沉淀求加入的NaOH的体积 在做盐酸和氢氧化钠中和反应的实验时,通常不需要用到如题A酚酞试液B试管C滴管D量筒麻烦说明下理由 嗯,用什么试剂检验葡萄糖 尿素,对植物生长的作用是什么,该如何使用? 做氢氧化钠与盐酸的中和反应实验为什么要用指示剂 实验室冰醋酸和食用冰醋酸有什么区别, 尿素对植物生长 起到的主要的作用是什么?该怎么使用呢? 做氢氧化钠与盐酸的中和反应实验为什么要用玻璃棒不断搅拌 冰醋酸可以食用吗 固体尿素能与水相容并喷撒在农作物的叶面上吗?喷撒花生和玉米 如可以应该怎么配比 在实验室里用盐酸和氢氧化钠溶液作用探究中和反应看不到现象有硫酸代替盐酸用氢氧化钾代替氢氧化钠实验前想氢氧化钠中加酚酞 硝酸铵(NH4NO3)中氮元素的质量分数是多少?多少克硝酸铵中含有70个氮元素?不好意思,打错了==!是70克 离子在方程式中的化合价 比如 银离子 他的化合价是+1吗?得失电子会改变 化合价吗?是不是 H+ 就是+1价 AL3+ 就是+3价? 在方程式中! 出去镁粉中的少量铝粉,可以选用的试剂是什么?如题 配置1000毫升0.1mol/L的盐酸需要盐酸多少毫升?如何计算? 尿素在水的作用下分解成什么? 氢弹的威力有多大?细致! 配置1000毫升 0.1mol/L盐酸溶液,应取浓盐酸12mol/L的多少毫升 什么化学品可以溶解铝(水溶解)我现在是有一个机器零件,上面有铝、铁、钢,现在是想用什么化学品把铝融化而不伤到铁跟钢
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘