APP下载

基于TDD方式的图形用户界面GUI实现

2014-12-13刘冠梅

数字技术与应用 2014年8期
关键词:图形用户界面

刘冠梅

摘要:测试驱动开发是一种强调测试先行开发的软件开发方式。本文先介绍测试驱动开发TDD的特点,基于TDD实现图形用户界面的难点主要阐述了测试驱动开发在天大语言TJUL整个图形界面GUI的实现应用,最后对此次TDD实践效果进行评估。相比传统手工测试,采用TDD方式实现GUI是一种有序、效率高的开发方法。

关键词:测试驱动开发 TJUL 图形用户界面

中图分类号:TP31 文献标识码:A 文章编号:1007-9416(2014)08-0171-01

1 引言

现今社会,快速变化和多样性已成为时代的特点。人们寻求各种途径来保证软件的质量。测试驱动开发TDD的出现,将测试工作提高到一个新的高度——测试先于编码。关于TDD的研究及实践大部分集中在德国和美国,在亚洲还没有盛行开来。[1]尽管TDD在国内软件开发行业还没有得到很好的实践和验证,但它至少可能是一个解决当前问题值得尝试的途径。本文先分析测试驱动实现GUI的难点所在及解决办法,然后结合实际采用测试驱动开发TDD方法实现TJUL语言图形化界面GUI,最后对实践效果进行评估。

2 GUI实现

2.1 测试驱动GUI实现的难点

图形用户界面GUI的测试是一种比较特殊的测试。它不完全是对逻辑的验证、对运算结果的判断,还包括很强的与用户的交互性。图形界面被测目标除了包括点击按钮触发事件之类的客观内容外,还有很多是与用户的主观因素紧密结合的:如显示字体的大小、颜色是否美观、比例是否匀称等。GUI测试要求操作的顺序性、规律性强,如层叠的下拉菜单。对于图形界面的实现,若继续按照原有方式来驱动实现,则会导致待显示的GUI内部部件变成外部可存取的。

一方面要保证面向对象设计的数据封装性,另一方面又要满足TDD自动化回归测试要求。鉴于图形用户界面测试的特殊性,需要转换测试策略,改用模拟测试方法,即通过模拟查找、触发本应由传统测试人员手工进行的GUI部件事件:如点击按钮、给文本框输入信息、鼠标双击事件等,从而实现了测试的自动化。

2.2 测试驱动实现GUI

在最高层次上开始测试,应考虑应用程序将做什么而不是考虑单个方法如何实现。通过功能划分进行测试,尽量为它所做的每件事编写测试。

这里以“文件-打开”菜单项操作部分为例,说明如何测试驱动实现图形用户界面GUI。对于打开文件这一项测试任务,需做的测试如下:

测试1:当点击打开菜单项时,当且仅当只弹出一个文件选择对话框,并且对话框为打开类型。

测试2:编辑文本区域置空,结果和错误文本区域回到初始化状态。

测试3:标题、打开的默认路径是否正确,文本字段、确定、取消按钮等部件是否显示得当。

测试4:当从对话框中选择了一文件并点击确定后,文本编辑区能将其内容显示出来,同时文件选择对话框消失。

测试5:当从文本框中输入一文件名并点击确定后,文本编辑区能将其内容显示出来,同时文件选择对话框消失。

测试6:当输入一个不存在的文件时,应弹出一个消息对话框,提示此文件不存在。

测试7:当选择取消按钮之后,将什么也不做,即各个文本编辑区仍为初始状态,同时文件选择对话框消失。

针对上述测试任务集,创建测试用例TestOpenFileItemAction,让它派生自JFCTestCase类,首先在setUp()布置模拟测试环境:

