51Testing软件测试论坛
标题:
UI程序各控件如何设计测试用例
[打印本页]
作者:
曹向志
时间:
2005-4-10 10:07
标题:
UI程序各控件如何设计测试用例
我们知道软件测试的本质是针对被测试的内容设计一组测试用例。在整个测试活动中,可以说设计用例是核心。
就象软件测试一样,在开始说软件测试是为了发现程序错误而执行程序的过程。难道验证程序没有错误,不能称为软件测试吗?所以应该更广义地理解软件测试,不管是确认程序没有错误的过程,还是以发现程序错误为目的执行程序的过程,都应看做是软件测试活动。这里的程序错误,说成缺陷更恰当,用错误形容软件中存在的问题并不适当,有很多软件中的问题不能说是错误,这样描述看起来问题好像很严重,这样同开发人员交流起来也容易让人接受,所以本文中,以后都使用缺陷这个词。
关于评价测试用例的说法中,有的说发现缺陷的用例是好的用例。一个好的用例是发现软件中尚未发现的软件缺陷的测试用例。可以说我们设计测试用例的目的大多数是为了发现软件中的缺陷,这也是测试人员的职责,但是别忘了,一个软件同时也需要设计用例来验证程序实现了软件需求所要求的功能,所以说,在评价测试用例时,也不能以发现问题的多少来评价设计的测试用例的质量。
软件测试用例包括很多种,进行功能测试时,设计功能测试用例,在进行性能测试时,设计性能测试用例。单元测试时,设计单元测试用例,在白盒测试中,为了测试分支覆盖率而设计的测试用例。这些都是测试用例,这么多种类型的测试用例,都能设计的出色,不太容易,这往往需要丰富的经验,需要经过实践的积累,建立起故障模型。这故障模型也是就是实践经验积累起来的对特定软件、特定功能、特定情况所具有的测试模式。
下面我们将通过软件测试中各种方面分析设计测试用例的方法。GUI界面可能是作为测试工程师接触最多的测试,这种对界面的测试看起来简单,但是没有周密的设计,就很可能遗漏测试测试用例,因为GUI界面所反映出来的各种控件是通过软件代码来实现的,如果对各种控件的编写越熟悉,越容易设计更多的测试用例。
下面我们分析各种控件应该测试的角度。
静态文本、标签,虽然在各种开发语言中的名称不尽相同,但是其作用都是显示一个静态的、用户不能改变的字符串。
这样最简单的一个控件,看起来好像没有什么可测试的,但是也要考虑以下几个方面:
其所在的位置;包括对齐、文字大小、颜色、显示的边框等与整个界面是否协调。
显示的字符串文字表达是否清晰,有无错别字、显示是否完全,有无多中、英语言混排等。
如果是某些控件的提示,则提示与控件的功能、作用是否一致,有时通过代码可以修改提示,这往往是根据用户的输入或选择来调整的,则检查是否及时的修改的文字。
有时,对静态文本进行了扩展,例如可以称为一个超级链接,链接到一个web窗口。所以还要检查选择前后的链接颜色是否改变等。
文本框的测试。文本框测试是测试中的重点,因为这是系统输入的接口,如何过滤不合法的输入,保证系统的可靠运行是关键,很多的系统在接受了非法输入后,造成系统的瘫痪。都是由于程序员没有处理编辑框的输入造成的,现在开发过程中很强调进行合法性检查,但是如果做到正确地检查是非常不容易的,特别是一些有约束规则,可接受的输入没有规律时,对非法输入进行检查的代码往往是正常处理功能的代码的数倍。测试中主要考虑下面方面:
主要考虑确认测试时,输入一个测试数据,验证正确
再次输入是否发生覆盖
输入中包含特殊的字符、例如空格、\n、不可显示字符后,系统是否处理
需求有限制输入规则,违反这些规则的输入系统是如何处理的
一些隐含的规则,例如:时间、日期、格式等
长度方面的测试,例如:没有输入、输入等于要求长度、超出长度等。
是否支持键盘快捷键,单击鼠标右键是否出来菜单。
支持剪切、复制、粘贴操作否?粘贴的内容中有不符合规则的输入时,是否能够接受?
违反规则后,系统给出的提示是否准确?用户能够理解?按下“确定”按钮后,系统能否回到输入状态(输入焦点)。
命令按钮。该按钮一般是触发一个软件的操作。本身可测试的内容不多,主要考虑控件上的文字、多个按钮的格式、布局是否标准。在单击按钮后,通常需要对其他控件的输入进行检查。还有就是对删除、修改等操作给予确认。按钮按下后,通过判断来决定给用户何种信息,例如在显示数据库表或文件中的数据记录时,后退到文件头,到文件尾都应该给用户提示。
还有就是“取消”按钮,在一个对话框往往是按下“确定”按钮后,进行下一步操作,如果用户在窗口中进行了很多设置或输入,但按下了“取消”按钮,则不应该进行下一步操作。不过有时要提示用户进行确认,是否真的退出或取消,例如,安装过程中的取消。
单选按钮。演示案例。单选按钮通常表示一组相互排斥的选择。例如:选择表示时间的格式、对或错等。在显示单选按钮时,一般都会给用户一个默认的选择,用户可以修改选择,修改后,原来的选中标识要取消。
UpDown控件。演示案例。讲解该控件,提示学员该控件中的编辑框,有时也允许用户输入,此时也要对输入进行检查。还要注意,这种控件一般是循环控制,当显示的数字到达边界时,应该循环回到相反的边界。特殊情况,编辑框中是空白时,按下上、下箭头如何反应。
组合列表框。演示案例,组合列表框通常是列出很多的选项,让用户进行选择。这种控件比较容易测试。有时列表框中的项目是其他模块生成的,项目比较多时,是否容易查找,有无模糊查找功能。有的编辑框允许用户输入,这样相当于一个编辑框,可以按照测试编辑框的方法进行测试。但是同时保证用户的输入是合法的项,是被系统所接受的。
复选框。先演示案例。复选框是一组可以同时选中也可以一个也不选中的控件。测试时要注意这一点。有的复选框也有部分选中的功能,例如在安装软件中,自定义安装时,常常看到这种控件,表示其中包含很多小项,但是没有全部选中。
列表框。先演示案例。列表框与组合列表框有些类似。因为没有编辑框,所以更容易测试。有的可允许用户同时选择多项(拖动鼠标或按下Ctrl功能键)。
滚动条。先演示案例。讲解滚动条的作用。测试滚动条时,注意,滚动块的长度是否与被滚动的窗口中的内容对应,有时,滚动条还没有滚动到最下端,已经全是空白了,这样打开窗口时,往往给用户一个错觉。通过Win32编程的学习,学员知道在使用滚动条时,需要很好编号控制滚动条。
控件组合。这是对前面所讲控件的综合测试设计。很多时候,测试中面对的一个包含多个控件的窗口,如何对窗口中的控件进行组合测试是必须面对的问题。其实很难说有一个规则或规律该如何测试。应该有一个指导原则。
象列表框和组合列表框这些控件中很多项,可以采用等价类划分的方法。
在测试某一个控件时,可以等价类划分和边界值方法。
可以选择或输入控件中的内容后,不断地改变某一个控件中的值,再改变两个控件的值,这样进行组合,以把关键的组合测试完成。采用自动化测试工具可以减少工作量。
象复选框,则要测试都不选中的情况和全部都选中的情况。
单选按钮则要每个按钮都要至少覆盖一次。
而编辑框则需要按前面的方法,其他内容不改变,改变编辑框中内容进行测试。
在测试中主要缺陷的群集现象,当组合到某个控件出错时,要分析该控件出错的原因,是因为该该控件处理上有问题,还是其他控件的值导致该控件出错,这样容易找到定位处理出错的是那个控件。
登录窗口。很多软件都有登录,登录窗口虽然一般只输入用户名和密码,当时需要测试内容还比较多。输入正确的和不正确的用户名和密码,进行测试。密码的字符、长度有无限制。输入错误次数有无限制。特殊字符能否处理?粘贴用户名和密码有什么现象。输入为默认值、空时有什么现象。等等。
控件测试小结。把前面讲解的各种控件进行简单的总结。可以进行适当的扩展,PPT中没有涉及的一些控件,例如静态文本和目录控件等。
主要是打开文件对话框。打开的路径选择,包括本地、网络上的目录。如果用户不是选择的,而是直接输入或粘贴过来的,是否正确。如果提供了打开多个文件类型,则逐一测试要打开的文件类型。打开文件的方式,只读,读写、副本等。取消键、Tab键的作用等。
输入一个不存在的文件;打开一个已经打开的文件;文件被破坏后,能否修复打开;等
因为编程中,一般使用系统提供的打开对话框,程序员要做的只是修改窗口标题、打开文件的类型、一次能否打开一个以上的文件,如果需求说一次可以打开多个文件,测试能否打开上限数目的文件;多个文件能否被打开,以不同的窗口显示等。
保存文件对话框。与打开文件对话框一样,一般开发工具中,都使用同一个模板。程序员要做的只是进行设置。以后测试保存到本地、网络上的目录是否成功;保存时输入的文件名在目录中已经存在,是否提示用户?有些汉化的软件,目录或文件名中能否包含空格或汉字?对文件名的检查一般是操作系统函数完成的,主要取决于系统。有时,打开对话框是编程人员自己编写的,则要考虑的文件名字符、长度等问题了。
关闭对话框可测试内容不多。主要是在关闭前,是否要求用户进行一些操作。例如,编辑的文件提示保存;用户输入进行了很多设置,按下了关闭按钮或菜单,提示给用户否?如IE,关闭后,提示用户是否断开网络,防止用户忘记断开网络等。
打印对话框一般也是系统提供了模板,但也有些是开发人员自己编写的。在测试中考虑打印到本地和打印到网络是否正确;打印是否满足“所见即所得”;打印对话框上有很多的设置,需要逐一进行测试,一些默认值是否合理;设置边界时是否超出边界;打印机错误、没有连接打印机或缺纸时有什么反应等。
作者:
jennie98
时间:
2005-4-12 09:42
好。很详细哦。谢谢阿
作者:
fsyj000
时间:
2007-8-13 12:11
有个问题问你哦,我现在考虑按钮之间的关系,也许你会认为他们之间没有任何关系。例如,单击“删除”,再单击“取消”。之间会产生什么样的信息,或者单击“删除”后,直接单击“关闭”窗口
可能是白盒测试用例的中的路径测试
作者:
zengfanjin5588
时间:
2007-8-19 15:24
楼主辛苦了
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2