UI 易用性测试 以及自动化实现!

GUI 是指图形用户界面,UI 是指用户界面,对于纯软件系统,这两者没有本质的区别,GUI易用性测试与 UI 易用性测试内容一致。但是如果测试的对象是一个产品,这两者则存在区别,对于产品 UI 则不仅仅包括 GUI,还包括产品硬件部分的测试。

一、UI易用性测试

UI 测试包括两类:软件界面测试和硬件界面测试。就软件界面测试来说,其与 GUI测试一致。硬件界面测试则是指产品的外观,产品外观是用户体验产品最重要的用户界面(如按钮、标识等),优秀外观可以更好地吸引客户的眼球,可以为产品增值。

UI 硬件界面的测试是结构测试中的一部分,外观测试应该注意以下几个问题:

(1)点状与线状测试。

(2)间隙或断差测试。

(3)注塑、丝印、喷涂、电镀测试。

(4)按键、镜片、LCD、LED、显示屏、摄像头、配合类测试。

(5)包装、附件等。

二、 易用性测试的自动化实现

易用性测试主要是针对对象的一些属性进行测试,但如果每个测试版本都去验证对象的属性,效率显然比较低,但是如果不验证,又担心开发工程师修改了对象的属性。而借助自动化测试工具帮助进行易用性测试,显然可以提高测试的效率,但不是所有的属性都可以通过自动化测试来实现,在测试过程中可以有选择地对对象的属性进行自动化测试。

易用性自动化测试实现的步骤如下:

(1)获取实际测试过程中对象的相关属性。

(2)将实际的对象属性与预期对象属性进行比较。

(3)如果不同,测试结果标为 FAIL;如果相同,则结果标为 PASS。

易用性测试内容见表 15-3

在易用性测试表中,列出需要测试的对象名、对象的属性以及各属性的预期结果,在测试过程中,获取实际运行时对象的属性值,并将它填写到表格中。之后再比较预期结果与实际结果的值是否相同,如果相同,则在结果列中标为PASS(字体颜色为绿色),否则标为 FAIL(字体颜色为红色)。

 
  1. 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。

  2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受

  3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛

  4. 分享他们的经验,还会分享很多直播讲座和技术沙龙

  5. 可以免费学习!划重点!开源的!!!

  6. qq群号:680748947【暗号:csdn999】

【实例】使用自动化测试工具 QuickTest Professional 测试图 15-20 中 OK 按钮的属性。

图 15-20 易用性测试对象

实现的代码如下:

 
  1. '———————————————————————————————————

  2. ' 函数名:CompareText

  3. '

  4. ' 目的:比较预期结果和实际结果单元格的值是否相同

  5. '

  6. ' Parameters:

  7. ' sheetname:待比较的 sheet

  8. ' expectColumn:预期结果列

  9. ' actualColumn:实际结果列

  10. ' startRow:比较的开始行

  11. ' numberOfRows:共需要比较多少行

  12. ' trimed:单元格中的值是否包含空格符

  13. ' Date: 2011-11-27

  14. '———————————————————————————————————

  15. Function CompareText(sheetname, expectColumn, actualColumn, startRow,

  16. numberOfRows, trimed)

  17. Dim returnVal

  18. Dim cell

  19. returnVal = True

  20. '判断 sheet 对象是否为 nothing

  21. If sheetname Is nothing Then

  22. CompareText = False

  23. Exit Function

  24. End If

  25. '循环读取单元格中的值

  26. For r = startRow to (startRow + (numberOfRows - 1))

  27. Value1 = sheetname.Cells(r, expectColumn)

  28. Value2 = sheetname.Cells(r, actualColumn)

  29. '空格符去掉后再进行比较

  30. If trimed Then

  31. Value1 = Trim(Value1)

  32. Value2 = Trim(Value2)

  33. End If

  34. '比较两个数据是否相等,如果相等将结果标为 PASS 并将字体置为绿色,否则将结果标为 FAIL 并将字体置为红色

  35. Set cell = sheetname.Cells(r,actualColumn+1)

  36. If Value1 <> Value2 Then

  37. sheetname.Cells(r, actualColumn+1).value = "FAIL"

  38. cell.Font.Color = vbRed

  39. returnVal = False

  40. else

  41. sheetname.Cells(r, actualColumn+1).value = "PASS"

  42. cell.Font.Color = vbGreen

  43. returnVal = True

  44. End If

  45. Next

  46. CompareText = returnVal

  47. End Function

  48. Set ExcelApp = CreateObject("Excel.Application")

  49. Set ExcelSheet = CreateObject("Excel.Sheet")

  50. Set myExcelBook1= ExcelApp.WorkBooks.Open("c:\1.xls")

  51. Set myExcelSheet1= myExcelBook1.WorkSheets("Sheet1")

  52. Dialog("Login").WinEdit("Agent Name:").Set "test"

  53. Dialog("Login").WinEdit("Password:").SetSecure

  54. "4ed2314da546f1e8280d3586032611a53dfbed13"

  55. myExcelSheet1.Cells(2,4).value =

  56. Dialog("Login").WinButton("OK").GetROProperty("text")

  57. myExcelSheet1.Cells(3,4).value =

  58. Dialog("Login").WinButton("OK").GetROProperty("nativeclass")

  59. myExcelSheet1.Cells(4,4).value =

  60. Dialog("Login").WinButton("OK").GetROProperty("width")

  61. myExcelSheet1.Cells(5,4).value =

  62. Dialog("Login").WinButton("OK").GetROProperty("height")

  63. myExcelSheet1.Cells(6,4).value =

  64. Dialog("Login").WinButton("OK").GetROProperty("visible")

  65. myExcelSheet1.Cells(7,4).value =

  66. Dialog("Login").WinButton("OK").GetROProperty("enabled")

  67. Dialog("Login").WinButton("OK").Click

  68. Window("Flight Reservation").Close

  69. CompareText myExcelSheet1,3,4 ,2,6,False

  70. myExcelBook1.save

  71. ExcelApp.Quit

  72. Set myExcelSheet1= nothing

  73. Set myExcelBook1= nothing

  74. Set ExcelApp = nothing

  75. Set ExcelSheet = nothing