当布置完测试预置环境Fixture后,依据上述测试任务单,编写相应测试方法。例如testTextContents()模拟测试点击打开后,各文本区域是否回到初始态;测试方法testDialogCompents()模拟测试当前是否仅弹出一个文件选择对话框,以及对话框的各个部件是否存在、显示得当;testOpenFromInputFile()模拟测试从文本字段中输入要打开的文件,比较文本编辑区内容是否与源文件匹配;testReadWrongFile()模拟测试从文本字段中输入不存在的文件的情况;testCancel()模拟测试选择取消按钮之后,文本编辑仍为空,并且文件选择对话框立即消失等等。这里列举选择文件的测试方法:

为使编译测试通过,需在图形界面框架类AnalyFrame的初始化工作中增加相应的菜单、监听器及响应菜单事件的处理。等绿条出现测试得以通过后,对代码进行重构。

3 结语

本文先介绍了TDD开发方法的特点,然后结合实际,重点阐述了TDD实现图形用户界面GUI的难点及特殊性,并以一菜单项事件响应功能为例具体介绍如何模拟测试驱动实现整个图形用户界面,最后对此次实践结果进行评估。从评估结果来看,整个测试集的运行在很短时间内就可完成,这比传统手工测试要快很多,而且优势性还体现在后期功能需扩充完善时,无需像传统手工测试一样要重新一步步测试一遍。

参考文献

[1]陈果.基于测试驱动开发的软件测试管理系统的研究[D].北京:中国科学院空间科学与应用研究中心,2004.endprint

摘要:测试驱动开发是一种强调测试先行开发的软件开发方式。本文先介绍测试驱动开发TDD的特点,基于TDD实现图形用户界面的难点主要阐述了测试驱动开发在天大语言TJUL整个图形界面GUI的实现应用,最后对此次TDD实践效果进行评估。相比传统手工测试,采用TDD方式实现GUI是一种有序、效率高的开发方法。

关键词:测试驱动开发 TJUL 图形用户界面

中图分类号:TP31 文献标识码:A 文章编号:1007-9416(2014)08-0171-01

1 引言

现今社会,快速变化和多样性已成为时代的特点。人们寻求各种途径来保证软件的质量。测试驱动开发TDD的出现,将测试工作提高到一个新的高度——测试先于编码。关于TDD的研究及实践大部分集中在德国和美国,在亚洲还没有盛行开来。[1]尽管TDD在国内软件开发行业还没有得到很好的实践和验证,但它至少可能是一个解决当前问题值得尝试的途径。本文先分析测试驱动实现GUI的难点所在及解决办法,然后结合实际采用测试驱动开发TDD方法实现TJUL语言图形化界面GUI,最后对实践效果进行评估。

2 GUI实现

2.1 测试驱动GUI实现的难点

图形用户界面GUI的测试是一种比较特殊的测试。它不完全是对逻辑的验证、对运算结果的判断,还包括很强的与用户的交互性。图形界面被测目标除了包括点击按钮触发事件之类的客观内容外,还有很多是与用户的主观因素紧密结合的:如显示字体的大小、颜色是否美观、比例是否匀称等。GUI测试要求操作的顺序性、规律性强,如层叠的下拉菜单。对于图形界面的实现,若继续按照原有方式来驱动实现,则会导致待显示的GUI内部部件变成外部可存取的。

一方面要保证面向对象设计的数据封装性,另一方面又要满足TDD自动化回归测试要求。鉴于图形用户界面测试的特殊性,需要转换测试策略,改用模拟测试方法,即通过模拟查找、触发本应由传统测试人员手工进行的GUI部件事件:如点击按钮、给文本框输入信息、鼠标双击事件等,从而实现了测试的自动化。

2.2 测试驱动实现GUI

在最高层次上开始测试,应考虑应用程序将做什么而不是考虑单个方法如何实现。通过功能划分进行测试,尽量为它所做的每件事编写测试。

这里以“文件-打开”菜单项操作部分为例,说明如何测试驱动实现图形用户界面GUI。对于打开文件这一项测试任务,需做的测试如下:

测试1:当点击打开菜单项时,当且仅当只弹出一个文件选择对话框,并且对话框为打开类型。

测试2:编辑文本区域置空,结果和错误文本区域回到初始化状态。

