百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

界面测试的定义和测试关注点

bigegpt 2024-09-11 00:56 4 浏览

对于我们来说真正的软件测试其实不仅仅只是关注一些常用的功能或某个特定的测试,往往被测试人员忽视的测试点其实对客户来说也是被关注的重要内容,真正懂技术的客户其实很少,那么你就知道软件测试界面对于客户的重要性了

什么是软件界面(UI):

标准的定义是讲到,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。

界面测试的目的:

通过用户界面 (UI) 测试来核实用户与软件的交互。UI 测试的目标在于确保用户界面向用户提供了适当的访问和浏览测试对象功能的操作。除此之外,UI 测试还要确保

UI 功能内部的对象符合预期要求,并遵循公司或行业的标准。

通过浏览测试对象可正确反映业务的功能和需求,这种浏览包括窗口与窗口之间、字段与字段之间的浏览,以及各种访问方法(Tab 键、鼠标移动和快捷键)的使用。窗口的对象和特征(例如:菜单、大小、位置、状态和中心)都符合标准。

一、界面的测试关注点:

1、标题栏

a、标题文字描述的正确性

b、标题栏中(最大化、最小化、关闭)按钮,根据窗口的特性,如没有最大化或者最小化状态的窗口,应该不显示最大化和最小化按钮,或者把按钮 Disable 状态显示。

2、文字

(1)文字描述的准确性:

a、检查文字的描述和所对应的功能是否一致;

b、检查错别字。

(2)文字用语的一致性:

(菜单、界面按钮或者 Label 等、ToolTip、窗口标题)

比如选项设置,在主界面的有按钮可以进入选项设置对话框,或者菜单中有菜单项可进入选项设置对话框中,那么,按钮、菜单、对话框的标题都应该统一用词,如用“选项”或者“设置”,而不能又用“选项”,又用“设置”,或者还有其他的的用词。

(3)为了全面的检查所有的文字,应该检查程序中的所有文字资源,因为一些对话框可能比较难在黑盒测试的时候能全部都出现过。

3、控件

(1)控件对齐:

并排关系的控件间应该左对齐,同行的控件应该横向对齐。有所属关系的控件应该缩进。eg:

(2)控件状态:

a、不能操作的的控件的状态应该为 Disable,这样界面也起到引导用户使用操作的效果。