测试完成后的结果见表 15-4。

图 15-4 易用性自动化测试结果

上例只是一个比较简单的易用性测试自动化的实现过程,在实际工作中可以对该方法进行一定的完善,进一步提高易用性测试的效率。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/733419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程-线程池原子性并发工具类

1.线程池 1.线程状态 虚拟机中线程的六种状态 新建状态&#xff08;NEW&#xff09; --创建线程 就绪状态&#xff08;RUNNABLE&#xff09; --start方法 阻塞状态&#xff08;BLOCKED&#xff09; --无法获得锁对象 等待状态&#xff08;WAITING&#xff09; …

springboot254小区团购管理

小区团购管理设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装小区团购管理软件来发挥其高效地信…

菜鸟笔记-14Python绘图颜色使用

Python中绘图主要依赖于各种库&#xff0c;其中matplotlib是最常用且功能强大的一个。在matplotlib中&#xff0c;你可以使用各种颜色来表示不同的数据点、线条或填充区域。下面我将详细介绍如何在Python中使用matplotlib来设置绘图颜色&#xff0c;并给出具体的例子。 14.1颜…

Spring循环依赖问题分析

对象分类&#xff1a;1.成品对象&#xff1a;实例化完成 初始化完成 2.半成品对象&#xff1a; 实例化完成 初始化未完成 实例化和初始化可以分开执行是解决循环依赖问题的关键 一级缓存&#xff1a;保存完成的bean对象 二级缓存&#xff1a;存储成品对象 三级缓存&#xff1a…

《北上广深杭》都有哪些最值得加入的互联网大厂

IT行业做技术很公平&#xff0c;没那么看重出身&#xff0c;只要你技术好&#xff0c;能力强&#xff0c;就能进大厂&#xff0c;拿高薪。IT行业算是目前为数不多的比较容易屌丝逆袭的行业之一&#xff0c;IT行业也从来不缺少造富神话。一起加油吧&#xff0c;打工人&#xff0…

Python 创建PPT

本篇为如何使用Python来创建ppt文件。 创建PPT 安装必要的库 命令如下&#xff1a; pip install python-pptx 安装过程&#xff1a; 创建ppt文件 在当前目录下创建一个test的ppt文件。其中包含两页&#xff0c;分别使用了不同的布局。 第一页设置了标题和内容。第二页只设…

【Linux】cpp-httplib库

目录 升级gcc版本 下载cpp-httplib的zip安装包&#xff0c;上传到服务器 ​编辑 简单使用 首先打开gittee,搜索cpp-httplib,选择其中一个即可 也可以点下方链接 cpp-httplib库&#xff1a;cpp-httplib: cpp-httplib (gitee.com) 注意&#xff1a;cpp-httplib在使用的时候需…

AJAX-HTTP协议

文章目录 HTTP协议请求报文响应报文接口文档 HTTP协议 规定了浏览器发送及服务器返回内容的格式 请求报文 浏览器按照HTTP协议要求的格式&#xff0c;发送给服务器的内容 组成部分&#xff1a; 1.请求行&#xff1a;请求方法&#xff0c;URL&#xff0c;协议 2.请求头&#…