测试3:标题、打开的默认路径是否正确,文本字段、确定、取消按钮等部件是否显示得当。

测试4:当从对话框中选择了一文件并点击确定后,文本编辑区能将其内容显示出来,同时文件选择对话框消失。

测试5:当从文本框中输入一文件名并点击确定后,文本编辑区能将其内容显示出来,同时文件选择对话框消失。

测试6:当输入一个不存在的文件时,应弹出一个消息对话框,提示此文件不存在。

测试7:当选择取消按钮之后,将什么也不做,即各个文本编辑区仍为初始状态,同时文件选择对话框消失。

针对上述测试任务集,创建测试用例TestOpenFileItemAction,让它派生自JFCTestCase类,首先在setUp()布置模拟测试环境:

当布置完测试预置环境Fixture后,依据上述测试任务单,编写相应测试方法。例如testTextContents()模拟测试点击打开后,各文本区域是否回到初始态;测试方法testDialogCompents()模拟测试当前是否仅弹出一个文件选择对话框,以及对话框的各个部件是否存在、显示得当;testOpenFromInputFile()模拟测试从文本字段中输入要打开的文件,比较文本编辑区内容是否与源文件匹配;testReadWrongFile()模拟测试从文本字段中输入不存在的文件的情况;testCancel()模拟测试选择取消按钮之后,文本编辑仍为空,并且文件选择对话框立即消失等等。这里列举选择文件的测试方法:

为使编译测试通过,需在图形界面框架类AnalyFrame的初始化工作中增加相应的菜单、监听器及响应菜单事件的处理。等绿条出现测试得以通过后,对代码进行重构。

3 结语

本文先介绍了TDD开发方法的特点,然后结合实际,重点阐述了TDD实现图形用户界面GUI的难点及特殊性,并以一菜单项事件响应功能为例具体介绍如何模拟测试驱动实现整个图形用户界面,最后对此次实践结果进行评估。从评估结果来看,整个测试集的运行在很短时间内就可完成,这比传统手工测试要快很多,而且优势性还体现在后期功能需扩充完善时,无需像传统手工测试一样要重新一步步测试一遍。

参考文献

[1]陈果.基于测试驱动开发的软件测试管理系统的研究[D].北京:中国科学院空间科学与应用研究中心,2004.endprint

摘要:测试驱动开发是一种强调测试先行开发的软件开发方式。本文先介绍测试驱动开发TDD的特点,基于TDD实现图形用户界面的难点主要阐述了测试驱动开发在天大语言TJUL整个图形界面GUI的实现应用,最后对此次TDD实践效果进行评估。相比传统手工测试,采用TDD方式实现GUI是一种有序、效率高的开发方法。

关键词:测试驱动开发 TJUL 图形用户界面

中图分类号:TP31 文献标识码:A 文章编号:1007-9416(2014)08-0171-01

1 引言

现今社会,快速变化和多样性已成为时代的特点。人们寻求各种途径来保证软件的质量。测试驱动开发TDD的出现,将测试工作提高到一个新的高度——测试先于编码。关于TDD的研究及实践大部分集中在德国和美国,在亚洲还没有盛行开来。[1]尽管TDD在国内软件开发行业还没有得到很好的实践和验证,但它至少可能是一个解决当前问题值得尝试的途径。本文先分析测试驱动实现GUI的难点所在及解决办法,然后结合实际采用测试驱动开发TDD方法实现TJUL语言图形化界面GUI,最后对实践效果进行评估。

2 GUI实现

2.1 测试驱动GUI实现的难点

图形用户界面GUI的测试是一种比较特殊的测试。它不完全是对逻辑的验证、对运算结果的判断,还包括很强的与用户的交互性。图形界面被测目标除了包括点击按钮触发事件之类的客观内容外,还有很多是与用户的主观因素紧密结合的:如显示字体的大小、颜色是否美观、比例是否匀称等。GUI测试要求操作的顺序性、规律性强,如层叠的下拉菜单。对于图形界面的实现,若继续按照原有方式来驱动实现,则会导致待显示的GUI内部部件变成外部可存取的。

