周口职业技术学院 楚书来
基于GUI的测试用例设计与案例分析
周口职业技术学院 楚书来
对于GUI(图形用户界面)软件测试,即使能通过一定的覆盖准则使测试集中到GUI的某个部分,但是由于测试用例状态空间巨大,要为所有这些选定的部分产生测试用例也不太现实。如何产生大小合适的GUI测试用例集,使测试用例能尽可能覆盖所有GUI对象的不同情况,是当前人们普遍关注的一个问题。本文,笔者结合具体的案例,对GUI测试过程进行论述,以期为同行提供参考。
1. GUI测试特点 。
(1)与其他同类软件相比,软件对用户更加友好。
(2)可以涵盖整个应用。
(3)可以采用捕获、回放技术生成GUI测试脚本。
2. Windows窗体构成部件。Windows窗体通常由三层结构构成,即表达层、交互层、数据层;一般Windows窗体构成部件有按钮、混合框、对话框、标号、菜单和文本框等。
1. 窗体的测试设计。在对窗体进行测试时,重点考虑的问题有:窗体大小是否合适,控件布局是否合理;移动窗体、快速或慢速移动窗体时,背景及窗体本身刷新是否正确;缩放窗体时窗体上的控件能否随窗体大小的变化而变化;窗体在不同分辨率的条件下,显示是否正常。
2. 菜单的测试设计。在对菜单进行测试时,重点考虑的问题有:选择菜单是否可以正常工作,是否与实际执行内容一致,是否有错别字;快捷键、热键设置是否重复,操作是否有效;是否存在中英文混合;菜单是否与语境相符,如,登录同一个应用程序,不同权限或级别的用户应看到不同级别的菜单,并使用不同级别的功能;鼠标右键是否包括快捷菜单。
3. 文本框控件的测试设计。在对文本框控件进行测试时,重点考虑的问题有:能否输入正常的字母或数字、已存在的文件名、超长字符、默认值、空白、空格;若只允许输入字母,尝试输入数字后,结果显示是否符合设计要求,反之,尝试输入字母;利用复制、黏贴等操作强制输入程序不允许的输入数据或输入不符合格式的数据时,结果显示是否符合设计要求;输入特殊字符集或超过文本框长度的字符、文本时,所输入的内容显示是否正常。
4. 按钮控件的测试设计。在对按钮控件进行测试时,重点考虑的问题:点击按钮能够正确响应操作;对非法的输入或操作给出足够的提示说明;对可能造成数据无法恢复的操作必须给出确认信息,给用户放弃选择的机会。
5. 组合列表框、复选框、列表框控件的测试设计。在对组合列表框、复选框、列表框控件进行测试时,所要考虑问题与文本框的基本相同,不再重复描述。
6. 滚动条控件的测试设计。在对滚动条控件进行测试时,重点考虑的问题:使滚动条的长度根据显示信息的长度或宽度及时变换,便于用户了解显示信息的位置和百分比;拖动滚动条,检查屏幕刷新情况,并查看是否有乱码;单击滚动条;用滚轮控制滚动条;滚动条的上下按钮。
7. 各种控件在窗体中混合使用时的测试设计。在对各种控件在窗体中混合使用时的测试设计进行测试时,重点考虑的问题有:控件间的相互作用是否合理;Tab键的顺序设置(一般是从上到下,从左到右)是否合理;热键、Enter键和Esc键能否正常使用。在测试中,应遵循由简入繁的原则,先进行单个控件功能的测试,确保功能实现无误后,再进行多个控件的功能组合的测试;对密码输入框进行测试时要注意进行字母大写输入的测试。
以某工资支付系统登录界面为例,该界面包含2个文本框控件、1个按钮控件、1个复选框控件以及多个Label控件。接下来对每个构成部件分别进行考查。该系统登录界面如图1所示。
1. 根据测试设计需要对文本框控件加以考虑的因素。
(1)需要考查的属性。包括字体、选中的文本、文本以及文本长度有无异常。
(2)需要测试的事件。包括单击、KeyDown、KeyUp和Key-Press、文本改变等事件响应是否正常。
(3)设计的用例还应包括的内容。输入正常的字母或数字、超长字符时,程序能否正确处理;输入默认值、空格,程序能否正确处理;若员工ID只允许输入数字,尝试输入字母,查看程序处理结果是否正确;输入特殊字符集如NULL及 等时,程序能否正确处理。
2. 根据测试设计需要对“登录”按钮控件加以考虑的因素。
(1)考查的属性包括文本、启用,考查按钮对象中最重要的事件,如单击、双击。
(2)设计的用例还应包括以下内容:点击按钮能够正确响应操作;对非法的输入或操作给出足够的提示说明,如输入错误员工ID和密码有出错提示;对可能造成数据无法恢复的操作必须给出确认信息,给用户放弃选择的机会;用户第三次使用错误的密码登录,将导致系统被锁定。
3. 根据测试设计需要对复选框控件加以考虑的因素。checked属性值在控件被单击后,能否从假变成真,或者从真变成假; 执行该复选框的功能,选中后是否可以保存信息,下次登录不用重新录入。
4. 根据测试设计需要对多个Label控件加以考虑的因素。考查以下属性:大小、文本、字体、颜色、位置和可见性,观察这些属性有无异常。
现代计算机应用中,GUI软件占据日趋重要的地位,但对这些软件的测试存在形式化程度低、规范性差和缺乏客观测试评判标准等问题。这类问题通常由测试人员根据设计书、凭借经验设计测试用例来解决,具有随机性大、错误检验能力低的缺点,因此,研究基于GUI的测试技术具有重要的现实意义。