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

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

VB如何让Window不接受键盘输入及Mouse Click VB如何让程序拥有多个热键? VB如何让用户自行输入方程式,并计算其结果? VB如何使程序不在Ctrl+Alt+Del弹出的对话框内? VB如何使用 VB 编写自动反安装的程序? VB如何用VB建立快捷方式 VB如何用VB在桌面建立快捷方式 VB如何在 VB 中控制 Modem 行为? VB如何在VB中判断Windows9x的运行模式 VB如何在Visual Basic中实现异步执行程序 VB如何在开机时自动更换墙纸? 使回车具有 Tab 的功能-VB资料 输入时,自动转换成小写? -VB资料 显示多媒体信息 -VB资料 也谈Windows 下的自动存盘 -VB资料 一个小巧精致的CPU监视器 -VB资料 应用VB4.0实现工业控制的实时曲线和历史曲线 应用程序中实现关机功能-VB资料 萤幕抓取与萤幕保护程式 -VB资料 用VB5.0创建Windows快捷方式 用VB5.0收集键盘和鼠标信息 用VBA限制非注册软件使用时间 用VB编程检测当前电池使用情况 用VB编写定时关闭计算机的程序 用VB编写键盘拦截程序 用VB函数轻松访问系统注册表 用VB设计一个定时闹钟程序 用VB实现拖放功能 在VB中启动控制面板 在VB中异步执行程序 在Visual Basic中终止Windows 95 求助: 怎样获得系统当前可用的字体? 如何打印FormView? 如果你是VC高手,对COM有深入了解,欢迎! 我今天看了我英语过级的公布成绩,我得了一个天险数字60。5分,请问。。。。。? 谁有linux下的mod_webapp.so DW UltraDev里rs.source="select * from stu where banci=request.QueryString("banci")这样是不是不行? Microsoft JDK nmake生成的EXE文件反编译问题!!! 各位大虾:请问谁能告诉我哪里能找到win xp home edition plus???如果能让我找到,送1000分 请问如何将PaintBox.Canvas的当前内容保存至内存, Linux下c语言程序该怎样运行? 请问:vb.net中oracle数据库能否支持blob格式? .ceb文件如何打开? 什么地方能够找到《Exploring Requiremengs:Quality Before Design》这本书? 关于制作一个classwizard的设计思路,欢迎大家讨论 weblogic server console: java.lang.NullpointerException 如何得到本局域网上所有主机的ip? 请问: 如果在网上可以通过网页上传某些文件到服务器空间上,并显示一些关于上传文件的信息~ 一段检测光软驱的程序,大家帮忙除Bug! 为何会死机? 高分放送,木马病毒求救! tomcat下的分布怎么做? 各位使用手机的老鸟,2000左右的手机什么牌子的好 喜欢硬件朋友请进来看看。 如何复原被Linux改写的引导扇区呢 请问各位大虾,怎样将c++同数据库结合起来 大哥......你继续看!!!??? 喜欢硬件朋友请进来看看。 在哪里调用方法?是在cpp文件还是在.h文件里? 初学者关于显示的问题? depunf朋友,您好,stringgrid那里有delete啊?敬请赐教! formula one报表打印问题 d3d头文件的错误? 执行了insert语句之后我怎么得到刚刚插入的id值啊?快快,在线等待 为什么找不到服务器? 如何禁止用户调整窗体大小?但最大化、最小化和关闭按钮仍在。 各位: 如何让系统认识带小数的字体如:7.5? 没有经验,请有实际经验的朋友回答:) 请问pb8.0+sqlserver2000怎么配置数据源!(sqlserver2000与asa7.0连接数据库时有什么不一样!) 光盘能装超过700MB的数据吗? 考程序员要考的内容? 100分呀,哪里有钱能的C++电子书下载? 同学的一台电脑,放mp3有声音,但是放mtv却没有了声音,是怎么回事? 在线等待,我的excel密码忘了,长度大约为6个到8个,请大家帮帮忙 请问,我在使用Excel制作表格的时候,有一项需要输入身份证号码。可是填入18位身份证号码后,一换行,号码的后3位会自动变为000。请大家 请教如何处理JSP网页中的路径问题? SQL 中如何与用户交互? 如何把参数传到框架页中的子页(aspx页)? google怎么了?~我这几天一直都不能访问,我重装了系统,不知道是不是这个原因。谢谢了^_^ About RowMoved 40分,只要一个类似XP菜单的插件,请帮忙? 请教高手gcc/g++、dev c++是干什么的? 松柏的特点? 教育人类认为,教育具有文化的多种功能,其中本质的功能是什么? A加油站标价5元每升,B加油站标价5元每千克,由计算说明应选择哪里加油?那啥、因为时间紧急.快点把、先不赏.答完再赏. 人体当中有多少种生物酶? 草履虫的营养方式是什么? 填写从古至今信息传递方式的主要发展历程,并写出自己的感受古代:近代:现代:当代:通过以上信息传递方式的比较,我的感受是: 什么是酵素?酵素对人体有什么好吃? 关于草履虫的生物论文,600字左右 从古至今信息传递方式的变化. 世界上寿命最长的动物是什么 描述大自然中一种动物或植物的感人故事 今天之内 举例说明信息传递的发展给我们生活带来的影响 河豚鱼」哪个部位是有毒的?jpt 加油站如何使用计量桶测量发油误差? 那种细胞置于水中会破裂?a 洋葱表皮 b 人的口腔上皮细胞c 草履虫 d 黄瓜果肉细胞. 历史上有什么人物具有松柏的品质 河豚的什么部位有毒? 加油站计算油高我就知道在收银机上查出量,然后查表做油高,我会查表,具体一点 柏树的精神是什么 人,动物,植物与大自然的关系是怎么样的?6年级寒假作业上的急! 有没有关于人们救助大自然中的动物或植物的感人故事最好短一点. 松柏具有什么精神? 河豚那个部位有毒 种是生物分类的( ),)和自然( )的产物.同一种类的各个个体具有( )的遗传性状. 松柏有什么品质? 河豚的哪个部位有毒 生物遗传计算题:二倍体结球甘蓝的叶子有紫色和绿色两种,该性状的遗传与两对等位基因有关.二倍体结球甘蓝的叶子有紫色和绿色两种,该性状的遗传与两对等位基因有关.为探究二倍体结球 植物细胞的叶绿体内哪种色素进行能量转化?简要说明一下 河豚的毒在哪些部位 月亮上有没有动物和植物? 河豚吃什么河豚鱼会吃其他的热带鱼吗? 为什么冬天的柏树是绿的? 月宫上有什么动物 河豚可以吃吗?对身体有什么危害吗? 为什么冬天的柏树是绿的?3Q 湿垃圾干垃圾每天产生量可以的话告诉我一个问题:湿垃圾和干垃圾的每天在你家产生的量是多少?(千克,暑假生活15页,一个星期哦!)我实在不好写,求求大家帮帮忙!格式如下:日期: 河豚鱼怎么吃啊?朋友送给我了一条河豚,现在还或者呢..炸着吃可以么? 青少年网络文明公约 月宫中有什么动物 河豚怎么吃 怎么计算空间站寿命?或者说发送到太空中的空间站是有哪些方面影响到它的寿命? 就女人会月金?有什么动物会吗 柏树的外形特征,作用是什么急 俄罗斯“和平号”空间站寿命15年 国际空间站工作寿命为15~20年 中国空间站? 铁矿采选行业 废水产生量怎么计算 柏树的外形特征 人体内氧气浓度最低的地方是 月亮对动物的影响求月亮对动物的种种影响,不管什么动物都可以……满月新月都行……TAT,拜托了亲们,妖在线等 请从哲学的角度看网络文化不用多,三四行字(约50字)就行. 关于和平号空间站的设计寿命,下列说法中哪一种是正确的 草履虫等单细胞生物是怎样繁殖下一代的? 柏树的特点有哪些 人体内氧浓度最大的是?A 肺泡里 B组织细胞里 C肺部毛细血管内 D 心脏内 应该是B 脱硫化学蝶阀 D71X-16C DN50 这型号中的字母个代表什么意思? 松柏特点松柏的特点,要有体会 蒙古包的 作用 材料 结构 和文化特征 草履虫常用什么方式繁殖 在我国青少年中发展积极向上的网络文化蕴含了哪些哲学思想 北京四合院的位置,作用,材料,结构,文化特征 急 明天要用啊 加油站不给日本车加油?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