没有合适的资源?快使用搜索试试~ 我知道了~
可在www.sciencedirect.com在线获取理论计算机科学电子笔记314(2015)3-21www.elsevier.com/locate/entcs在移动应用环境中评估基于模型的测试Guilherme de Vala Farto1,2UniversidadeTecnol′ogicaFederaldoParan′a-UTFPRCorn′elioProc′opio,Br asilFundacatechoEducacionaldoMunic'ıpiodeAssis-FEMAInstituto Municipal de Ensino Superior de Assis -IMESA Assis,巴西TOTVSAgroindu'striaAssis,巴西安德烈·远藤武UniversidadeTecnol′ogicaFederaldoParan′a-UTFPRCorn′elioProc′opio,Br asil摘要近年来,便携式设备的普及迅速增长。 由于其数量和多样性为了减少故障的发生并保证更好的质量,需要新的测试方法in mobile移动applications应用. 本文的主要目的是评估基于模型的测试的使用(MBT)构建和实施自动化测试,以验证和验证移动解决方案在Google Android平台上开发。该研究提案由三个问题指导:(Q1)(Q2)移动应用程序?"; 及(Q3)-“在评估流动应用程序时,所产生、实施及执行的模型及测试个案的成效如何?"。从实验评估所获得的结果进行了讨论,并与本研究的问题关键词:自动化测试,移动应用程序,基于模型的测试,Android。1作者感谢TOTVS Agribusiness及其移动单元与本项目的开发合作。特别要感谢UniveradadeTecnol'ogicaFederaldoParan'a(UTFPR-in C o r n 'elio Pr o c' opio ) 、Funda Udad Czechao Educacional do Muni c 'ıpio de Assis( FEMA ) 和Instituto M unexpanded de Ensino Superior de Assis (IMESA ) 的支 持。2电子邮件:guilherme. gmail.com3电子邮件地址:andreendo@utfpr.edu.brhttp://dx.doi.org/10.1016/j.entcs.2015.05.0021571-0661/© 2015作者。出版社:Elsevier B.V.这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。4G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 3141引言当前,移动设备(诸如平板电脑、智能手机和电子阅读器)的普及已经快速增长。根据Gartner对2013年销售的调查[18],Android [3]平台比上一年增长了127%,销量约为1.21亿台。因此,Android在为移动环境开发的系统和应用程序列表中占据了当前市场的领先地位,领先Apple iOS [4]和Microsoft Windows Phone [39] 62%随着移动终端用户数量和多样性的增加,研究新的测试方法对于减少故障的发生,从而保证更好的移动应用质量至关重要。 根据Muccini et[27],移动环境具有直接影响测试活动的特性,例如连接性、有限资源、自主性、用户界面、环境感知、适应性、新的操作系统和编程语言、设置的多样性和触摸屏。应特别注意移动应用程序的测试阶段,以改进测试用例的设计和生成,以及评估可用于验证和确认的方法和工具此外,它必须始终被认为是关注点,如成本,故障检测效率,以及自动化测试用例的能力。在这种情况下,可以应用于测试活动以确保软件质量的技术之一是基于模型的测试(MBT)。根据Utting 和Legeard [37],MBT允许通过基于被测软件(SUT)的预期行为构建的模型自动生成测试用例。MBT是一种具有文献中报道的几个优点的方法,例如自动测试用例生成,故障检测效率,以及减少测试的时间和成本[37][7][19]。本文旨在评估MBT概念在移动应用程序自动化测试的设计和执行中的使用。特别是,研究重点是在谷歌Android平台上开发的移动解决方案以下研究问题已经被定义:Q1-“MBT的概念是否可以在其当前状态下用于验证和确认移动应用程序中的功能需求?”问题2-“在移动应用中采用MBT的结果和挑战是什么?”问题3-“在移动应用程序中生成、实现和执行的模型和测试用例的有效性如何?”.第二部分介绍了MBT和事件序列图(ESG)建模技术的文献综述。第三部分讨论了移动应用程序的测试,并将主要的相关工作置于背景中。第4节描述了研究配置。第五节对实验研究的结果进行了分析和讨论。第6节讨论了对有效性的威胁。最后,第7节给出了结论和未来的工作。G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 31452模型测试软件测试领域有丰富的技术,可以在开发过程中应用,以揭示软件中的错误[28][5]。其中,已经定义了使用SUT的行为或结构模型(也称为测试模型)自动生成测试用例这种方法被称为基于模型的测试(MBT)[34]。模型的采用是由这样的观察所激发的:许多测试往往是非结构化的,不可重复的,没有文档,并且依赖于测试人员MBT可以分为四个主要步骤:(i)建模,(ii)测试生成,(iii)具体化,(iv)测试执行[30][14][9]。在建模中,测试人员使用他/她对SUT的理解来创建测试模型。需求是信息的来源,可以更好地理解被测软件的功能。此外,软件产品包含在一个环境中,该环境呈现多个因素,如操作系统、其他计算解决方案、不同类型的库和其他功能。因此,测试人员需要了解SUT和测试执行环境。虽然建议根据需求创建测试模型,以最大限度地提高模型和SUT之间的独立性[38],但分析和设计的工件也可以用于理解和构建测试模型。测试生成算法依赖于描述测试模型所采用的技术。根据El-Far和Whittaker[14],建模技术必须具有使测试生成更便宜和更容易自动化的属性。在这一步中,一个工具是必不可少的,以支持测试用例的自动生成。测试模型作为输入以及测试选择标准被提交,并且该工具生成一组测试用例。此时,生成的测试用例仍然是抽象的,并且不可执行,因为它们处于与SUT不同的抽象级别。具体化是指将测试用例从抽象的测试用例转化为可执行的测试用例。在本文中,我们假设这一步骤将自动执行[37],因此抽象测试用例通过使用适配器在SUT中解释和执行[30]。在MBT中,适配器是一个软件组件,它在两个抽象模型和SUT级别之间转换输入和输出,使执行抽象测试用例成为可能最后,测试执行是SUT中测试用例的应用,在前一步中执行转换之后。执行后,分析结果并采取纠正措施。如果测试模型指定了输入和输出值,则可以执行自动检查事件序列图(ESG)。为了建立测试模型,可以使用一些建模技术来清楚地表达SUT的需求和功能。预计MBT采用的建模技术是正式的,即,在语法和语义上都有很好的定义[20]。MBT中使用了几种建模技术,例如有限状态机[24],标记转换6G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 314Fig. 1. ESG用于剪切、复制和粘贴文件的过程(改编自[15])。系统[36]和UML [9]。在本文中,SUT的预期行为建模的事件序列图(ESG)。对于这一步,我们采用了ESG技术,因为它很容易表示事件之间的交互,并且很容易理解SUT的需求和功能ESG是一个有向图,用于对软件事件之间的交互进行建模,由表示事件的节点组成,而边是这些事件的有效序列[6][41]。图1显示了一个ESG模型,该模型定义了剪切、复制和粘贴文件过程中的事件和序列。图的元素从图1中的ESG提取的两个可能的完整事件序列如下所示:剪切:[,选择文件,剪切,复制,剪切,剪切,粘贴1,选择文件,剪切,粘贴1,]复制:[,选择文件,复制,剪切,复制,复制,粘贴2,复制,粘贴2,复制,选择文件,复制,粘贴2,]3相关工作尽管软件测试的研究,技术和平台的兴起促进了新的研究课题的创建其中,不仅用于娱乐,而且用于健康、金融和工业等关键领域的移动设备呈指数级增长[27]。Muccini等人[27]提到需要专门的方法来创建移动应用程序的测试,考虑到直接影响测试活动的特征,突出连接性,有限资源,自主性,用户界面,上下文感知,适应性,新操作系统和语言编程,设置的多样性和触摸屏设备。因此,移动应用程序的测试带来了必须克服的新挑战,并且已经在软件工程和移动性领域的科学和技术研究中得到解决[27][12][8][23][21][29][40][22][26][2][10][13]。这些作品可以分为两条线。G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 3147首先,传统的测试技术适用于移动应用。Delamaro等人[12]描述了一种支持移动应用程序的结构测试的策略,该策略通过仿真器和物理设备实现测试执行。他们的方法针对Java Micro Edition平台(J2ME)。然而,在结构测试中,Jensen等人[22]提出了一种旨在自动查找事件序列以执行特定代码行的技术。作者在Android应用程序中评估了该技术。在功能测试中,Bo等人[8]开发了一个名为MobileTest的工具,从基于事件的方法自动化黑盒测试,以简化和改进测试用例的设计在第二条线,研究人员调查的故障特征的移动appli-阳离子和新的测试策略提出了基于这一知识。Maji等人[23]评估了Symbian和Android平台中报告的故障,对发现的故障进行了详细分析,进行了纠正,并对两种操作系统进行了比较。Neamtiu和Hu [21]描述了一种在Google Android上测试应用程序的方法,并强调了用户界面的错误。作者采用了随机测试技术、插装和虚拟机日志分析Pathak等人[29]研究了与Android智能手机上的过度能耗相关的软件故障,并提供了一种自动解决方案,通过使用数据流分析算法来检测这些问题Yang等人[40]提出了一种测试技术,用于识别和量化与Android应用程序中某些事件的过度等待时间相关的故障原因。为了做到这一点,作者依靠在典型的有问题的操作中人为地插入延迟指令。Liu等人[26]描述了Android移动应用程序中常见的一系列性能故障。作者还提出了一个静态分析工具,能够检测故障模式Amalfitano等人[2]指出,移动应用程序测试驱动的用户界面已经越来越多地被探索,并且已经提出了自动化工具然而,他们得出结论,这些支持工具的使用不适合经验不足的开发人员和测试人员。本文提出了一种基于MBT和有限状态机的方法,称之为MANUFACTURGUITAR,它提供了资源,从Android应用程序的图形界面的分析生成的测试用例。在四个开源应用程序中使用了该工具,生成并执行了7,711个测试用例,并检测到10个新的故障[2]。Figueiredo等人[10]提出了一种基于移动应用程序用例规范中定义的交互和行为生成测试用例的技术在后来的研究中,Nascimento和Machado [13]使用标记转换系统研究了探索性测试的使用。许多研究人员研究了移动应用程序的测试技术,重点是Google Android平台。然而,很少有电子邮件已经扩展到解决和评估方法的测试自动化的移动应用程序。因此,本研究的目的是评估MBT和ESG在移动应用程序开发8G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 314对于Android平台。4研究配置本文的目的是评估MBT概念在移动应用程序中的自动化测试的构建和执行中的使用特别是那些在谷歌Android平台上开发的。我们希望拟议的研究提供一些结果,以回答以下研究问题:• (Q1) “Can the concepts of MBT be used in its current state to verify and validatefunctional requirements in mobile• (Q2) “What are the results and challenges identified from adoption of MBT inmobile• (Q3) “How effective were the models and test cases generated, implemented andexecuted这项研究中的实验研究涉及15人,其中包括5名具有Android移动解决方案开发经验的专业人士和10名计算机科学四年级的本科生。实验分为以下小节中所示的步骤4.1选择在Google Android平台上开发的移动应用程序在研 究的 第一 阶段, 我们 选择 了Deitel 等人 提出 的解 决方案 [11] 。这 个名 为“AddressBook App”的项目是一款用于管理联系人的应用 它使用各种资源,例如使用ListActivity列出记录,使用AdapterViews和Adapters自定义可视化组件,多次调用Activity或屏幕,使用SQLite数据库持久化,界面的样式和主题,以及使用MenuIn配置器的菜单。选择AddressBook应用程序的原因之一是它的功能,这些功能在Android应用程序中不断被采用。另一个因素是事件的清晰多样的组成,如这个应用程序的开发是合作进行的,因为有更多知识的participants帮助初学者。而且,群里所有人都能理解需求和应用程序创建设计、安装、实现和手动测试的活动在大约50分钟的时间内完成,可以访问书籍和应用程序图2显示了AddressBook应用程序的两个屏幕。与应用程序的交互主要通过屏幕记录列表、记录选择、应用程序菜单、对话框、输入字段和操作按钮进行。4.2MBT概念介绍和建模技术ESG下一项活动是对参与者进行MBT概念和ESG建模技术培训。一位研究人员提供了解释主要设置的培训G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 3149(a) 联系人列表(b)联系人更新图二. AddressBook应用程序屏幕应用程序:(a)ListActivity与注册的联系人和(b)联系人更新模式下的活动。MBT和ESG的研究、优点和应用。培训进行了大约30分钟。4.3创建ESG测试模型基于先前获得的MBT和ESG知识,人们在这个阶段,15名参与者被分成三组,每组五名成员。因此,我们得到了三个不同视角的测试模型。第1组和第2组由本科生组成,第3组由开发人员组成。该活动按照MBT和ESG培训的顺序进行。建模时间范围为30 - 40分钟。图3、图4和图5显示了三个测试模型。图3显示了第1组开发的ESG模型。该模型包含-传递应用程序的事件,但没有为以下两种场景定义节点(i) 能够在选择记录时显示和通知联系人数据,(ii) 请求删除选定联系人时显示确认对话框的事件。图4显示了第2组开发的ESG模型。该模型是最完整的,因为它包括通知和显示联系人数据的事件然而,该小组也没有考虑通过使用对话消息确认删除现有联系人的事件图5显示了第3组开发的模型。这一群体不包括10G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 314图3.第三章。第1组(CC的五名学生)开发的AddressBook应用程序的ESG模型图四、第2组(CC的五名学生)开发的用于AddressBook应用程序的ESG模型第1组和第2组模型中发现的问题。然而,他们认为当后退按钮被按下时,是包含模式(返回到主屏幕)和(ii)按下更新(返回到显示联系人屏幕)。对这三种模型进行了分析,并设计了一种衍生模型。这样,事件序列被更全面地表示。这是因为三个ESG无法正确确认SUT因此,测试模型的验证是必不可少的,因为MBT方法的质量和有效性直接关系到模型图6示出了统一的G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 31411图五、第3组(CC的五名学生)开发的用于AddressBook应用程序的ESG模型图第六章基于AddressBook应用程序中的要求、功能和事件的统一ESG模型研究人员根据这三种ESG设计的测试模型。双圈节点与决策表相关;图6中有两个名为“Inform contact data”的事件决策表是可以在测试活动中使用的资源[28],并被纳入ESG中,以更好地表示给定事件中输入数据的约束和影响。决策表被定义为一组规则,用于确定必须从测试输入中假设哪些应用程序事件。[15 ]第10段。对于节点“通知联系人数据”,决策表假设如果存在任何故障,则联系人将不会持久。此外,本发明还提供了一种方法,将显示错误通知消息两种可能的故障是(i)12G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 314不正确的价值通知或(ii)缺乏填写字段。4.4根据ESG模型由于学习相关技术的时间有限,该阶段由研究人员进行。我们采用了一个名为TSD4WSC的支持工具。它为ESG建模和生成完整事件序列(CES)提供了图形界面CES是从ESG模型生成的线性序列,帮助开发人员和测试人员获得SUT中预期的事件流程[25]。在MBT中,CES是提供输入事件并分析哪些是预期输出的测试用例。在测试用例的生成过程中,测试模型成为TSD4WSC工具的输入工件,而输出则是一组CES。在生成过程中,生成CES以覆盖测试模型中的所有边。为此,中国邮递员问题(CPP)[1]算法被应用于最小化测试成本。在这种情况下,AddressBook App的ESG测试模型(图6)被用作TSD 4WSC的输入工件。测试用例生成的输出是三个CES,分别有22、7和20个事件要执行。这三个测试用例如下所示:22个事件:[,显示主屏幕,按菜单,按返回,显示主屏幕,选择addContact,通知contactDataR1,按saveContact,Show MainScreen,Select contact,PressBack,Show MainScreen,Select contact,Display contact,PressMenu,Press Back,Display contact,PressMenu,SelecteditContact,Inform contactDataR2,ShowerrorMessage,InformcontactDataR1,Press saveContact,]7个事件: [,Show Main Screen,Press Menu,SelectaddContact,Inform contactDataR2,Show errorMessage,InformcontactDataR1,Press saveContact,]20个事件: [,显示主屏幕,选择联系人,显示联系人,按菜单,选择删除联系人,按后退,显示联系人,按功能表,选择编辑联系人,按返回,显示联系人,按功能表,选择删除联系人,显示确认对话框,选择取消,显示联系人,按菜单,选择删除联系人,显示确认对话框,选择删除,]这些测试用例是抽象的,即,它们不能直接应用于SUT。因此,这些活动需要得到落实。要在Android平台上开发自动化测试,我们可以使用Instrumentation[17]、UIAutoma- tor [35]和MonkeyRunner [17]等原生功能,或者采用集成开发环境,如Espresso [16]、Robolectric [31]和Selendroid [33]。在这一步中,选择了Robotium框架[32]。目前,Robotium被广泛用于G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 31413移动应用程序测试通过提供编写自动化测试的支持。一些优点是:用最少的SUT知识构建测试用例,实现更复杂的测试用例所需的时间短,测试执行和控制更快[17][32]。表 1 简 要 描 述 了 抽 象 测 试 用 例 具 体 化 中 使 用 的 类 和 方 法 ( Robotium 工 具[17][32])表1Robotium测试用例具体化中使用的类和方法的描述指令(类或方法)描述活动仪器测试案例2类,为Android测试com.robotium.solo.Solo类,该类提供在设计和要测试的测试项目public int findDuplicate(int i)发送或模拟按键事件的方法solo.goBack()模拟“后退”按钮事件的方法solo.clickInList(int)方法,该方法模拟组件列表(ListView)上的单击事件getString(int)方法,该方法从表示solo.clickOnMenuItem(String)方法,该方法模拟菜单项的选择solo.clickOnButton(String)方法,该方法模拟单击按钮int getName(int)方法,该方法清除文本字段的内容solo.enterText(String)方法,该方法将字符串分配给文本字段solo. finishOpenedActivities()结束显示的屏幕(活动)的方法图7展示了AddressBookCaseTest类的一个片段,它根据生成的CES定义了实现的方法。 方法Select cancel()和Select delete()具有被省略以来它们的实现方式与Press saveContact()相同。 方法InformcontactDataR1()和InformcontactDataR2()的实现之间也是如此,只改变了输入数据。 方法Select deleteContact()已被省略,因为它是在sim中实现的。类似 于 Select addContact ( ) 和 Select editContact ( ) 。方 法 ShowMainScreen()、Display contact()、ShowconfirmationDialog()和ShowerrorMessage()也被省略,因为它们表示从先前事件启动的状态。例如,注册联系人的数据总是在他在联系人列表中选择之后显示图8示出了TestCaseUti1类,其特征在于执行CES的通用executeTestCase()方法接收AddressBookCaseTest适配器的实例和包含CES的String对象作为参数。 在运行时,AddressBookCaseTest类中的实现方法(表示测试模型的抽象事件)使用Java Referration API动态调用,并执行事件序列。executeTestCase()方法在发现错误时抛出异常,导致测试用例失败。Android项目以及用于验证和确认移动应用程序AddressBook App的已实施Robotium测试用例可在以下网址获得14G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 3141public classTestBit{23私人独奏独奏;45@SuppressError(“unchecked”)6所公立public void run(){7super(AddressBook. class);8}910@public voidsetUp()抛出Exception {12独奏=newSolo(getInstrumentation(),return();13}1415public voidtestCesOne()throwsException {16String cesOne =“[,Show_Main_Screen,Press_Menu,Press_Back,Show_Main_Screen,Select_addContact,Inform_contactDataR1,Press_saveContact,Show_Main_Screen,Select_contact,Press_Back,Show_Main_Screen,Select_contact,Display_contact,Press_Menu,Press_Back,Display_contact,Press_Menu,Select_editContact,Inform_contactDataR2,Show_errorMessage,Inform_contactDataR1,Press_saveContact,]”;1718TestCaseUtil. executeTestCase(this,cesOne);19}2021public voidtestCesTwo()throwsException {//省略了完整的CES22StringcesTwo =“[,Show_Main_Screen,Press_Menu,.,]”2324TestCaseUtil. executeTestCase(this,cesTwo);25}2627public voidtestCesThree()throwsException {//省略了完整的CES28String cesThree =“[,Show_Main_Screen,Select_contact,Display_contact,. ,]”2930TestCaseUtil. executeTestCase(this,cesThree);31}32public voidprintln(){34solo.sendKey(KeyEvent.KEYCODE_MENU);35}36public voidonline(){38solo.goBack();39}40public voidSelect_contact()抛出Exception {sort.clickInList(0);43}44public voidSelect_addContact()抛出Exception {46solo.clickOnMenuItem(solo.getString(R.string.menuitem_add_contact));47}4849public voidSelect_edit()抛出异常{50solo.clickOnMenuItem(solo.getString(R.string.menuitem_edit_contact));51}52public voidonDestination(){54solo.clickOnButton(solo.getString(R.string.button_save_contact));55}5657public voidInform_contactDataR1()throwsException {58for(inti = 0; i 5; i++){solo.clearEditText(i);}59sort(0,“sort”);61solo.enterText(1,“1234”);62solo.enterText(2,“guilherme@gmail.com“);63solo.enterText(3,“Av. 法里亚利马,100”);64solo.enterText(4,“骚Paulo,SP,Brasil”);65}6667岁,public voidonDestination(){69solo.finishOpenedActivities();70}71......这是一个好消息。72个文件夹见图7。AddressBookCaseTest代码类G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 31415public classUncategorized{....public static voidfindDuplicate(Strings,String s) {1234String[] events= cesOne.split(“,”);56publicint findDuplicate(int findDuplicate){<7字符串事件return [index].trim();89方法方法=AddressBookCaseTest。System. out. println();1011if(method!空值){12方法.invoke(classCaseTest);13}14}15}16....17}见图8。 TestCaseUtil代码类https://github.com/guilhermefarto/AddressBookTest4.5使用Robotium执行和收集已实现的测试用例在具体化阶段之后,我们可以直接在SUT中应用Robotium平台实现的测试用例。因此,我们建立了一个Android虚拟设备(AVD)来模拟安装和测试移动应用程序的环境。AVD是Android操作系统的模拟器,也是移动应用程序测试中使用的主要工具,可提供物理设备中也存在的丰富功能集它还可以将设置组合为具有不同大小和质量的屏幕,内存大小和存储[3]。创建了AVD,版本为2.3.3(API级别10)的Android与屏幕的3.2当环境启动时,测试用例将按照CES定义的顺序执行,而仿真器将可视地显示步骤。测试用例的数据,如执行时间和识别的故障,已被收集和分析后完成执行。5结果分析可以回答研究问题Q1(“MBT的概念在其当前状态下是否可以用于验证和确认移动应用程序中的功能需求?”)在实验研究和收集的结果之后,通过陈述MBT测试技术以及ESG建模技术可以用作在Google Android平台上开发的移动应用程序的建模和生成测试用例的有效方法。为了补充回答Q1的陈述,我们注意到使用Robotium平台是具体化和测试的一个有趣的选择,因为它可以快速实现从给定ESG模型生成的测试用例,以及执行可以通过Android模拟器可视化监控的自动化测试。针对不同器械配置16G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 314通过简单地配置AVD是另一个重要的优势。从实验研究中获得的结果可以与研究问题Q2(强调:• 测试用例自动生成:从ESG统一模型简化了使用TSD4WSC工具自动生成测试用例的过程。这样,所有事件都被执行,以确保应用程序的完整测试• 检测故障的能力:本节定位并描述了AddressBook应用程序中的故障,证明了MBT方法在执行已实施的测试用例后在移动解决方案中进行故障检测的能力• 测试质量的提高:由于测试的生成和执行是自动执行的,因此减少了人为干扰。因此,将检查模型中的所有事件序列,并且某些人为因素不会影响测试,例如忘记可能的备选流程、仅验证正确路径或最常见路径• 减少测试的时间和成本:尽管研究中没有进行时间和成本等衡量指标,但我们建议可能减少,因为使用相同的CES可以应用于运行Android的移动设备的几种配置,避免重复进行手动测试• 测试模型的演变:测试模型通常需要更新,以更好地表示移动应用程序中的事件,并满足不断变化的需求。这种演化以一种简单的方式发生,并且一旦测试用例的更新版本可以在某些更改后重新生成,测试的维护成本就会降低该实验研究还确定了在移动应用程序中使用MBT的一些挑战,这些挑战与研究问题Q2有关• 测试建模中的困难:测试模型的设计可能是一项复杂的活动,因为它需要通过图表对事件进行建模的知识,并需要对SUT的需求和流程有全面的理解• 移动环境中测试用例具体化的特殊性:我们需要考虑移动应用程序环境的一些特殊性,例如设备上的物理按钮,如返回按钮,搜索按钮和返回按钮,屏幕之间的转换以及事件驱动的屏幕。还有其他功能(超出了本文的范围)可以考虑,例如连接性、数据网络、电话、使用GPS等传感器进行地理定位以及与Web应用程序的• Robotium知识:负责具体化的测试人员应了解Robotium平台及其API为了创建识别给定移动应用程序的功能和流程的测试模型(图6),使用了23个节点(事件)和33条边。使用TSD4WSC工具,我们获得了三个CES,覆盖了G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 31417AddressBook应用程序的ESG模型每个序列的长度(事件数)分别为22、7和20个事件在指定配置下,执行时间分别为163.7s(第一次CES,22个事件)、56.8s(第二次CES,7个事件)和79.3s(第三次CES,20个事件)。 总的来说,测试套件运行时间为299.8秒(约5分钟)。我们不 执行时间可能很长,因为用Robotium实现的CES在仿真器中可视地示出。然而,这种功能具有其优点,例如可以监视自动执行的事件的整个流程表2显示了SUT(AddressBook App)和AddressBook App测试应用程序(AddressBookTest)的代码行(LoC)和McCabe循环复杂度。如前所述,平均值、标准差和最大圈复杂度值在AddressBook App和AddressBookTest项目之间保持接近。 通过从 TestC aseU til 中 实现泛型方法executeTestCase()来证明值的这种接近性课 此方法负责动态执行生成的CES。怎么--需要强调的是,通用方法可用于更复杂的测试,即,具有大量事件和更全面测试用例的序列。然而,只需要为将要测试的Android应用程序表2数据整合移动应用具体化数据分析LoCMcCabe圈复杂度平均SD最大地址簿应用程序4161,220,4973地址簿测试1241,230,5163发现与数据验证相关的故障这一事实是研究问题Q3(“在评估的移动应用程序中生成、实现和执行的模型和测试用例的有效性如何?”)的初步证据这四种故障描述如下:• (1)它允许插入和更新联系人只通知联系人• (2)它允许通过通知数值(例如,“1234”) 在这种情况下,故障#1仍处于活动状态• (3)它允许包含具有冗余数据的联系人。例如,可能存在具有相同姓名或电子邮件的联系人• (4)它缺少指示某些无效数据的错误消息(对于故障#1、#2和#3)我们强调,评估的应用程序是简单的,具有学习目的。因此,在[11]中所示的原始项目中可能不考虑此类故障。然而,测试模型和生成的测试用例能够揭示一些错误,18G. de Escheria Farto,A.T.Endo/Electronic Notes in Theoretical Computer Science 314需要更多的实验研究6有效性的威胁本文提出的研究是为了评估MBT在流动性方面的适用性。研究
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功