算法的时间复杂度和空间复杂度(数据结构)

本博客讲解算法的时间复杂度和空间复杂度的来源及定义&#xff0c;时间复杂度的表示及练习。空间复杂度的计算会在后续博客讲解 算法的复杂度 算法在编写成可执行程序后&#xff0c;运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏&#xff0c;一般是从时…

Glip模型

Yolos 完全使用Transformer做目标检测 Detr 先使用CNN提取特征然后再使用transformerDetr和Yolos共同的缺点&#xff1a;需要事先知道所有的类别 Glip Zero-shot, 目标检测的类别可以不在训练类别中 目标框进行视觉编码&#xff0c;然后和文本进行匹配文本和视觉特征是通…

docker ENTRYPOINT [“sh“,“-c“,“java“,“-jar“,“Hello.jar“] 启动失败问题分析

因为没系统的学过linux语法&#xff0c;所以才会产生如下疑问。大佬请跳过。 问题&#xff1a;当在dockerfile里面配置 ENTRYPOINT ["sh","-c","java","-jar","Hello.jar"] &#xff0c;启动对应容器时会无法正常运行&…

基于SpringBoot宠物领养系统的设计与实现(代码+数据库+文档)

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 一、研究背景…

基于机器视觉的动态物体追踪研究与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 Python 3 1.2图像二值化 3 1.3 Opencv 3 1.4图像去噪 3 1.5本章小结 4 2 动态目标检测算法 5 2.1 背景差分法 5 2.2 帧差法 7 2.3 光流法 9 2.4 本章小结 10 3 动态目标跟踪算法 11 3.1 Mean Shift 11 3.2 Cam Shift 13 3…

微信小程序如何实现下拉刷新

1.首先在你需要实现下拉刷新页面的json文件中写入"enablePullDownRefresh": true。 2.在js文件的onPullDownRefresh() 事件中实现下拉刷新。 实现代码 onPullDownRefresh() {console.log(开始下拉刷新)wx.showNavigationBarLoading()//在标题栏中显示加载图标this.d…

Joe主题网站

一款博客网站源码 发现源码为大家内置了主题 清爽又强大真正的永久可用的一条源码&#xff0c;该版本为整合版本&#xff0c;内置了Joe主题&#xff0c;搭建后直接启用即可~ 安装环境要求&#xff1a; PHP 7.2 以上 MySQL, PostgreSQL, SQLite 任意一种数据库支持&#xff0c;…

Synthetic Temporal Anomaly Guided End-to-End Video Anomaly Detection 论文阅读

Synthetic Temporal Anomaly Guided End-to-End Video Anomaly Detection 论文阅读 Abstract1. Introduction2. Related Work3. Methodology3.1. Architecture3.1.1 Autoencoder3.1.2 Temporal Pseudo Anomaly Synthesizer 3.2. Training3.3. Anomaly Score 4. Experiments4.1.…

【C++ 学习】拷贝构造你了解多少?

文章目录 1. 拷贝构造的引入2. 拷贝构造的引用场景 1. 拷贝构造的引入 拷贝构造函数&#xff1a;只有单个形参&#xff0c;该形参是对本类类型对象的引用(一般常用const修饰)&#xff0c;在用已存在的类类型对象创建新对象时由编译器自动调用&#xff1b; 特征&#xff1a; ① …

arcgis 栅格数据处理2——栅格转地级市(栅格转矢量图)

1. 获取空间分析权限&#xff08;解决无法执行所选工具问题&#xff09; 选中“自定义”中的“扩展模块” 在弹出的模块中选中能选的模块&#xff0c;此处需要选择“spatial analysis”以进行下一步分析 3. 将栅格数据转为整数型&#xff08;解决无法矢量化&#xff09; 选…

MySQL从入门到实战

MySQL从入门到实战 1.连接数据库 在操作数据库之前&#xff0c;需要连接它&#xff0c;输入命令&#xff1a;mysql -u用户名 -p密码。 2.创建数据库 创建完数据库之后我们可以通过show databases;命令查看MySQL中已存在的数据库。[请注意&#xff1a;数据库名区分大小写。] 3…

OpenJDK 目前主要发展方向

Loom&#xff1a;得赶紧解决 synchronized pin 线程的问题&#xff08;据说 Java 23 会解决&#xff0c;现在有预览版&#xff09;。各个 Java 库需要改造原来使用 ThreadLocal 的方式&#xff1a;如果是为了穿参数&#xff0c;则可以使用 ScopedLocal&#xff1b;如果是对象池…