发布新日志

  • 用户体验测试方法

    2017-10-17 15:12:23

    传统的测试方法,只是为了验证功能、性能、兼容性、稳定性是否达到了产品的要求,其实测试人员在进行测试的过程中,同时也是第一个体验新功能的人,必须要对所测试的功能的路径、流程、闭环、易操作等方面做出一些分析,以改善产品的交互体验及优化设计。

    1. 产品闭环

    2.产品流程

    3.产品交互细节

    4.界面设计是否合理

    5.可能进行的路径是否合理

    6.对新用户探索新功能是否有引导

    7.该功能是否能够一次学会

    8.该功能的触发条件是否可知

  • 网站用户体验测试

    2017-10-17 14:56:38

    网站体验,指的是利用网络特性,为客户提供完善的网络体验,提高客户的满意度,从而与客户建立起紧密而持续的关系。

      网站体验的分类

      1、感官体验:呈现给用户视听上的体验,强调舒适性。

      2、交互体验:呈现给用户操作上的体验,强调易用/可用性。

      3、情感体验:呈现给用户心理上的体验,强调友好性。

      4、浏览体验:呈现给用户浏览上的体验,强调吸引性。

      5、信任体验:呈现给用户的信任体验,强调可靠性。

      网站体验的76个体验点

      一、感官体验:呈现给用户视听上的体验,强调舒适性。

      1. 设计风格:符合目标客户的审美习惯,并具有一定的引导性。

      网站在设计之前,必须明确目标客户群体,并针对目标客户的审美喜好,进行分析,从而确定网站的总体设计风格。

      2. 网站LOGO:确保logo的保护空间,确保品牌的清晰展示而又不占据过分空间。

      3. 页面速度:正常情况下,尽量确保页面在5秒内打开。如果是大 型门户网站,必须考虑南北互通问题,进行必要的压力测试。

      4. 页面布局:重点突出,主次分明,图文并茂。与企业的营销目标相结合,将目标客户最感兴趣的,最具有销售力的信息放置在最重要的位置。

      5. 页面色彩:与品牌整体形象相统一,主色调+辅助色不超过三种颜色。以恰当的色彩明度和亮度,确保浏览者的浏览舒适度。

      6. 动画效果:与主画面相协调,打开速度快,动画效果节奏适中,不干扰主画面浏览。

      7. 页面导航:导航条清晰明了、突出,层级分明。

      8. 页面大小:适合多数浏览器浏览(以15寸及17寸显示器为主)。

      9. 图片展示:比例协调、不变形,图片清晰。图片排列既不过于密集,也不会过于疏远。

      10. 图标使用:简洁、明了、易懂、准确,与页面整体风格统一。

      11. 广告位:避免干扰视线,广告图片符合整体风格,避免喧宾夺主。

      12. 背景音乐:与整体网站主题统一,文件要小,不能干扰阅读。要设置开关按钮及音量控制按钮。

      二、交互体验:呈现给用户操作上的体验,强调易用/可用性。

      13. 会员申请:介绍清晰的会员权责,并提示用户确认已阅读条款。

      14. 会员注册:流程清晰、简洁。待会员注册成功后,再详细完善资料。

      15. 表单填写:尽量采用下拉选择,需填写部分需注明要填写内容,并对必填字段作出限制。(如手机位数、邮编等等,避免无效信息)

      16. 表单提交:表单填写后需输入验证码,防止注水。提交成功后,应显示感谢提示。

      17. 按钮设置:对于交互性的按钮必须清晰突出,以确保用户可以清楚地点击。

      18. 点击提示:点击浏览过的信息颜色需要显示为不同的颜色,以区分于未阅读内容,避免重复阅读。

      19. 错误提示:若表单填写错误,应指明填写错误之处,并保存原有填写内容,减少重复工作。

      20. 在线问答:用户提问后后台要及时反馈,后台显示有新提问以确保回复及时。

      21. 意见反馈:当用户在使用中发生任何问题,都可随时提供反馈意见。

      22. 在线调查:为用户关注的问题设置调查,并显示调查结果,提高用户的参与度。

      23. 在线搜索:搜索提交后,显示清晰列表,并对该搜索结果中的相关字符以不同颜色加以区分。

      24. 页面刷新:尽量采用无刷新(AJAX)技术,以减少页面的刷新率。

      Ajax是新兴的网络开发技术的象征。它将JavaScript和XML技术结合在一起,用户每次调用新数据时,无需反复向服务器发出请求,而是在浏览器的缓存区预先获取下次可能用到的数据,界面的响应速度因此得到了显著提升。

      25. 新开窗口:尽量减少新开的窗口,以避免开过多的无效窗口,设置弹出窗口的关闭功能。

      26. 资料安全:确保资料的安全保密,对于客户密码和资料进行加密保存。

      27. 显示路径:无论用户浏览到哪一个层级,哪一个页面,都可以清楚知道看到该页面的路径。

      三、浏览体验:呈现给用户浏览上的体验,强调吸引性。

      28. 栏目的命名:与栏目内容准确相关,简洁清晰,不宜过于深奥。

      29. 栏目的层级:最多不超过三层,导航清晰,运用JAVAscrip等技术使得层级之间伸缩便利。

      30. 内容的分类:同一栏目下,不同分类区隔清晰,不要互相包含或混淆。

      31. 内容的丰富性:每一个栏目应确保足够的信息量,避免栏目无内容情况出现。

      32. 内容的原创性:尽量多采用原创性内容,以确保内容的可读性。

      33. 信息的更新频率:确保稳定的更新频率,以吸引浏览者经常浏览。

      34. 信息的编写方式:段落标题加粗,以区别于内文。采用倒金字塔结构。

        35. 新文章的标记:为新文章提供不同标识(如new),吸引浏览者查看。

      36. 文章导读:为重要内容在首页设立导读,使得浏览者可以了解到所需信息。文字截取字数准确,避免断章取义。

      37. 精彩内容的推荐:在频道首页或文章左右侧,提供精彩内容推荐,吸引浏览者浏览。

      38. 相关内容的推荐:在用户浏览文章的左右侧或下部,提供相关内容推荐,吸引浏览者浏览。

      39. 收藏夹的设置:为会员设置收藏夹,对于喜爱的产品或信息,可进行收藏。

      40. 栏目的订阅:提供Rss或邮件订阅功能

      41. 信息的搜索:在页面的醒目位置,提供信息搜索框,便于查找到所需内容。

      42. 页面打印:允许用户打印该页资料,以便于保存。

      43. 文字排列:标题与正文明显区隔,段落清晰。

      44. 文字字体:采用易于阅读的字体,避免文字过小或过密造成的阅读障碍。可对字体进行大中小设置,以满足不同的浏览习惯。

      45. 页面底色:不能干扰主体页面的阅读。

      46. 页面的长度:设置一定的页面长度,避免页面过长而影响阅读。

      47. 分页浏览:对于长篇文章 进行分页浏览。

      48. 语言版本:为面向不同国家的客户提供不同的浏览版本。

      49. 快速通道:为有明确目的的用户提供快速入口。

      四、情感体验:呈现给用户心理上的体验,强调友好性。

      50. 客户分类:将不同的浏览者进行划分(如消费者、经销商、内部员工),为客户提供不同的服务。

      51. 友好提示:对于每一个操作进行友好提示,以增加浏览者的亲和度。

      52. 会员交流:提供便利的会员交流功能(如论坛),增进会员感情。

      53. 售后反馈:定期进行售后的反馈跟踪,提高客户满意度。

      54. 会员优惠:定期举办会员优惠活动,让会员感觉到实实在在的利益。

      55. 会员推荐:根据会员资料及购买习惯,为其推荐适合的产品或服务。

      56. 鼓励用户参与:提供用户评论、投票等功能,让会员更多地参与进来。

      57. 会员活动:定期举办网上会员活动,提供会员网下交流机会。

      58. 专家答疑:为用户提出的疑问进行专业解答。

      59. 邮件/短信问候:针对不同客户,为客户定期提供邮件/短信问候,增进与客户间感情。

      60. 好友推荐:提供邮件推荐功能。

      61. 网站地图:为用户提供清晰的网站指引。

      五、信任体验:呈现给用户的信任体验,强调可靠性。

      62. 搜索引擎:查找相关内容可以显示在搜索引擎前列。

      63. 公司介绍:真实可靠的信息发布,包括公司规模、发展状况、公司资质等。

      64. 投资者关系:上市公司需为股民提供真实准确的年报,财务信息等。

      65. 服务保障:将公司的服务保障清晰列出,增强客户信任。

      66. 页面标题:准确地描述公司名称及相关内容。

      67. 文章来源:为摘引的文章标注摘引来源,避免版权纠纷。

      68. 文章编辑作者:为原创性文章注明编辑或作者,以提高文章的可信度。

      69. 联系方式:准确有效的地址、电话等联系方式,便于查找。

      70. 服务热线:将公司的服务热线列在醒目的地方,便于客户查找。

      71. 有效的投诉途径:为客户提供投诉或建议邮箱或在线反馈。

      72. 安全及隐私条款:对于交互式网站,注明安全及隐私条款可以减少客户顾虑,避免纠纷。

      73. 法律声明:对于网站法律条款的声明可以避免企业陷入不必要的纠纷中。

      74. 网站备案:让浏览者确认网站的合法性。

      75. 相关链接:对于集团企业及相关企业的链接,应该具有相关性。

      76. 帮助中心:对于流程较复杂的服务,必须具备帮助中心进行服务介绍。

      用户体验性测试确实要关注的东西太多,所以只有更关注用户,才能得到用户的信任,才能进一步提高用户对产品的满意度。
  • [转载]敏捷测试的方法和实践 --朱少民

    2011-09-01 14:01:08

    有一次,当开发人员完成当前Sprint 任务的代码之后,测试人员与开发人员、产品经理一起来浏览产品、从头到尾走一边,产品经理发现了问题,认为需要对功能进行比较大的修改。这时开发人员估计需要两天时间才能完成代码,但测试人员反对这样做,我们本来只有5天测试时间,加上这次新做的功能比较多、开发代码质量不高,验收测试已经很紧张。如果再延迟两天,测试没法完成。产品经理说,你们不是在用敏捷测试方法,应该测得很快,三天应该能完成测试工作啊!

    什么是敏捷测试呢?敏捷测试当然不能简单地理解测得更快,绝对不是比以前用更少时间进行测试,也不是将测试的范围缩小了或将质量降低来减少测试任务。也有人说,只有敏捷开发,没有敏捷测试。下面我们就要讨论一下:

    l  究竟什么是敏捷测试?

    l  敏捷测试有哪些流程改进?

    l  测试人员如何面对敏捷测试的挑战?

    l  在敏捷测试中如何制定相应的自动化测试策略?

    等等各种问题。

     

    1.   什么是敏捷测试

          假如将过去传统的测试流程和方法硬塞入敏捷开发流程中,测试工作可能会事倍功半,测试人员可能会天天加班,而不能发挥应用的作用。敏捷测试应该是适应敏捷 方法而采用的新的测试流程、方法和实践,对传统的测试流程有所剪裁,有所不同的侧重,例如减少测试计划、测试用例设计等工作的比重,增加与产品设计人员、 开发人员的交流和协作。在敏捷测试流程中,参与单元测试,关注持续迭代的新功能,针对这些新功能进行足够的验收测试,而对原有功能的回归测试则依赖于自动 化测试。由于敏捷方法中迭代周期短,测试人员尽早开始测试,包括及时对需求、开发设计的评审,更重要的是能够及时、持续的对软件产品质量进行反馈。简单地说,敏捷测试就是持续地对软件质量问题进行及时地反馈,如图1所示。

    1 敏捷测试定义的形象描述

    2.   敏捷测试流程的优化

    在 敏捷方法中,需求变化比较快、产品开发周期很短,我们目前采用四周时间,也就是每个月发布一个新版本。开发周期短,功能不断累加,给软件测试带来很大的挑 战,软件测试流程要做相应的调整。例如,我们原有的测试规范明确规定,首先要建立项目的主测试计划书,然后再建立每个功能任务的测试计划书,测试计划书有 严格的模板,而且需要和产品经理、开发人员讨论,并和测试团队其他人员(包括测试经理)讨论,最终得到大家的认可和签字才能通过,仅测试计划经过“起草、 评审和签发”一个完整的周期就需要一个月。在敏捷方法中,不再要求写几十页的测试计划书,而是在每个迭代周期,写出一页纸的测试计划,将测试要点(包括策 略、特定方法、重点范围等)列出来就可以了。

    在原有测试规范中,要求先用Excel写出测试用例,然后进行讨论、评审,评审通过以后再导入测试用例库(在线管理系统)中。在敏捷测试中,可能不需要测试用例,而是针对use case user story直 接进行验证,并进行探索性测试。而节约出来的时间,用于开发原有功能的自动化测试脚本,为回归测试服务。自动化测试脚本将代替测试用例,成为软件组织的财 富。原有测试规范还要求进行两轮回归测试,在敏捷测试中,只能进行一轮回归测试。综合这些考虑,敏捷测试的流程简单有效,如下图2所示。

     

    2 敏捷测试流程简要图

    在敏捷测试流程中,如前所述,测试是一个持续的质量反馈过程,测试中发现的问题及时反馈给产品经理和开发人员,而且某些关键方面也要得到我们足够的关注,主要有:

    l  测试人员不仅要全程参与需求、产品功能设计等讨论,而且要面对面地、充分地讨论(包括带语言、视频的即时通讯),仅仅通过邮件是不够的。

    l  参与代码复审(code review),并适当辅助开发人员进行单元测试。

    l  在流程中增加一个环节产品走查(Product work-through”——测试人员和产品经理、开发人员等在一起,从头到尾将新功能看一遍,可直观、快速地发现问题。

     

    3.   新功能的测试和回归测试策略

    测试任务简单地可分为新功能测试和回归测试。在敏捷方法中,针对这两部分的测试建立相应的策略,以提高测试的效率,最大限度地降低质量风险。新功能测试的策略主要有:

    l  不需要测试用例,直接基于用例、基于对需求的理解来完成新功能的验证。即使要写测试用例,只要保证各个功能点被覆盖,不要过于详细(大颗粒度)。

    l  持续地进行验证,一旦某块新代码完成(code drop, 就开始验证,而不是等到所有代码完成后才开始测试。这也包括参与到单元测试和集成测试中。

    l  实施端到端(end-to-end)的测试,确保完整的业务流程的实现,同时,也容易发现业务逻辑不够清晰、不够合理等各方面的问题。

    l  阅读代码来发现问题,可以和开发人员工作保持同步,消除测试周期的压力。

    l  基于经验,可以实施更多的探索性测试、组合交互性(interoperation)测试和用户场景(user scenario)测试,更有效地发现埋藏较深的缺陷。

     

    回 归测试是敏捷测试中需要面对的难点。每次迭代都会增加新的功能,一个产品可能会经过十几次、甚至几十次迭代,回归测试范围在不断增大,而每次迭代周期没 变,可能还是一个月。这样验收测试的时间非常有限,所以回归测试很大程度上依赖于自动化测试,因为很难将回归测试控制在非常有限的范围内。当然,还是有些 办法可以帮助我们减少回归测试的范围,例如:

    l  通过执行code diff来了解代码变动的所有地方,再做代码关联分析,就可以明确知道要进行哪些地方的回归测试,回归测试范围会大大缩小。

    l  基于风险和操作面分析来减少回归测试的范围,例如回归测试只是保证主要功能点没有问题,而忽视一些细节的问题。

    l  持续测试的过程,只要有时间,就进行测试,包括开发人员、产品设计人员都参与到日常的试用和测试中来。

    4 自动化测试策略

    由于开发周期短,需求、设计等方面沟通也需要花费很多时间,没有足够时间开发自动化测试脚本,至少对新功能的测试很难实现自动化测试。这时候,就需要正确的策略来提高自动化测试的效益,如图30-3所示,并说明如下。

    3 自动化测试的策略

     

    l  构建一个灵活的、开放的自动化测试框架,如基于关键字驱动的自动化框架,使测试脚本的开发简单易行,脚本维护也方便。

    l  针对稳定的产品特性开发自动化测试脚本,也就是针对前期完成的已有功能开发自动化测试的脚本,而大部分新功能测试采用手工测试。

    l  集中精力在单元层次上实现自动化测试,主要由开发人员实施,测试人员提供单元测试框架,并辅助完成一些所需的基础工作。

    l  在产品设计、编程时就很好地考虑了自动化测试的需求,使全面的、自动化的底层测试、接口测试成为可能,尽量避免用户界面(UI)的自动化测试。

    l  良好的IT基础设施,包括自动化构建软件包、自动化版本验证(BVT)、自动化部署、覆盖率自动产生等。

     

    5 敏捷测试工具

    自动化测试依赖于测试工具,所幸的是,目前已有很多敏捷测试工具。由于篇幅所限,这里只是简单地列出一些常用的敏捷测试工具,不再深入讨论了。

    l  单元测试工具:TestNGxUnit家族(如JUnit NUnit)、JMockBizMock等。

    l  功能测试自动化:ThoughtWorks Twist

    l  Web功能测试(frontend):Selenium IDE/RCWatiRWatiN

    l  Web service测试工具(backend):soapUI

    l  性能测试:JMeter+BadBoy

    l  验收测试框架:FitnesseTellurium

    l  敏捷测试过程管理工具:微软的Visual Studio 2010,包括TFS 2010Scrum模板(MS VS Scrum 1.0)、Test Manager 2010Coded UI Test等。

    l  业务智能(BI)应用的测试框架:Oraylis BI.Quality (+ NUnit)

    l  其它一些协作工具等,如TestLinkBugZillaBugFreewikiant等。

     

    6 测试人员在敏捷方法中的价值

    在敏捷方法中,开发人员的主导作用更明显,系统设计、编程实现、单元测试、重构等看似关键的一些任务都落在开发人员身上,测试人员容易被边缘化。那么,在敏捷方法中,测试人员的价值又如何体现呢?

    l  在需求和功能设计讨论上,测试人员可以站在客户角度上来阐述自己的观点,扮演“用户代表”角色,强调用户体验,真正体现测试人员和开发人员的互补作用。

    l  测试人员不仅扮演“用户代表”角色,而且通过需求讨论、代码复审等各种活动及时地提供质量反馈,包括代码质量、接口一致性等,保证在产品构造的整个过程中质量受到足够的关注,以提高质量改进的持续性和可视性。

    l  测试人员应积极参与单元测试,即使不参加单元测试,也应督促开发人员进行单元测,确保单元测试达到80%以上覆盖率,确保开发出具有良好可测试性的代码。

    l  在敏捷方法中,往往将一个大的系统开发分解成多个小的子系统(模块或组件),集成测试和端到端(end-to-end)测试显得更为重要,测试人员在这些测试上能发挥更大的作用。

    l  产品发布前,验收测试和回归测试依然不可缺少,这更是测试人员的用武之地。

    l  一个迭代周期结束后,对缺陷根本原因进行分析、总结规律,帮助开发人员建立良好的习惯,预防缺陷,从根本上提高产品质量。

    理想情况下,测试人员掌握设计模式、具有很好的编程能力,可以和开发人员进行角色互换,如在当前版本开发(/迭代周期)中担任测试人员角色,在下一个版本开发(/迭代周期)中则担任开发人员角色。这样双方对不同角色的工作有着更深刻的认识,消除沟通的障碍,开发的效率和质量会有进一步的提高。

     

    小结

    根据上面的讨论和我们的实践,最后针对敏捷测试进行一个简单的总结,就是:

    l  敏捷测试就是持续测试、持续反馈,扮演“用户代表”角色,确保产品满足客户的需求。

    l  敏捷功能测试 = 新特性的手工测试 (use case验证和探索性测试)  + 原有功能的自动化测试 (回归测试)

    l  敏捷测试人员和开发人员的区别越来越小,理想情况下,敏捷方法中,测试人员和开发人员在不同的迭代周期可以互换。

    l  敏捷测试流程依据不同的团队特点、不同产品的特点而不同,因地制宜,适合才是最好。

     

Open Toolbar