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(字体颜色为红色)。
【实例】使用自动化测试工具 QuickTest Professional 测试图 15-20 中 OK 按钮的属性。
图 15-20 易用性测试对象实现的代码如下:
'———————————————————————————————————
' 函数名:CompareText
'
' 目的:比较预期结果和实际结果单元格的值是否相同
'
' Parameters:
' sheetname:待比较的 sheet
' expectColumn:预期结果列
' actualColumn:实际结果列
' startRow:比较的开始行
' numberOfRows:共需要比较多少行
' trimed:单元格中的值是否包含空格符
' Date: 2011-11-27
'———————————————————————————————————
Function CompareText(sheetname, expectColumn, actualColumn, startRow,
numberOfRows, trimed)
Dim returnVal
Dim cell
returnVal = True
'判断 sheet 对象是否为 nothing
If sheetname Is nothing Then
CompareText = False
Exit Function
End If
'循环读取单元格中的值
For r = startRow to (startRow + (numberOfRows - 1))
Value1 = sheetname.Cells(r, expectColumn)
Value2 = sheetname.Cells(r, actualColumn)
'空格符去掉后再进行比较
If trimed Then
Value1 = Trim(Value1)
Value2 = Trim(Value2)
End If
'比较两个数据是否相等,如果相等将结果标为 PASS 并将字体置为绿色,否则将结果标为 FAIL 并将字体置为红色
Set cell = sheetname.Cells(r,actualColumn+1)
If Value1 <> Value2 Then
sheetname.Cells(r, actualColumn+1).value = "FAIL"
cell.Font.Color = vbRed
returnVal = False
else
sheetname.Cells(r, actualColumn+1).value = "PASS"
cell.Font.Color = vbGreen
returnVal = True
End If
Next
CompareText = returnVal
End Function
Set ExcelApp = CreateObject("Excel.Application")
Set ExcelSheet = CreateObject("Excel.Sheet")
Set myExcelBook1= ExcelApp.WorkBooks.Open("c:\1.xls")
Set myExcelSheet1= myExcelBook1.WorkSheets("Sheet1")
Dialog("Login").WinEdit("Agent Name:").Set "test"
Dialog("Login").WinEdit("Password:").SetSecure
"4ed2314da546f1e8280d3586032611a53dfbed13"
myExcelSheet1.Cells(2,4).value =
Dialog("Login").WinButton("OK").GetROProperty("text")
myExcelSheet1.Cells(3,4).value =
Dialog("Login").WinButton("OK").GetROProperty("nativeclass")
myExcelSheet1.Cells(4,4).value =
Dialog("Login").WinButton("OK").GetROProperty("width")
myExcelSheet1.Cells(5,4).value =
Dialog("Login").WinButton("OK").GetROProperty("height")
myExcelSheet1.Cells(6,4).value =
Dialog("Login").WinButton("OK").GetROProperty("visible")
myExcelSheet1.Cells(7,4).value =
Dialog("Login").WinButton("OK").GetROProperty("enabled")
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Close
CompareText myExcelSheet1,3,4 ,2,6,False
myExcelBook1.save
ExcelApp.Quit
Set myExcelSheet1= nothing
Set myExcelBook1= nothing
Set ExcelApp = nothing
Set ExcelSheet = nothing
测试完成后的结果见表 15-4。
图 15-4 易用性自动化测试结果上例只是一个比较简单的易用性测试自动化的实现过程,在实际工作中可以对该方法进行一定的完善,进一步提高易用性测试的效率。