|
|
|
|
移动端

2.3.7 GUI设计与等价类

《软件测试基础教程》第2章基于需求的测试生成,本章主要介绍从非形式化或形式化定义的软件需求生成测试集的技术。这些技术,有的可以自动地执行,而大部分则需测试人员付出艰辛的劳动,特别是在测试大型软件时。本章所介绍的大部分测试技术属于黑盒测试,因为生成测试集时不需参考被测软件的源代码。本节为大家介绍GUI设计与等价类。

作者:王峰/郭长国/陈振华 等译来源:机械工业出版社|2011-09-17 21:23

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


2.3.7 GUI设计与等价类

被测软件的整体设计对测试用例的选择有很大影响。在GUI出现之前,绝大多数软件是通过键盘以文本方式输入数据的;在更早的时候,则是使用穿孔卡片完成数据输入的。今天的大多数软件系统,无论是新开发的还是改版升级的,都拥有丰富的GUI,使用户与其交互较之以前更方便、安全。因此,在设计测试用例时,需要考虑前端应用系统的GUI对输入数据的限制。

当对一个完全通过键盘获取输入的软件进行等价类划分时,需要考虑所有可能出现的错误输入数据。举例来说,假设软件A的需求对其输入变量x的约束为:x仅为区间[0,4]中的整数值。有时,用户以为软件具备对错误输入的检测和处理能力,从而在不经意的情况下向x输入超出[0,4]范围的非法值,而实际上软件不具备这种能力,于是这样做的结果是导致软件失效。因此,在利用等价类划分进行测试用例选择时,至少需要对x的3个值进行测试,一个为正常范围内的值,另两个分别为区间两边外的值,即需要x的3个等价类。图2-6a说明了这种情况,图中输入域的“非法值”部分就是x在区间[0,4]两边外的值。

 
图2-6 精心的GUI设计能实现对输入域的限制。在对软件输入域进行等价类划分时,
需要充分考虑GUI在软件输入过程中所起的作用。如图中b)和c)所示,其中,
GUI-A能够阻止所有的变量接受非法输入;GUI-B允许部分变量接受非法输入

假设软件A的所有数据输入都由前端GUI完成,同时还假设该GUI精确地向用户提供了x的5个正确取值选项。在此情况下,利用x的非法值对A进行测试是无法进行的,因为A只可能接收到x的正确取值,图2-6b说明了这种情形。

当然,测试人员可以将软件的GUI与软件内核分离出来,然后分别利用x的合法值和非法值对内核部分进行测试。但是,这种通过输入x的非法值而发现软件错误的意义并不大,因为正如开发人员所主张的那样,在实际中GUI会避免软件内核接收到这些非法输入。因此,在这种情况下,不需要定义包含输入变量非法值的等价类。

在有些情况下, GUI要求用户在文本框中输入变量的值。此时,一定要使用变量的一个或多个非法值对软件进行测试。例如,在测试软件A时,建议测试人员至少对x的3个值进行测试,一个为正常范围内的值,另两个分别为区间[0,4]两边外的值。如果软件A针对[0,4]中的不同整数输入值运行结果不一样,则需要分别对[0,4]中的各个整数输入值进行测试,同时还要至少在区间[0,4]两边外各取一个值进行测试。当然,当软件A的GUI能够阻止用户输入非法值时,则在测试用例中没有必要包含变量的非法输入值。图2-6c说明了这种情况,非法值子集1不需要作?馐杂美欠ㄖ底蛹?必须作?馐杂美葱小?

以上讨论形成这样的结论:设计测试用例时必须考虑GUI的具体实现。在有些情况下,测试设计受GUI设计所左右。例如,GUI的设计过程可能要求GUI尽可能地只提供输入变量的合法值。当然,需要单独针对这些需求对GUI进行测试。前面介绍的热水器温控软件的例子说明,如果GUI阻止了非法输入进入被测软件,测试用例的数量将极大地降低。

需要指出的是,热水器温控软件测试用例的生成过程是建立在GUI被正确实现并能阻止非法输入基础之上的。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

C#高级编程(第4版)

C#经典名著!2006年最受读者喜爱的十大技术开发类图书!也是Wrox红皮书中最畅销的品种之一,从第一版开始就名满天下;其第3版被中华读书报...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