无论您是为了个人用途、还是为了客户需求、或是根据组织公司的任务,去开发与构建一个Web应用,安全、稳定且不“暗藏”bug都是必须具备的一些基本特征。毫不夸张地说,那些应用自带的bug或缺陷,不但会破坏其可用性与用户体验,而且会影响到您作为开发人员的声誉。在本文中,我们将逐条提供并讨论一份测试要点的基本建议,帮助您在生产环境中尽量减少产品bug的出现。
移动兼容性测试
现如今,由于大多数人都经常使用移动设备来浏览与访问各类网站或应用,因此为了扩大目标受众的规模,您的产品有必要能够无缝地兼容各种移动智能设备,并能做到实时响应。您可以从如下方面入手:
- 通过使用Google Analytics(译者注:网站分析或网站流量跟踪工具。请参见https://marketingplatform.google.com/about/analytics/)并进行搜索,建立一张可能运行到的移动平台与设备列表。
- 当然,您也可以在电脑的浏览器中,使用移动设备的模拟器,来测试Web应用的运行效果。
- 鉴于模拟器可能会经常出现各种奇怪的错误,因此如果项目预算充沛的话,您还可以为自己的测试团队提供一些,基于不同操作系统类型的移动设备,以便他们能够在相对真实的环境内开展全面的测试。
- 特别需要注意的是:应用界面的显示大小是否合适。不应出现需要用户手动横向滑动,才能看到超出屏幕之外的内容。并且要确保文字字体的可读性、按钮位置的友好可触性、以及图像与内容占比的合理性。
跨浏览器测试
众所周知,现在已经不是IE一统浏览器“江湖”的时代了。几乎每天都有浏览器的新秀从世界各个角落冒出来。不过,我们也时常能够听到诸如:某个Web应用虽然能够完美地运行在Google Chrome上,却在Opera、Safari、以及其他内核的浏览器上“跑”不起来的案例。
- 显然,我们针对每一种浏览器开展兼容性测试是不可能的,因此我们需要针对的是那些主要浏览器,以及在那些采用了特殊内核的浏览器中,测试自己的应用运行效果。
- 根据DevOps的思想,您应该在开发的早期阶段,就引入跨浏览器的兼容性测试工具。也就是说,一旦设计准备就绪,我们便可以立即启动单元测试了。
- 当然,在整个开发阶段完毕之后,请不要忘了执行各种事先设计好的测试用例。
辅助功能测试
有着软件开发经验的读者一定知道:在启用Web应用之前,W3C早就为我们制定和准备好了各类组织或个人必须遵守的一系列准则和标准。正如我们在Windows操作系统中经常能看到的辅助显示功能那样,W3C规定了:每个人(包括残疾人)都享有访问与使用目标应用的权力。因此,我们需要做好如下方面的测试工作:
- 如果您的Web应用想走国际化路线的话,不要忽视了针对是否符合Section 508(译者注:美国劳工复健法的改进,强调电子信息技术要考虑到残障人士的使用)、ADA(Americans with Disabilities Act)和其他法案准则的测试。
- 运行缩放测试,以确保在网站上的图像、及字体在放大的情况下依然可读。
- 执行屏幕阅读器(screen reader)的场景测试,以确保视力不佳的人可以通过使用屏幕阅读器来浏览页面。
- 您的Web应用需要能够支持用户在仅使用键盘的情况下,顺利地实现导航与互动操作。
- 应当在重要的流媒体内容中加入字幕,以确保听障人士能够通过观看,来理解音频与视频所传达的内容。
通用HTML和CSS检查
- 通过使用W3C的标记验证(Markup Validation,这是万维网联盟的官方验证工具),检查您的HTML或XHTML代码是否存在任何语法错误。
- 您还可以使用诸如HTML Tidy和Google Webmaster等工具,来检索代码中各种重复的元标记(meta tags)、损坏的链接、缺少的标题、以及其他类型的错误。
- 使用由W3C所提供的CSS验证服务(Validation Service),来查找CSS中的任何错误、以及违规之处。
- 在完成了代码检查之后,您可以“祭出”CSS Compressor之类的工具。它们能够将CSS文件的整体代码缩减到一行之中。这对于包含有数千行CSS的大页面来说,可以有效地缩短加载的时间。
网站登录的安全测试
如果您的网站涉及到了在线购物、银行业务、以及任何需要对用户数据进行保密的服务,那么安全测试是必不可少的。具体请参见如下方面:
- 请确保具有密码输入错误次数限制,以及在必要时锁定用户帐户的安全机制。
- 确保在用户登录的环节中,能够通过OTP(One-Time Password)验证、以及验证码(CAPTCHA)的技术,防御攻击者使用自动化登录工具,对Web应用进行入侵。
- 检查Cookie和缓存是否启用了加密服务。
- 在用户从网站中注销、或是按下了后退按钮之后,确保浏览器的会话能够及时过期与失效。
应用程序的性能测试
除了可用性和安全性之外,您的Web应用还必须能经得起大流量、高负载的考验。因此,为了避免在访问量激增的情况下,Web应用不会出现崩溃的局面,您应当做好如下测试:
- 通过执行压力测试,以了解网站及应用在高负载时的真实表现状况。
- 通过模拟多个用户的登录会话、以及产生并发性的访问请求,以确定应用能正常运行并提供服务。
- 采取抗压(压力)测试,找到Web应用的工作负载临界点。
- 在低网速和高延迟的网络环境中,计算并检测应用的加载时间。
真实用户的Beta测试
正所谓“是骡子是马,拉出来溜溜”,我们最后的测试阶段,就是将应用发布到平台上,让最终用户进行真实环境的体验与测试。其中值得注意的是:
- 由于用户倾向于从他们的角度来发现目标应用的缺陷与漏洞,因此Beta测试是非常重要的。
- 测试团队往往习惯于按照一系列的规则执行单元测试,而真实用户则可能直接“开箱即用(out of the box)”,甚至采取“不按常理出牌”的使用操作方式,因此各种被忽略的问题更容易被他们所暴露出来。
总结
除了上述提到的测试要点之外,我们还需要通过文档级别的测试,以检查Web应用是否遵循了所有必需的设计规范、以及客户所要求的业务逻辑。因此,您的Web应用只有“高分”通过了本文所提到的各种测试案例、并能协同开发人员修复了所有发现的bug,才能够被顺利地部署到生产环境之中,供各类用户全面使用。
原文标题:27 Tips for Finding Bugs on Your Website ,作者:Arnab Roy