一方面要保证面向对象设计的数据封装性,另一方面又要满足TDD自动化回归测试要求。鉴于图形用户界面测试的特殊性,需要转换测试策略,改用模拟测试方法,即通过模拟查找、触发本应由传统测试人员手工进行的GUI部件事件:如点击按钮、给文本框输入信息、鼠标双击事件等,从而实现了测试的自动化。

2.2 测试驱动实现GUI

在最高层次上开始测试,应考虑应用程序将做什么而不是考虑单个方法如何实现。通过功能划分进行测试,尽量为它所做的每件事编写测试。

这里以“文件-打开”菜单项操作部分为例,说明如何测试驱动实现图形用户界面GUI。对于打开文件这一项测试任务,需做的测试如下:

测试1:当点击打开菜单项时,当且仅当只弹出一个文件选择对话框,并且对话框为打开类型。

测试2:编辑文本区域置空,结果和错误文本区域回到初始化状态。

测试3:标题、打开的默认路径是否正确,文本字段、确定、取消按钮等部件是否显示得当。

测试4:当从对话框中选择了一文件并点击确定后,文本编辑区能将其内容显示出来,同时文件选择对话框消失。

测试5:当从文本框中输入一文件名并点击确定后,文本编辑区能将其内容显示出来,同时文件选择对话框消失。

测试6:当输入一个不存在的文件时,应弹出一个消息对话框,提示此文件不存在。

测试7:当选择取消按钮之后,将什么也不做,即各个文本编辑区仍为初始状态,同时文件选择对话框消失。

针对上述测试任务集,创建测试用例TestOpenFileItemAction,让它派生自JFCTestCase类,首先在setUp()布置模拟测试环境:

当布置完测试预置环境Fixture后,依据上述测试任务单,编写相应测试方法。例如testTextContents()模拟测试点击打开后,各文本区域是否回到初始态;测试方法testDialogCompents()模拟测试当前是否仅弹出一个文件选择对话框,以及对话框的各个部件是否存在、显示得当;testOpenFromInputFile()模拟测试从文本字段中输入要打开的文件,比较文本编辑区内容是否与源文件匹配;testReadWrongFile()模拟测试从文本字段中输入不存在的文件的情况;testCancel()模拟测试选择取消按钮之后,文本编辑仍为空,并且文件选择对话框立即消失等等。这里列举选择文件的测试方法:

为使编译测试通过,需在图形界面框架类AnalyFrame的初始化工作中增加相应的菜单、监听器及响应菜单事件的处理。等绿条出现测试得以通过后,对代码进行重构。

3 结语

本文先介绍了TDD开发方法的特点,然后结合实际,重点阐述了TDD实现图形用户界面GUI的难点及特殊性,并以一菜单项事件响应功能为例具体介绍如何模拟测试驱动实现整个图形用户界面,最后对此次实践结果进行评估。从评估结果来看,整个测试集的运行在很短时间内就可完成,这比传统手工测试要快很多,而且优势性还体现在后期功能需扩充完善时,无需像传统手工测试一样要重新一步步测试一遍。

参考文献

[1]陈果.基于测试驱动开发的软件测试管理系统的研究[D].北京:中国科学院空间科学与应用研究中心,2004.endprint

猜你喜欢

图形用户界面
Java图形用户界面编程在文本格式化设置系统中的教学研究
图形用户界面外观设计专利保护问题探析——以“奇虎诉江民案”为例
浅谈图形用户界面(GUI)技术专利现状
基于MATLAB GUI的数字图像演示系统的设计
浅谈图形用户界面的保护
图形用户界面法律保护问题与对策
浅析我国GUI外观专利申请现况
sgRNAcas9软件图形用户界面开发及应用
基于Matlab的信号与系统实验平台设计
MiniGUI在基于OMAP5912开发板上的移植