b、有依赖关系的控件,比如(几个选项供选择(CheckBox 或者 RadioBox),每个选项下面都有独立的设置(其他的控件:Edit、ComboBox、CheckBox 等),那么当所属的选项没有选中时,下面的控件应该是 Disable 的,相反为 Enable。

(3)控件的 TabOrder

控件的 TabOrder 应该依次从上到下、从左到右的顺序,界面中默认的 TabOrder 应该落在界面上的第一个 Enable 状态的控件上面。

(4)控件的右键菜单支持

允许输入的控件都应该支持右键菜单,方便习惯使用右键菜单的用户复制、剪切、粘贴、全选等操作。

(5)控件的操作方式

a、单行文本的 Edit 输入框中,对回车符的支持:回车默认操作是本窗口中的“确定”按钮的功能。

b、在可操作的列表控件(List、ListView)中,鼠标双击的操作、键盘操作都应该有对应的默认操作。比如下面的图中,双击列表中某一项,默认操作就是 Modify 按钮的操作;双击列表中的空白处,默认操作应该是 Add 按钮的操作;选中列表中的项的情况下,按下 Delete 键,默认操作应该是 Remove 按钮的操作。

(6)Edit 控件对输入的有效性判断

a、类型判断:整型、浮点型的数据输入框中,不允许输入非表示数据的其他字符串(如:abcd 或者其他字符等);

b、大小判断:数据类型的数据如有大小范围限制的,要对输入的大小进行判断

(如:表示月份的输入框中,只能允许输入 1-12 的数字。

c、长度判断:如果是程序处理的字符串有长度限制,但是输入框中没有对输入的数据长度进行限制,将有可能会造成程序错误,或者处理后的结果和输入的不相符合。

d、正确性判断:表示路径的或者文件名全路径的输入框,要对输入的路径是否为有效的路径进行判断,如:输入 aaaa 或者 C:\\//等为不正确的输入。

4、图片:图片显示的篇幅不要太大。

5、界面整体的颜色搭配

6、窗口在任务栏上的系统菜单

每个应用程序,如窗口在系统任务栏上有缩小图标的,都应该有系统右键菜单的支持(还原、最大化、最小化等),要测试右键菜单中各个项的 Enable 和 Disable 状态的正确性以及功能的正确性。

二、提示对话框测试要点:

1、文字描述的正确性

2、图标显示的正确性:

相关推荐

最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)

前言作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上...

Redis数据库从入门到精通(redis数据库设计)

目录一、常见的非关系型数据库NOSQL分类二、了解Redis三、Redis的单节点安装教程四、Redis的常用命令1、Help帮助命令2、SET命令3、过期命令4、查找键命令5、操作键命令6、GET命...

netcore 急速接入第三方登录,不看后悔

新年新气象,趁着新年的喜庆,肝了十来天,终于发了第一版,希望大家喜欢。如果有不喜欢看文字的童鞋,可以直接看下面的地址体验一下:https://oauthlogin.net/前言此次带来得这个小项目是...

精选 30 个 C++ 面试题(含解析)(c++面试题和答案汇总)

大家好,我是柠檬哥,专注编程知识分享。欢迎关注@程序员柠檬橙,编程路上不迷路,私信发送以下关键字获取编程资源:发送1024打包下载10个G编程资源学习资料发送001获取阿里大神LeetCode...

Oracle 12c系列(一)|多租户容器数据库

作者杨禹航出品沃趣技术Oracle12.1发布至今已有多年,但国内Oracle12C的用户并不多,随着12.2在去年的发布,选择安装Oracle12c的客户量明显增加,在接下来的几年中,Or...

flutter系列之:UI layout简介(flutter-ui-nice)

简介对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。在flutter中,基本上所有的对象都是wi...

Flutter 分页功能表格控件(flutter 列表)

老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来。PaginatedDataTablePaginatedDataTable是一个带分页功能的DataTable,...

Flutter | 使用BottomNavigationBar快速构建底部导航

平时我们在使用app时经常会看到底部导航栏,而在flutter中它的实现也较为简单.需要用到的组件:BottomNavigationBar导航栏的主体BottomNavigationBarI...

Android中的数据库和本地存储在Flutter中是怎样实现的

如何使用SharedPreferences?在Android中,你可以使用SharedPreferencesAPI来存储少量的键值对。在Flutter中,使用Shared_Pref...

Flet,一个Flutter应用的实用Python库!

▼Flet:用Python轻松构建跨平台应用!在纷繁复杂的Python框架中,Flet宛如一缕清风,为开发者带来极致的跨平台应用开发体验。它用最简单的Python代码,帮你实现移动端、桌面端...

flutter系列之:做一个图像滤镜(flutter photo)

简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起...

flutter软件开发笔记20-flutter web开发

flutterweb开发优势比较多,采用统一的语言,就能开发不同类型的软件,在web开发中,特别是后台式软件中,相比传统的html5开发,更高效,有点像c++编程的方式,把web设计出来了。一...

Flutter实战-请求封装(五)之设置抓包Proxy

用了两年的flutter,有了一些心得,不虚头巴脑,只求实战有用,以供学习或使用flutter的小伙伴参考,学习尚浅,如有不正确的地方还望各路大神指正,以免误人子弟,在此拜谢~(原创不易,转发请标注来...

为什么不在 Flutter 中使用全局变量来管理状态

我相信没有人用全局变量来管理Flutter应用程序的状态。毫无疑问,我们的Flutter应用程序需要状态管理包或Flutter的基本小部件(例如InheritedWidget或St...

Flutter 攻略(Dart基本数据类型,变量 整理 2)

代码运行从main方法开始voidmain(){print("hellodart");}变量与常量var声明变量未初始化变量为nullvarc;//未初始化print(c)...