功能测试-界面测试-1
大家好,我是十一。
前情回顾
上篇我们讲了常见测试误区,我们先来回顾下:
1.软件开发完成后才进行测试
正确打开方式:在软件项目工作中应尽早地、不断地进行软件测试,发现错误并加以修正,才是软件测试工作的正确打开方式。
2.规范化软件测试是增加项目成本
正确打开方式:我们不仅要规范化软件测试,更要规范化整个软件过程。
3.bug越多测试越有效
正确打开方式:线上bug反应测试的有效性。
4.软件测试工作只负责项目上线/产品发布之前的部分
正确打开方式:测试活动贯穿整个软件生命周期。
后续我们来讲讲测试中的功能测试技术。今天就来说说界面测试,本篇所涉及到的知识对大家来说很重要,所以希望大家能耐心看完。
图片来源:百度界面测试
GUI测试的概念(what)
GUI(Graphical User Interface,图形用户界面)是计算机软件与用户进行交互的主要方式,是用户可见的应用程序的一部分。GUI包含诸如菜单,按钮,文本框和图像等元素。他的存在为用户的操作带来了极大的方便。
GUI测试是指测试用户可见的应用程序的功能。在计算器应用程序的示例中,包括验证应用程序是否正确响应,诸如单击数字和功能按钮等事件。GUI测试还会确认外观元素(如字体和图像)符合设计规范。
UI与GUI
用户界面(User Interface,简称 UI,亦称使用者界面[1])是系统和用户之间进行交互和信息交换的媒介,其类似于GUI测试;但是,UI是一个更广泛的概念,可以包括GUI和命令行界面(CLI,command-line interface)。CLI允许用户通过文本命令和响应与计算机系统进行交互。虽然CLI早于图形用户界面,但它们现在仍在使用中,并且通常受系统管理员和开发人员的青睐,常见的有windows的cmd.exe 或是linux的bash。GUI测试还会确认外观元素(如字体和颜色)是否符合设计规范。
各自的优点:
CLI:
优点:因为没有丰富的图形界面以及大量的图像,所以较图形用户界面节约计算机系统的资源。
缺点:需要用户自己熟记操作命令。
GUI:
优点:不需要熟记操作命令,有丰富的图形界面引导用户通过简单的输入和鼠标即可完成使用,从而使得用户操作更方便,也更直观。
缺点:正是由于他本身的优点,导致计算机系统的资源占用会比较大。
GUI测试的重要性(why)
界面是软件与用户交互最直接的地方,他就好比是人的面貌,人的衣服。众所周知,具有较好面容、得体服饰的人通常更能引起别人关注,软件也是这样,良好的界面设计具有吸引用户的直接优势。而且优良的界面设计通常能够引导用户自己完成相应的操作,使得用户操作更方便直观。相反,失败的界面设计,就会让用户无从下手(用户体验差)从而放弃使用。(试想,给你一个界面乱七八糟的游戏你会玩儿吗?)
优秀GUI具备的7要素-2(其中之二)
优秀的UI设计需要具备以下七要素(各个公司根据自己业务需求会稍加调整,但是都应当具备这7要素):
1. 符合标准和规范
如果软件在Mac或者Windows等现有平台上运行,标准是已经确定的。这里不在赘述,感兴趣的同学们自行查阅下。那些标准里详细地说明了在相应平台上运行的软件对用户应该有什么样的外观和感觉。每一点都进行了定义,从何时使用复选框而不是单选按钮,何时使用提示信息、警告信息或者关键信息等。
平台也有可能没有标准,也许测试的软件本身就是平台,在这种情况下,设计小组就需要创立软件易用性标准。
2. 直观
直观性,即使用者看到软件后能根据软件界面的相关引导直接使用。那么如何来衡量软件的直观程度呢?
a.用户界面是否洁净、不唐突、不拥挤?GUI不应该为用户制造障碍。所需功能或者期待的响应应该明显,并在预期出现的地方。
b.GUI的组织和布局是否合理?是否允许用户轻松地从一个功能转到另一个功能?下一步做什么是否明确?任何时刻是否都可以决定放弃或者退回、退出?输入是否得到承认?菜单或者窗口是否深藏不露?
c.有多余功能吗?软件整体抑或局部是否做得太多?是否有太多特性把工作复杂化了?是否感到信息太庞杂?
d.如果其他所有努力失败,帮助系统是否能帮忙?
3.一致
一致性,两个方面的一致性,其一是软件与其他软件设计的一致性(比如快捷方式,术语使用,界面布局等等),其二是软件内部的设计的一致性,即模块与模块,页面与页面之间的一致性(比如每个界面布局一致,每个页面都是只展示前20条记录,字体大小,提示信息框体设计等等)。
a.快捷键HOT-KEY和菜单选项。如:在Windows中,按F1键总是得到帮助信息, Ctrl+C、 Ctrl+V。
b.术语和命令。整个软件使用同样的术语吗?特性命名一致吗?例如,Find是否一直叫Find,而不是有时叫Search?
c.用户。软件是否一直面向同一用户级别? 例如:错误信息的内容应该针对用户的层次。
d.等价按钮位置。例如:WINDOWS对话框有OK按钮(确认)和Cancel按钮(取消)时,OK按钮总是在上方或者左方,而Cancel按钮总是在下方或者右方。
e.按钮对应的等价按键。Cancel按钮的等价按键通常是Esc,而选中按钮的等价按钮通常是Enter,保持一致。
4.灵活
用户喜欢选择,但是选择太多时又容易拿不定主意,所以软件需要提供适当的选择给用户,这就是所说的灵活。具体体现在如下几点:
a.状态跳转。灵活的软件在实现同一任务上提供多种选择和方式,这样就增加了通向软件各种状态的途径。
b.状态终止和跳过。我们在安装或者使用软件时,通常能够跳过众多提示或者窗口直接到达想去的地方。且软件需要具备状态终止的功能,譬如我们在银行转账过程中,随时都可以终止操作一样。
c.数据输入和输出。用户希望有多种方法输入数据和查看结果。为了在写字板文档中插入文字,可以用键盘输入、粘贴、从多种文件格式读入、作为对象插入,或者用鼠标从其他程序拖动等等
5.舒适
像我们买衣服,如果穿上不舒服,我们一般是不会掏钱买的。软件也一样,用户讲究舒适度,这个舒适度来源于用户体验,用户的感觉。舒适是难以量化的概念,但是我们可以通过以下几点去做一些基础的鉴别:
a.恰当。软件外观和感觉应该与所做的工作和使用者相符。比如:金融商业应用程序不应该用绚丽的色彩和音效来表现狂放的风格,相反,游戏界面则需要。
b.错误处理。程序应该在用户执行严重错误的操作之前提出警告,并且允许用户恢复由于错误操作导致丢失数据。
c.性能。快不见得是好事。不少程序的错误提示信息一闪而过,无法看清。如果操作缓慢(如下:进度条),至少应该向用户反馈操作持续时间,并且显示它正在工作,没有停滞(死机)。
6.正确
舒适性要素被公认为是模糊的,要看怎么理解。然而,正确性却不然,一般正确性问题都显而易见,在测试产品规格说明书时即可发现。但是以下这些情况需要特别注意:
a.市场定位偏差。有没有冗余或者遗漏的功能,或者某些功能执行了与市场宣传材料不符的操作。
b.语言和拼写。有些程序员的拼写和写作水平低劣,常常能够制造一些异想不到的用户信息。
c.不良媒体。媒体是软件UI包含的所有支持图标、图像、声音和视频。图标应该同样大,并且具有相同的调色板。声音应该都有相同的格式和采样率。在GUI上选择时应该显示出来相应的正确的媒体来。比如上传图片,我们在文本框后面的帮助信息上可以输入:仅支持png、jpg格式的图像上传。
d.所见即所得。保证UI所说的就是实际得到的。当单击Save按钮时,屏幕上的文档与存入磁盘的完全一样吗?从磁盘读出时,与原文档相同吗?譬如:打印时,输出的文档与屏幕上预览的文档是否完全相同。
7.实用
这里所说的实用不是指软件本身是否实用,而仅指具体特性是否实用。在审查产品说明书、准备测试或者实际测试时,想一想看到的特性对软件是否具有实际价值。它们有助于用户执行软件设计的功能吗?如果认为它们没必要,就要研究一下找出它们存在于软件的原因。
那有人说十一,我是来测试的,你写这么多,我们到底应该怎么做界面测试呢?好的界面需要具备7要素,测试当然就是要测GUI符不符合这7要素啦,任一不符直接报bug啦,还等什么!
好了,今天到此结束。如有任何问题请留言及时与我沟通,我会尽快回复大家!谢谢大家~我们下次再见!