[译]36 Days of Web Testing(六)
Day 30 Test in situ 真实场景下的测试
为什么?
我十分推崇现场测试,简单讲就是要在你的站点或应用真实使用的场景下进行测试。但随着人口增长,对于“真实场景”的定义变得愈发困难,因为人们可能在各种场景下使用产品。
如果你正在测试一个公共报亭软件,在拥挤,嘈杂,光线刺眼的公共环境,是否可以如预期的工作?在测试环境可能正常工作,但在户外街道上测试,和在测试环境的结果一样吗?你的移动APP在公交站点,深夜,下雨的时候都可以正常工作吗?
怎么做?
试着定义一些常见的“真实场景”,并在这些场景下测试。设计一系列场景是一个好主意。在这些场景中用户会发现自己真实使用的情景,例如“忙碌的办公室”,“吵闹繁忙的火车站”,“安静的房间”等。这些场景会帮助你理解在什么样的情况下,以及为什么使用你的产品。
我测试呼叫中心软件,没有比拜访一些最终用户(呼叫中心代理),看看他们是如何使用这些应用的更来得直接了。这可能会改变你对产品一些元素的看法。
我有一个朋友,他从事很酷的航海导航工具测试。如果可能,他会在海中的船上进行测试,没有什么可以替代这样的真实场景。
另一个朋友测试医疗设备,在模拟操作阶段发现设备导致噪声很大,血花飞溅。这样的体现,让他回到办公室后对整个产品有个全新的认识。
建议:
这样的角色扮演不单单设计专家,功能专家来做。这同样是一个很棒的主意,可以有助于产生一些测试点子。
链接:
In Situ on Wikipedia - http://en.wikipedia.org/wiki/In_situ
Blatant self-promotion link to Social Tester site - http://thesocialtester.co.uk/theres-method-in-the-madness/
Day 31 Print it out 打印出来
为什么?
如果你的站点有表单,应用提供其他使用者一些数据,例如收据,可访问的代码,确认码等,那么最好将打印这些数据作为你测试的一部分。
终端用户是会打印收据这些数据的,如果你发现你优雅的功能站点打印出来是如此槽糕,这将搞坏用户体验。
举个例子,当我收到了一个会议邀请的电子邀请函,我一般都会打印出来作为报销凭证的,如果惊讶的发现打印出来的格式很糟糕
怎么做?
点击打印,然后检查打印出来的。
建议:
大多数浏览器都提供了打印预览功能,通过打印预览就可以看出效果了,不必浪费纸了。
链接:
Insights in to how to make a print ready CSS - http://answers.oreilly.com/topic/1018-how-to-make-a-web-formprint- ready-with-css/
Day 32 Too many extensions 太多的扩展
为什么?
很多现代浏览器允许你添加附件组件、扩展,或插件,这些都可以增加浏览器的功能,允许你在浏览器中执行一些操作。
对一个测试而言,Firefox的主要扩展可能就是Firebug,通过Firebug可以查看客户端和服务器的网络交互,可以做一些很酷的页面检查,以及其他一些事情。
对于主浏览器,有成千上万中不同的扩展,我之前已经讨论过很多类似的扩展应用了。
然而,在测试的过程中,你所安装的这些应用也会和产品进行交互,扩展本身的问题可能导致你花费大量时间来调查一个对用户并不是十分重要的bug
怎么做?
我最近就遇到过一个问题,我的一个扩展将一段Javascript脚本给禁用掉了,虽然并没有配置禁用JavaScript脚本。
这个bug在其他浏览器上都无法重现。通过分析所有执行过的代码我们得出的结论是,这可能是Firefox的扩展引起的问题。我在另一个虚拟机上安装了同样版本的Firefox,但是没有安装扩展,结果是正常的,所以原因找到了。
因为我安装有20+的扩展来协助我测试,所以我每次移除两个扩展,以此来定位导致问题的扩展究竟是哪个。
当我移除掉最后两个扩展时,问题解决了。接着,我又以相反的顺序将那些移除的扩展安装起来,结果当安装完前两个扩展时,问题又出现了。我定位到了导致问题的扩展,并做了一番探究。这是这个扩展的已知问题,因为扩展本身也是JavaScript实现的。
扩展很强大,但也有可能会妨碍正常功能。
建议:
准备一个测试机(虚拟机,或实体机都可以),安装绝对干净的(没有扩展,或不必要的插件)的浏览器,如果你发现了很诡异的问题,这时候可以在两套环境下比较一下,看是不是浏览器扩展引起的问题。
链接:
How to manage add-ons across multiple machines - http://lifehacker.com/272113/sync-your-firefoxextensions-and-profiles-across-computers
Day 33 Refresh during page loads 在页面载入的过程中刷新
为什么?
如果你测试的应用或站点存在特定的状态,或则事务更新,举例来讲,当你点击一个按钮,然后尝试刷新页面时,这时候会进入不同的状态。
你会惊讶的发现在这个地方存在很多潜在的问题。当一个页面在载入,或发送、接收新数据时,刷新操作也会可能会获取老的状态数据。这时候通过刷新获取到的数据可能不是最新的数据。
怎么做?
在执行一些操作(如提交表单)的同时,点击“刷新”按钮。依据这个模块的响应速度有多快,你可能会发现一些关于状态、数据、或则用户活动的问题。
Ps: 曾发现过,在提现时,输入短信校验码后,在提现成功页面,按F5刷新,会出现重复提现的问题。
建议:
找出你所使用的操作系统的快捷键,这样便可以更迅速的刷新
链接:
Windows shortcut keys - http://support.microsoft.com/kb/126449
MAC shortcut keys - http://support.apple.com/kb/HT1343
Linux shortcut keys - http://linux.about.com/od/linux101/l/blnewbie5_1.htm
Day 34 Check for SEO 搜索引擎优化
为什么 ?
在如今这个社交意识愈发强烈的社会,我们需要通过点击来进行销售和获取市场份额。获取点击并不是单单提供正确的内容,还得市场要知晓你的运营活动。这当然也包括,创建一个搜索引擎优化的网站,或设计。
“搜索引擎优化(SEO)是指通过一些‘自然的’,‘非付费的’,或算法的方式来提高网站在搜索引擎结果中的可见度”
基于上述考虑,我们就要做一些研究,看看究竟改做些什么,哪些不能做才能是有利于SEO(搜索引擎优化)。
市面上存在一些有用的指导,有一些好不帮助,还有一些帮助甚微。对于最佳方式提升SEO的,也有一些不同意见,甚至认为SEO究竟是否重要都有不同的意见。
站点的SEO另一个经常被忽视的作用就是,SEO的同时有利于站点的可访问性。看看下面一个有意思的对比:
http://www.slideshare.net/ConeTrees/seo-through-accessibility
怎么做?
我已经在下面列出了一些有用的链接,但是还是最好订阅一个内容靠谱的网站,保持与这个快速变化的领域时刻同步。
小建议
有很多浏览器插件提供SEO检测功能。
有用的链接
Marketing and Sales look at SEO -
http://www.promotionworld.com/articles/se/articles/Internet_Marketing_Strategy/SEO/071007EssentialGuide.html
SEO through accessibility - http://www.slideshare.net/ConeTrees/seo-through-accessibility
SEO at Wikipedia - http://en.wikipedia.org/wiki/SEO
Day 35 Five second test 五秒测试
为什么?
当人们访问你的站点时,通常会很快对这个站点做出一个判断,也就是第一印象,接下来去哪,他们是否喜欢这个设计(或内容)。
有个很棒的服务叫做“五秒测试”(http://fivesecondtest.com/),提供这个服务的网站上有一些用户和测试人员,他们会访问你的站点,回答一些关于你的网站的问题,并给你一些反馈。
这可以帮助你发现当用户访问你的站点时,他们的注意力会更关注那些内容。
“在仅仅5秒的访问时间后,看看一个人对于你的设计究竟能回忆起什么,这可以确认你的信息是否有效的传递给用户。” – From Five Second Test Website
怎么做?
只需注册一下,上传你网站的线框图,或则mocks,接着等待反馈
建议:
尽早获得用户的反馈可以第一时间确保你专注在做正确的应用。经常看到,像这种有用的测试做的太晚,一直于最后代码的变更已经很难了,或则说太多时间投入到一个很烂的设计中。
链接:
Five Second Test - http://fivesecondtest.com/
24 Usability Tools - http://www.usefulusability.com/24-usability-testing-tools/
Day36 Throttle It 限流
为什么?
在测试应用时,测试环境的网络链接是很快的,这就意味着我们的产品是在很好的网络连接和网速的情况下测试的。
但终端用户并不是都能通过很快的网络连接来访问我们的站点的。
不要设想你的用户的网络环境是很流畅的,这一点很重要。要面对冷酷的现实。过度的设想会导致设计和实现不能满足用户,或则现场的场景。
怎么办?
市场上有很多工具,但我发现Charles Proxy是最有效的限流工具。
在Charles Proxy的界面上,有个很明显的“节流阀”按钮。允许你限制连接的网络速度,就像用户的网速一样。
介绍怎样限制网站的网速:
http://www.charlesproxy.com/documentation/proxying/throttling/
通过使用Charles Proxy可以测试不同网络连接速度下,和网站交互或连接时的反应。
Useful Hint
在产品说明书中通常会有需要的最小配置,可以从最小配置开始测试。
Useful Links
Charles Proxy - http://www.charlesproxy.com/
[译]36 Days of Web Testing(六)的更多相关文章
- [译]36 Days of Web Testing(一)
[前言]最近负责的一次迭代发布中,一个小需求涉及前端JS改动,在测试这个需求的过程中忽略了浏览器兼容性测试,导致了一个线上bug.恶补下web测试,<36Days of web testing& ...
- [译]36 Days of Web Testing(五)
Day 23 禁用CSS Disable CSS 为什么 ? CSS,层叠样式表,是用来定义web页面布局和显示的机制.通过修改CSS样式,可以改变整个页面的外观. 但是有一些人,因为之前的选择或者 ...
- [译]36 Days of Web Testing(三)
Day 14: Automate the tedious Why ? 有些时候,web测试还是蛮单调乏味的,在开始测试前,你可能要必须跳转到一个特定的表单页面,或则为了得到一个特定的页面(或配置),你 ...
- [译]36 Days of Web Testing(二)
Day 7: Http 和 Https Why? 当在网络上传输一些私人,敏感信息时,应该采用加密的手段来保证这些信息在传输的过程中不被侦测到.Https协议正是这种实现机制. Https是一种广泛使 ...
- [译]36 Days of Web Testing(四)
Day 19: UX 用户体验 Why ? 最近UX变得越来越火,用户提现往往会直接联想到易用性和设计. 在我看来,UX不仅仅是这两点.UX, User Experience ,对我而言,不单单是产 ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
- How to choose between zombie.js and PhantomJS for automated web testing? [closed]
How to choose between zombie.js and PhantomJS for automated web testing? [closed] How to choose betw ...
- [译]介绍一下渐进式 Web App(即时加载) - Part 2
在上一篇,介绍一下渐进式 Web App(离线) - Part 1的文章中,我们讨论了典型的pwa应该是什么样子的并且同时也介绍了 server worker.到目前为止,我们已经缓存了应用壳.在 i ...
- web testing
web testing cypress https://www.cypress.io/ https://github.com/cypress-io/cypress https://docs.cypre ...
随机推荐
- JavaScript效果之选项卡
拼了命学习js,想把学到的Javascript效果,可以记在博客里,在记录过程中,加深理解. gogogo,第一个效果,选项卡. 一.选项卡效果的实现思路 选项卡效果的应用很广泛,几乎所有的网站都会用 ...
- 【转】Android仿QQ截图应用测试
使用过QQ的同学应该都用过QQ截图,Ctrl+Alt+A进入截图操作,通过拉伸,移动高亮区域的框体可以快速截取我们需要的图片.在android应用中,我们也经常需要截图操作,以下实现了一个类似QQ截图 ...
- 开源免费天气预报接口API以及全国全部地区代码!!(国家气象局提供)
国家气象局提供的天气预报接口 接口地址: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/data ...
- 移动測试技术保护源码!解码全球首款移动端白盒測试工具ThreadingTest (文章转自己主动点科技)
作者 智晓锋 - 2014/07/14 自从斯诺登曝光美监听丑闻事件之后,我国政府就将信息安全问题上升到了国家安全的高度.基于此.国内的一家创业公司推出了智能型Android真机白盒測试以及开发辅助类 ...
- 今天给大家分享一下Android中的资源与国际化的问题
摘要:该文章将向大家分享Android中的资源与国际化的问题. 今天给大家分享一下Android中的资源与国际化的问题,通常我们新建一个Android工程,目录结构如下图所示: 我们主要看一下layo ...
- 【bzoj1212】 [HNOI2004]L语言
题目描述 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章T是由若干小写字母构成.一个单词W也是由若干小写字母构成.一个字典D是若干个单词的 ...
- opencv多平台环境搭建及使用
windows平台: 一.安装opencv 下载地址:http://opencv.org/ 依据平台下载相应源码包 安装流程就是一个解压过程.不再赘述. 解压完,效果图: 源码树结构参看http:// ...
- Unity3D 获得GameObject组件的方法
Unity3D 获得GameObject组件的方法有几种,这里进行说明一下: 组件: 要获得这些组件,进行操作的话,绑定一个Movescipt 的C#组件,里面的获取方法为 void Update ( ...
- [C# 基础知识系列]专题四:事件揭秘
转自http://www.cnblogs.com/zhili/archive/2012/10/27/Event.html 引言: 前面几个专题对委托进行了详细的介绍的,然后我们在编写代码过程中经常会听 ...
- insert一句话实现插入一条数据并且返回这条数据的某列
insert into [table] output inserted.columnName values();