Page 9 - 《软件学报》2020年第12期
P. 9

成浩亮  等:一种手绘制导的移动应用界面测试方法                                                         3675


         单击范围内的每个列表项,并递归地单击新出现的界面中随机元素,直到能够产生一个满足测试目标的事件.
             为了进一步简化用户的绘制过程,本文的手绘测试语言进一步引入了逻辑连接符元素图形,它们主要用于
         按照一定的逻辑连接动作集合,以生成更为复杂的逻辑动作步.本文的手绘测试语言定义了 3 种逻辑连接符,分
         别是逻辑连接符“与”、“或”和“非”,其元素图形如图 5(a)~图 5(c)所示.逻辑连接符“与”所连接的多个动作必须同
         时触发;逻辑连接符“或”所连接的动作只需其中之一能够满足测试目标就可以了;而逻辑连接符“非”用于从动
         作序列集中扣除特定的测试动作序列.









                           (a)  逻辑连接符“与”         (b)  逻辑连接符“或”         (c)  逻辑连接符“非”
                                       Fig.5    Sketch of connector elements
                                          图 5   逻辑连接符元素图形

             在手绘元素基础上,本文进一步基于上下文无关文法来精确定义手绘语言的语法,具体如下:









                                    Fig.6    Grammar rulers of sketching language
                                        图 6   手绘测试语言的语法规则

             测试人员在待测应用的界面截图上首先绘制一个动作元素来构建基本动作步,这样的基本动作步只有一
         个动作.他们也可以绘制动作+范围+量词来构成基本动作步,此时的基本动作步由一个可能发生的测试动作集
         来定义.测试人员可以进一步将基本动作步用逻辑连接符元素图形连接起来,形成逻辑动作步.一个逻辑动作步
         定义了测试人员在待测应用的一个特定状态下希望进行的测试步骤.待测应用程序在经过这样的一个逻辑动
         作步之后会跳转到下一执行状态,因此,多个逻辑动作步由‘;’依次衔接即构成一个动作序列,而多个动作序列进
         一步形成动作序列集,并最终成为用户表达其测试意图的手绘图.
             在测试语言的语法中,‘+’‘;’‘,’‘:’分别表示不同含义的衔接符,它们由测试平台支持的用户手势或测试界面
         组件来实现.用户绘制完一个图形后,通过手势或点击一个衔接符来连接下一个手绘图形,以表达手绘图形间的
         关系.这里:符号‘+’用于衔接同一个动作步(包括基本动作步和逻辑动作步)内的手绘图形;符号‘;’用于衔接同一
         个动作序列内的多个动作步;符号‘,’用于衔接整个测试集中的不同动作序列;符号‘:’表示分叉,当有一批测试动
         作序列以相同的子序列开头时,用户可先绘制这一共有的子序列,再由‘:’分叉出各动作序列后续的不同部分.
             例如,当用户以“动作元素+范围元素”定义 A 1 ,A 2 等测试动作集时,用户可以按照测试语言的语法绘制如下
         序列:
                                            A 1 +∀¬a 1 ;a 2 ;…;A 2 +∀                         (1)
             由于 A 1 ,A 2 由“动作元素+范围元素”定义,A 1 +∀和 A 2 +∀代表了由动作元素、范围元素和全称量词元素∀定
         义的基本动作步;a 1 ,a 2 分别表示只由一个动作元素构成的基本动作步;‘¬’代表了逻辑连接符“非”,它将逻辑动
         作步 A 1 +∀和基本动作步 a 1 连接成一个逻辑动作步;最后,符号‘;’衔接了该动作序列中的各逻辑动作步.
   4   5   6   7   8   9   10   11   12   13   14