随着Internet和Intranet的快速发展,Web技术已经对工商业、医疗业、教育、政府、娱乐以及我们的生活产生了深远的影响。Web平台能支持几乎所有媒体类型的信息发布,容易为最终用户存取,更多传统的信息和数据系统正在逐渐迁移到互联网上:电子商务正迅速增长,范围广泛、复杂的云应用和云计算也正在Web环境中出现。基于Web的系统在变得越来越复杂和强大的同时,Web应用软件的缺陷危机也越来越严重。早在1998年Yogesh Deshpande和Steve Hansen就提出了Web工程的概念。Web工程提倡使用一个过程和系统的方法来开发高质量的基于Web的系统。在Web工程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。
  Web环境具有浏览器平台不兼容、网络环境多样化、应用复杂化等诸多特性,所以,传统测试方法的某些方面不适用于网络测试。Web的自动化测试方法包含几个方面,比如,测试脚本技术、人工测试过程自动化、验证自动化等等。在测试驱动开发模式中,测试已成为迭代开发过程中起推动作用的环节,但与此同时,大量的重复性的测试代码却造成了大量资源的浪费。
  随着自动化测试技术的成熟和自动化测试工具的广泛应用,人们重新认识到了测试的价值:最优的质量成本,最高的质量保证。自动化测试的优势在软件领域很明显的:减少了测试时间,使测试程序统一化,便于管理,节约了质量保证的成本,提高了测试运行的效率,改善了软件产品的质量。
  现在一般人都有使用浏览器浏览网页的经历,用户虽然不是专业人员但是对界面效果的印象是很重要的。如果开发人员注重这方面的测试,那么验证应用程序是否易于使用就非常重要了。很多人认为这是测试中最不重要的部分,但是恰恰相反,界面对不懂技术的客户来说都是相当关键,特别是在简洁、美观、易用等方面。
  方法上可以根据设计文档,如果够专业的话可以由专业美工人员,来确定整体风格,特别是页面风格。然后根据这个设计好的页面,生成静态的HTML、CSS等甚至生成几套不同的方案来讨论,或者交给客户评审,最后形成统一风格的页面/框架。
  页面测试的主要页面元素有:
  ● 页面元素的容错性列表(如输入框、时间列表或日历)。
  ● 页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选按钮、复选框、列表框、超链接、输入框等等)。
  ● 页面元素的容错性是否存在。 第IV部分 图形用户界面测试篇
  ● 页面元素的容错性是否正确。
  ● 页面元素的基本功能是否实现(如文字特效、动画特效、按钮、超链接)。
  ● 页面元素的外形、摆放位置(如按钮、列表框、复选框、输入框、超链接等)。
  ● 页面元素是否显示正确(主要针对文字、图形、签章)。
  ● 元素是否显示(元素是否存在)。

  页面测试主要包括以下几个方面的内容:
  ● 站点地图和导航条位置是否合理,是否可以导航等。
  ● 页面内容布局是否合理,文字是否准确、简洁,字体和字号是否多数读者习惯。
  ● 背景/色调是否合理、美观,是否多数用户审美要求。
  ● 页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确),表单样式 大小、格式是否适宜。
  ● 是否对数据进行验证(如果在页面部分进行验证的话)等。
  ● 链接的形式、位置、是否易于理解等。
  对Web应用的测试可以分为页内测试(IntraPageTest)和跨页测试(InterPageTest)两种。页内测试相当于单元测试,着重于测试单个页面的行为是否正确。根据模块化思想,在进行页面划分时,一般使每个页面具有单一、具体的功能,可以直接表达用户的一个目标。
  本章我们主要考虑Web页内测试的主要方法。
  ● 人工走查:
  ①通过页面走查,浏览确定使用的页面是否符合需求。可以结合兼容性测试不同分辨率下的页面显示效果,如果有影响,则应该交给设计人员由他们提出解决方案。
  ②可以结合数据定义文档查看表单项的内容、长度等信息。
  ③对于动态生成的页面最好也能浏览查看。如Servelet部分可以结合编码规范,进行代码走查。是否支持中文,如果数据用XML封装,要做的工作可能会多一点。
  ● 使用Web页面测试工具:
  工具可以提供很多测试方法,可以用来模拟许多手工操作,如单击按钮、给文本框输入字符或数字、鼠标双击事件等,从而实现了测试的自动化。这对于需要输入大量信息的界面测试来说是十分重要的。
  Web页面测试的基本准则:
  符合页面/界面设计的标准和规范,满足灵活性、正确性、直观性、舒适性、实用性、一致性等要求。
  直观性:
  ①用户界面是否洁净、不唐突、不拥挤,界面不应该为用户制造障碍,所需功能或者期待的响应应该明显,并在预期的地方出现。
  ②界面组织和布局合理吗?是否允许用户轻松地从一个功能转到另一个?下一步做什么明显吗?任何时刻都可以决定放弃或者退回、退出吗?输入得到承认了吗?菜单或者窗口是否深藏不露?
  ③有功能吗?软件整体抑或局部是否做得太多?是否因有太多特性而把工作复杂化了?是否感到信息太庞杂?
  ④如果其他所有努力失败,帮助系统真能帮忙吗?
  一致性:
  ①快捷键和菜单选项,在Windows中按F1键总是得到帮助信息。
  ②术语和命令,整个软件使用同样的术语吗?特性命名一致吗?例如,Find是否一直叫Find,而不是有时叫Search?
  ③软件是否一直面向同一级别用户?带有花哨用户界面的趣味贺卡程序不应该显示泄露技术机密的错误提示信息。
  ④按钮位置和等价的按键。大家是否注意到对话框有OK按钮和Cancel按钮时,OK按钮总是在上方或者左方,而Cancel按钮总是在下方或右方?同样原因,Cancel按钮的等价按键通常是Esc,而OK按钮的等价按钮通常是Enter,要保持一致。
  灵活性:
  ①状态跳转,灵活的软件实现同一任务时通常会有多种选择方式。
  ②状态终止和跳过,具有容错处理能力。
  ③数据输入和输出,用户希望有多种方法输入数据和查看结果。例如,要在写字板中插入文字,可用键盘输入、粘贴、从6种文件格式读入、作为对象插入,或者用鼠标从其他程序拖动。
  舒适性:
  ①恰当,软件外观和感觉应该与所做的工作和使用者相符。
  ②错误处理,程序应该在用户执行严重错误的操作之前提出警告,并允许用户恢复由于错误操作导致丢失的数据。正如大家认为undo /redo功能是理所当然应有的。
  ③性能,快不见得是好事,要让用户看清程序在做什么,它是有反应的。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