基于图像理解的众包测试报告抽样分析烟研究计算机科学与技术专业.docx
摘要1Abstract2前言3第一章绪论41.1 研究背景及意义41.2 研究内容概述61.3 本文的主要工作71.4 本文的组织结构8第二章相关工作与理论基础92.1 众包测试技术92.2 测试报告分析技术102.3 图像处理技术112.4 抽样技术122.5 本章小结13第三章众包测试报告抽样分析流程143.1 问题描述143.2 文本处理15321提取关键词153.2.2文字距离163.3 截屏处理163.3.1 图像理解17332截屏距离173.4 混合距离183.5 聚类193.6 抽样193.7 本章小结20第四章实验结果与分析214.1 实验设置214.2 实验结果214.2.1 评价标准224.2.2 对比结果224.3 实验分析244.4 本章小结25第五章总结与展望275.1 本文总结275.2 后续工作展望28参考文献29致谢错误!未定义书签。摘要众包测试可以通过模拟真实使用场景的方式,提供真实用户反馈,达到全面可靠的错误检测。缺陷报告是描述软件缺陷的重要软件构件,由于程序员很难编写没有任何缺陷的程序,所以在软件开发过程中,发现和修正缺陷是很有必要的。在众包软件测试中,检查大量的测试报告是一项工作量很巨大但又不可避免的软件维护任务。在移动测试领域,测试报告通常包含更多的屏幕截图和更短的描述性文字,由于文本信息不足,以及自然语言的模糊性,重现缺陷的文本描述可能会被编写的不明确甚至是误导,通过截屏辅助移动众包测试技术具有深远的研究意义。通过查阅相关文献,了解了相关技术的研究现状,本文提出了一种分析测试报告的方法,即在原本对文本描述进行处理的基础上,加入基于图像理解的技术对众包测试报告进行聚类,并在聚类的类簇中进行抽样,进而帮助开发人员更高效地发现报告中描述的移动应用中的错误。本文选取了华为运动等多个移动应用的测试报告,对其进行抽样分析,并设计了文本聚类、截屏聚类、文本和截屏的混合聚类以及随机情况下四种不同抽样基准的对比实验。通过对实验结果的观察分析,可以肯定的是,对测试报告中的屏幕截图进行处理是一项很有意义的工作,随着移动应用的普及,图像已经成为了十分基本的信息源之一。关键词:众包测试;测试报告;图像理解;抽样技术AbstractCrowdsourcingtestscanproviderealuserfeedbackbysimulatingreal-worldusagescenariostoachievecomprehensiveandreliableerrordetection.Bugreportsisanimportantsoftwarecomponenttodescribesoftwarebugs.Becauseprogrammerscan'twriteprogramswithoutanybugs,intheprocessofsoftwaredevelopment,itisnecessarytofindandcorrectbugs.Incrowdsourcingsoftwaretesting,checkingalargenumberoftestreportsisahugebutinevitabletaskofsoftwaremaintenance.Inthefieldofmobiletesting,testreportsusuallycontainmorescreenshotsandshorterdescriptivetext.Becauseofthelackoftextinformationfortestreports,alsobecauseoftheambiguityofnaturallanguageandthedescriptionofthereproducingbugsthatcanbewritteninambiguousorevenmisleading,itisofgreatsignificancetostudythetechnologyofcrowdsourcingbyscreen.Byconsultingtherelevantliteratureandrealizingtheresearchstatusofrelatedtechnologies,thispaperpresentsamethodforanalyzingtestreports.Thatis,onthebasisoftheoriginaldescriptionofthetext,introducingimage-basedtechnologytoclustertestreportsandsamplinginclustercluster.Thisinturnhelpsdevelopersmoreefficientlyfindbugsinthemobileapplicationsdescribedinthereport.Inthispaper,thetestreportsofmobileapplicationssuchasHuaWeiareselectedandanalyzed.Wedesignthecomparisonexperimentoffourdifferentsamplingbenchmarksofthemixedclusteringoftextclustering,screenshotclustering,textandscreenshot,andrandom.Throughobservationandanalysisofexperimentalresults,thereisnodoubtthat,handlingscreenshotsinthetestreportisaworthwhileeffort.Withthespreadofmobileapplications,imageshavebecomeoneofthemostbasicsourcesofinformation.Keywords:CrowdsourcingTest;BugReports;ImageUnderstanding;SamplingTechnique众包技术目前已经被广泛应用于软件工程领域。众包是指,将原本应该由公司内部员工完成的工作任务,以自由自愿的形式包给非特定的大众网络的做法,这为个人和商业提供了一种利用互联网上大量人力资源来解决问题的新途径。采用众包技术,可以向开发人员提供真实用户的信息和操作,并且这些用户提供的数据是来自于真实、多样的软件和硬件平台上执行的任务。也正是由于众包测试的这一特性,会以大量的用户群为基础,产生的测试报告数量亦将是一个庞大的数字。尽管大量的测试报告有助于提高软件的质量,但是分析这些测试报告也是一个非常具有挑战性的任务,开发人员也就有必要寻找更好的发现缺陷、确定有用信息的方法。在过去的几十年里,软件工程的研究人员提出了许多处理方法。大多数关于测试报告分析的工作会关注如何对测试报告进行有效的预处理,如重复测试报告的识别、测试报告分类等。在几乎所有的这些方法中,都是根据测试报告的文本相似性”或是执行轨迹一进行捕获和分析的。然而对于移动应用众包测试的报告来说,由于在移动平台上截图比打字更方便,测试人员往往会在测试报告中包含更多的截屏而使描述性的文字更简短。本文提出了一种方法,即通过一种基于图像理解的技术对移动应用众包测试的报告进行聚类,在聚类的类簇中进行抽样,进而帮助开发人员更快地处理测试报告,从中更高效地发现移动应用中的错误。通过将数个移动应用的测试报告作为样本,进行文本聚类、截屏聚类、文本和截屏的混合聚类以及随机情况下这四种不同抽样基准的对比实验,以检测到的故障的平均百分比(APFD)作为评估标准,验证了这种方法的优势。可以发现,随着移动应用越来越普及,图像已然成为一种十分基本的信息源,截屏在移动应用众包测试的报告中举足轻重。第一章绪论本章首先介绍了众包测试报告抽样分析的研究背景和意义,其次简单介绍了基于图像理解的众包测试报告抽样分析的研究内容,并概述了本文所做的主要工作,在本章的最后介绍了本文的组织结构。1.1 研究背景及意义随着移动应用的普及,由于众包测试能够在短时间内提供反馈,提高移动应用的可用性和质量,应用众包测试己经成为一种十分流行的方法。众包技术的一个关键优势是,它们可以向工程师提供真实用户的信息和操作,而这些用户提供的数据来自于真实、多样的软件和硬件平台上执行的任务。例如,众包测试(如beta测试)可以为大量用户、硬件和操作系统提供验证数据。这样的好处对于移动应用程序测试来说是十分理想的,因为它通常需要快速的开发和部署迭代,并且支持许多移动平台。此外,众包移动测试可以为开发人员提供真实用户的反馈、新特性请求和用户体验信息,这些信息很难通过常规的软件测试实践获得。基于这些原因,在过去的5年里出现了一些较为成功的众包移动测试平台(如uTest,Testin)o众所周知,软件维护活动通常是十分昂贵且具有挑战性的。在具体的实践中,移动众包测试的目标是通过充分利用庞大的劳动力来提供真实用户的反馈,众包测试报告的数量往往会很多,如图1.1和图1.2,显示了APaChe和ECIiPSe两个软件项目在2013年的连续时间段里,每天的测试报告提交和处理的相关数据。可以发现,在众包测试中,存在着大量的测试报告需要开发人员进行分析和处理。如何有效地处理测试报告并发现其中描述的缺陷,对于在移动应用程序中应用众包测试来说,是一项关键的挑战。并且这也使得众包测试涉及到许多终端用户,他们的软件工程知识差异可能会很大。在这种情况下,对于开发人员来说,重现缺陷的文本描述可能会被编写得很糟糕(甚至是误导),而对屏幕截图信息进行分析处理,可以有效提升对移动众包测试报告的理解。测试报告的数量图1.2EdiPSe每天提交和处理的测试报告数量与桌面软件或网络软件的测试报告相比,移动应用程序的测试报告中所包含的文本描述更短。对于移动测试来说,屏幕截图比手动键入长段的文本描述要方便的多,因此记录者通常更倾向于提供简短的文字描述而在报告中添加活动视图的必要截屏。在这种情况下,图像对于众包测试报告的理解有着重要的作用,在对文本信息进行处理的基础上,加入图像的分析处理,能够在一定程度上帮助开发人员更快更高效地发现测试报告中报告的缺陷信息。在软件工程领域,与自然语言处理(NLP)技术相比,图像分析和理解技术很少被研究和学习,这些技术旨在分析文本信息,并被广泛应用于协助各种软件工程任务。图像理解是计算机视觉领域的一个重要问题。由于匹配算法必须考虑到缩放、光照和旋转等因素,图像匹配真实对象尤其具有挑战性。幸运的是,在本文的相关工作中比较的图像是由不同设备的不同应用程序所呈现的应用程序视图的屏幕截图。本实验针对具有至少一张图片的测试报告,捕获了文本和图像信息,测量了这些部分之间的相似性,在此基础上进行聚类和抽样,目的是帮助开发人员更快地发现移动应用中存在的错误。在众包移动应用测试的场景下,传统的缺陷报告分析理解技术不能很好地适用,已有少数研究学者开始关注如何结合移动众包测试的特性,研究对应的缺陷报告分析和理解技术,这也逐步成为研究的热点。1.2 研究内容概述对于众包软件测试,在实践中,测试报告中会存在各种形式的多媒体信息,例如语音信息和简短的操作视频。但根据以往的经验来看,在这些信息中,文本描述和屏幕截图是被最广泛使用的两种。对于众包的移动应用测试来说,测试人员则更倾向于针对移动应用的特性,使用更容易捕捉的完整的活动视图的截屏来描述错误。于是,在本文中,我们将重点放在移动屏幕截图的处理上。我们假设每个测试报告只包含两个部分:一段文字描述和一组截屏。于是在每个移动应用的测试报告中设定R(r)=r(Si,Ti)i=0./,其中,S表示屏幕截图(即图片),T表示描述错误和操作步骤的文本。其中,每个测试报告通常会包含多个屏幕截图,也就是说,对于测试报告后的屏幕截图S,我们设S=S同2,.,s加“其中即表示测试报告方的第/个截图。对这两部分分别进行处理:(1)文本的处理工作包括提取关键词和计算距离构造距离矩阵;(2)截屏的处理工作包括图像理解并得到距离矩阵;对于文本的分析,自然语言处理技术可以帮助完成很多任务;对于截屏的分析,本实验使用了空间金字塔匹配(SPM)技术来测量屏幕截图的相似性;同时,采用了Jaccard距离来分别度量测试报告集R中的文本描述之间和截屏之间的差异。在对文本描述和屏幕截图分别进行处理之后,本实验将它们的距离结合起来,应用平衡公式形成一个混合距离矩阵。在本次对比试验中,我们对三种距离矩阵依据一定的阈值进行聚类,完成聚类之后,可以得到一个报告类簇,我们希望这个报告类簇可以表达一类错误。最后使用随机抽样的方式对每个报告类簇进行抽样,抽样的循环方式为反复遍历所有类簇,抽样的终点为所有的错误类型被发现。最后,本文使用了APFD这一度量标准,即检测到的故障的平均百分比。这是测试用例优先化技术的最广泛使用的一种评估指标,用来衡量本次对比实验中技术的有效性。通过对实验结果进行分析,可以发现,一般来说,与仅仅基于对文本的处理的移动众包测试相比,图像理解技术能够提高对测试报告处理的效率,能够更快地发现移动测试报告中的缺陷。1.3 本文的主要工作本文提出了一种基于图像理解的众包测试报告抽样分析的方法。到目前为止,还没有一项工作能很好地解决使用屏幕截图的测试报告的问题,尤其是众包测试中的移动应用测试报告。大量的工作人员更倾向于用直接的截图和简短的描述来重现缺陷,与此同时,开发人员也对屏幕截图更感兴趣,而不是查看报告者的自然语言描述。但是,由于图像理解的复杂性,匹配真实世界对象的图像尤其具有挑战性。幸运的是,在本文的研究内容中,这一问题得到了改善,我们比较的图像是由不同设备的不同应用程序所呈现的应用程序视图的屏幕截图,存在的主要问题是图像界面中的元素的变化。比较两个图像的基本技术是比较它们的直方图,图像的特征直方图能表示图像中某一特性的值的分布。特别地,图像的颜色直方图可以代表图像中颜色的分布,显然,如果两个图像是相同的,它们的颜色分布也会互相匹配。虽然反过来是不正确的,即两个不同的图像也可能会有相同的直方图,但是这个问题在本文的对比实验中并不是特别重要。本文提出的对比实验,是对基于文本、基于屏幕截图以及基于二者混合和随机的情况进行了抽样分析。对于文本分析,我们使用了自然语言的文本分析技术来度量测试报告中文本描述的相似性,得到了文本的距离矩阵;对于图像分析,我们使用了SPM技术来测量屏幕截图的相似性,也得到了图像的距离矩阵;对于二者混合的情况,应用了平衡公式,得到了混合距离矩阵。在本次实验中,我们对一些移动应用(如HuaWei,MyListening的众包测试报告进行了对比抽样分析实验,为了评估四种不同的抽样样本的有效性,本文使用了APFD度量。本文通过实验得出如下结果:(1)屏幕截图在移动应用程序的测试报告中至关重要,它可以显著提高开发人员从测试报告中获取缺陷信息的效率;(2)对于某些类型的移动应用程序,本文提出的方法相对于只对文本处理的技术有着显著的优势,即混合距离和图像距离聚类抽样后的APFD值优于文本距离聚类抽样的APFD值,也优于随机情况。考虑到所有的实验结果,可以发现图像理解技术可以为众包移动测试报告的分析提供优势,并且这种混合文本和图像的方法所展现的优势也为后续的研究带来了希望。1.4 本文的组织结构本文共分为五章,各章内容安排如下:第一章:绪论。本章介绍了课题的研究背景及意义、基于图像理解的众包测试报告抽样分析的主要研究内容、本文的主要工作及工作结果,最后介绍了本文的组织结构。第二章:相关工作与理论基础。本章详细阐述了众包测试技术、测试报告分析技术、图像处理技术、抽样技术的研究方向和发展现状,继而论述了目前存在的问题以及后续可能的发展方向。第三章:众包测试报告抽样分析流程。主要详细介绍了本次研究的实验流程,包括文本的处理、截屏的处理以及后续的聚类、抽样工作。第四章:实验结果与分析。主要介绍了本次研究的对比实验的结果,详细阐述了实验相关参数的设置以及对比实验的评价标准,对不同抽样类簇的实验结果和本次实验的意义进行了分析。第六章:总结全文,提出未来工作的设想与展望。第二章相关工作与理论基础本章详细阐述了众包测试技术、测试报告分析技术、图像处理技术、抽样技术的研究方向和发展现状,继而论述了存在的问题以及后续可能的发展方向。2.1 众包测试技术2006年Howe首次提出众包的概念,众包的基本特征包括:采用公开的方式召集互联网大众;众包任务通常是计算机很难独立处理的问题;大众通过协作或独立的方式完成任务;众包是一种分布式的问题解决机制。众包测试是一种很独特的测试方式,它能让真实的用户或者测试人员,在真正的应用环境下参与到测试的过程中来。在基于众包的测试优化方面,目前主要研究工作包括针对特定测试类型的优化,如应用于QOE测试、可用性测试、GUI测试等;以及针对测试流程的优化,如应用于测试用例生成、程序调试与修复等。在QoE测试方面,Chen等设计了一个基于众包技术的框架来对多媒体内容进行QoE测试。WU等则提出了一个值得信赖的众包框架来对多媒体内容的QoE系统进行评估。HOSSfeki等针对众包QOE测试的问题和补救方式做了详尽的分析,并对众包竞争和最佳实践方式进行了完善的设计。Seufert等通过众包方法研究编码比特率对视频QoE的影响,进一步证明了众包QoE测试的可行性和未来潜力网。在可用性测试方面,Schneider等在MTurk上通过记录鼠标移动数据来分析用户遇到的潜在错误,实验证明了众包技术在可用性测试上的必要性。LiU等分别采用传统的可控实验室测试和众包测试的方式对一个学生网站进行功能测试,证明了众包可用性测试的适用性。Meier等通过在MTurk上使用众包可用性测试来评估基于Web的工具,并和传统的实验室方法获得了近似的结果。Gomide等将众包技术运用于捕捉摄像头下众包员工的犹豫特征来分析软件中存在错误的可能性。在GUl测试方面,DolStra等通过实例化多个运行着待测系统的虚拟机,让测试人员通过浏览器访问这些虚拟机进行测试,把GUI测试众包给网络上大量的测试人员。KOmarOV等则在MTUrk上进行了用户界面划分的GUl众包测试,通过和实验室测试结果的比对证明了使用众包进行GUl测试的可行性U”众包测试作为一种新兴的软件测试手段,在很大程度上解决了传统软件测试所面临的用户多样性不足、反馈较少、应用场景不够真实等问题,但也对传统的测试技术提出了新的挑战。2.2 测试报告分析技术缺陷报告是描述软件缺陷的重要软件构件,特别是在开源软件中。一个典型的软件缺陷报告通常包括很多字段,例如状态、摘要、描述、报告者、修复者、建立时间、修改时间、优先等级、严重程度、操作系统、缺陷版本、平台以及评论列表等Ul随着软件项目规模的不断扩大,缺陷报告的数量也在不断增加。虽然大量的缺陷报告可能有助于提高软件的质量,但是,这无疑也为缺陷报告的分析工作增加了难度。北京大学的张洁等对Eclipse和APaChe项目中的缺陷报告进行了统计和分析,研究结果表明:开发人员必须处理大量的缺陷报告,其中有很多缺陷报告是重复的、无效的、无法重现错误的,即缺陷报告的质量还不够好。因此缺陷报告的优化、缺陷报告的分类和缺陷的修复都是当前缺陷报告分析理解领域的研究重点。在缺陷报告的优化方面,主要工作是集中在:缺陷报告的内容优化I,避免缺陷报告分类错误u明预测缺陷报告的严重程度等。研究人员已提出了多种方法用于分析理解缺陷报告,然而众包移动应用测试的特性使得缺陷报告的处理面临新的问题。相对于传统缺陷报告以文字描述为主,移动众测完成过程中会产生多种模态的信息,例如文字、图片、视频、日志等。同时,由于众包软件测试力求通过群体智能来弥补当前自动化测试技术的不足,众包测试过程中必将产生大量质量参差不齐的测试报告。因此,如何快速有效地分析理解海量的众测缺陷报告,变得尤为关键,测试报告的多模态信息,也为软件缺陷的复现提供更多的可能。南京大学的冯洋等人提出的众测缺陷报告排序技术,是有效提高报告处理效率的方法之一。一方面可以综合运用多样性策略和风险策略动态选择测试报告进行检查;另一方面,鉴于许多移动应用的众包缺陷报告中包含有大量截图,通过使用空间金字塔方法来比较包含屏幕截图的缺陷报告间的距离,从而结合缺陷报告中的文本和图片信息,对缺陷报告进行综合的优先级排序。此外,如何实现大量众包缺陷报告的分类并得到真正含有缺陷的测试报告也是众包测试过程中需要解决的问题之一。中科院软件所的王俊杰等对众测环境下测试报告的智能筛选方法开展了研究,提出了一种基于局部的主动学习方法,能够对众包缺陷报告进行分类。该方法解决了众包缺陷报告分类中存在的局部偏见以及缺少历史训练数据的问题。由此可见,在众包移动应用测试的场景下,传统的缺陷报告分析理解技术不能很好地适用,已有少数研究学者开始关注如何结合移动众包测试的特性,研究对应的缺陷报告分析和理解技术。2.3 图像处理技术特征提取是计算机视觉和图像处理中的一个概念,是指使用计算机提取图像中术语特征性的信息的方法及过程。计算机只针对数字信息进行唯一性解读,因此要使得计算机能够"理解”图像,就需要从图像中提取有用的数据或信息,以此得到图像的“非图像”表示或描述,即特征提取。对于图像而言,每一个图像都有其能够区别于其他类图像的特征:有的是可以直观感受到的特征,如亮度、纹理、色彩等;有的是通过变换或处理得到的特征,如矩、直方图等。由于图像目标存在亮度、视角的变化以及尺度、遮挡、目标类内差别等的影响,针对这一问题,提出了各种不同的局部特征,如SIFTl特征。FergUS等在图像识别中使用了局部特征的生成模型;Grauman提出了金字塔匹配核(PKM)的概念,有较好的匹配和分类性能,但不适合解决高维特征问题,Lazebnik等口在此基础上提出了空间金字塔匹配核(SPM),即在二维图像空间中执行PM算法。用于图像模式识别的特征大致可归纳为:1)颜色或灰度的统计特征;2)纹理、边缘特征;3)代数特征;4)变换系数特征或滤波器系数特征。颜色(灰度)直方图是实践中最常用的图像统计特征,特别适合描述那些难以进行自动分割的图像。王建文等针对图像自动标注应用,提出了一基于PKM的颜色直方图特征标注方法,它与SPM方法相比,F度量值提高了10%o纹理结构反映图像亮度的空间变化情况,边缘是指图像局部灰度显著变化的区域,是图像最基本的特征。Wang等提出了变化的局部边缘模式(VLEP)将其应用于纹理分类,多尺度、多方向,能够很容易的将LBP和Zernike矩直方图谱特征融合。代数特征提取是以存储图像数据的数据结构为基础,利用矩阵理论提取图像特征的一种方法,Yang和Zhang首次提出了2DPCA,Ye,Janardan和Li首次提出了2DLAD,它们分别是一维的主成分分析(PCA)和线性判据分析(LDA)的推广,通过取消对图像矩阵向量化的方式,大大降低了算法的时间复杂度。XU等提出了一种基于2DPCA的新型目标跟踪方法,提出了一种基于2DPCA表示的外观模型并建立了其似然函数,具有更高的可靠性和实时性。变换系数特征可以看作是二次提取的特征,表示能力强并且特征维数低,Morlet首次提出了小波分析,后经不断发展,成功应用于图像处理,成为国内外研究热点之一。杨艳春等提出了一种基于冗余小波变换与引导滤波的多聚焦图像融合算法,能够更好地体现图像边缘的细节特征,也有很好的融合效果。图像特征提取技术因其较高的提取效率,得到了广泛的应用,并吸取了越来越多学者的关注,改进经典方法或是提出新的提取方法都是研究努力的方向。图像特征提取作为图像处理领域中十分重要的内容,是我们将持续关注的问题。2.4 抽样技术抽样技术是统计学的重要分支,它已经成为当今世界上最重要的统计方法。抽样方法原则上可分为概率抽样和非概率抽样两大类。随着抽样理论的不断发展,非概率抽样的局限性愈加明显,随机抽选因素的缺失,使得其应用面愈加狭窄。典型的概率抽样方法包括以下几种形式:简单随机抽样(或纯随机抽样)、系统抽样、分层抽样和整群抽样。就抽样方式来看,学者们主要使用两种方法:动态抽样和静态抽样。动态抽样指需要经过两次或更多次抽样才能达到最终要求的抽样方法,抽样过程与算法的执行过程和推断是交互进行的。在该抽样方式下,决策者能够在算法效率和模型正确性之间及时做出抉择。动态抽样方法在分类挖掘的决策树网和神经网络网的方法中有较好的运用。静态抽样也称单阶段抽样或一次性抽样,是根据预先估计的误差范围、可靠性等计算一个固定的样本量,所有的后续分析只依据一次性抽取的一个样本。静态抽样方式大都来自于统计抽样调查领域,主要有:简单随机抽样、分层抽样和整群抽样。简单随机抽样可以在任何地方单独使用,但往往包含在其他复杂抽样形式中,它最大的优点是根据样本资料推论总体时,可用概率的方式客观地测量推论值的可靠程度,从而使这种推论建立在科学的基础上,这使得简单随机抽样在社会调查和社会研究中应用较广泛。但简单随机抽样只适用于总体单位数量有限的情况,对于复杂的总体来说,很难保证样本的代表性,必须对总体各单位的情况有较多的了解,否则无法作出科学的分类。分层抽样在分类问题中运用普遍,其中简单和加权分层抽样都得以运用,主要特征是分层按比例抽样,应用于个体有明显差异的总体中,但当整体差异不明显时分层抽样方法会不适用,需要与其他抽样方法综合使用,优点是能够充分保证样本结构与总体的一致,提高样本的代表性。整群抽样在聚类时运用较多。抽样时,将总体中若干个个体合并为组称为群,从群中进行抽取,然后对抽取到的群中的所有个体进行调查分析。整群抽样只需要群的抽样框,而不要求包括所有个体的抽样框,这大大简化了编制抽样框的工作量,实施方便,但往往由于群与群之间存在较大的差异,会引起抽样的误差也比较大,会具有样本分布面不广、样本对总体的代表性相对较差等缺点。2.5 本章小结众包技术最近在软件工程的研究领域中获得了广泛的欢迎,很多众包测试平台应运而生。可以肯定的是,众包软件测试技术有着十分良好的应用前景,但仍然存在着大量的研究问题尚待解决。同时随着众包技术的普及,如何处理大量的众包测试报告的问题也亟待解决。许多研究人员会将目光投向于自动实现缺陷报告,但现有的方法都没有达到令人满意的精确度。本文就研究内容的相关工作介绍了众包测试技术、测试报告分析技术、图像处理技术和抽样技术,分别对其研究现状或技术分类进行了讨论,并指出了各自的优缺点。可以发现,并不存在某一种技术能够普适所有情况,也不存在能够独立完美解决某一问题的相关技术。比如,对于本文提出的基于图像理解的众包测试报告抽样分析来说,并不是每一种抽样方式都适合本次对比实验,同时在得到抽样分析的样本过程中也不是仅应用了一种技术,也正是因为如此,我们考虑将图像处理与文本分析相结合来优化众包移动测试报告的问题。在未来,研究人员可能会结合上述多种技术,并发现更多可以更快更精确发现缺陷的方法,确定最适合每种技术类型的应用程序,采取一定的策略结合这些技术,使众包技术在软件工程领域有更广泛的应用。第三章众包测试报告抽样分析流程随着众包技术的发展,测试报告的数量日益增多,如何更高效的处理这些测试报告是研究人员十分关心的问题。由于众包测试在移动应用程序中的应用也逐步普及,在处理传统的测试报告的基础上,考虑到移动应用众包测试报告中屏幕截图较多的特点,测试方法的选择也成为了研究的热点。3.1 问题描述本文提出了一种基于图像理解的众包测试报告抽样分析方法。这种方法是在对文本进行自然语言处理的基础上,加入了图像理解的部分。随着众包测试在移动应用中的广泛使用,移动测试报告中可能会包含更多的图像信息,于是我们对文本描述和屏幕截图这两种最广泛使用的信息类型进行分析处理。实验过程中,假设每个测试报告只包含两个部分:文字描述和屏幕截图。对于每个移动应用的测试报告R&二O)来说,设定R(r)=tr(SiJ,)i=0.n,其中S表示包含可以获取缺陷信息的屏幕截图(即图片),7表示描述缺陷和操作步骤的文本。进而对测试报告的处理分为文本处理和截屏处理,最后生成平衡混合的距离。这其中可以主要概括为三个步骤:(1)文本描述距离计算;(2)截图间距离计算;(3)平衡距离计算。我们使用了自然语言的文本分析技术来处理测试报告中的文本描述,使用SPM技术来测量屏幕截图之间的相似性。图3.1描述了这一过程:图3.1信息处理过程在计算了测试报告集的距离矩阵之后,对三种距离进行聚类和抽样,最后对抽样结果进行分析。下面将详细叙述这一实验过程。3.2 文本处理对测试报告中文本的处理分为两个步骤:(1)提取关键词构造关键词集;(2)距离计算得到距离矩阵。这一节将进一步说明本实验中这两个步骤的实现过程。3.2.1 提取关键词在软件工程研究领域中,自然语言处理技术(NLP)己经被广泛应用于辅助各种任务。为了从文本中提取构造词集的关键字,实验中,我们首先使用了“Jieba”来标记文本描述。Jieba是一个基于PythOn的分词工具,它可以实现高效的词图扫描从而检索句子中汉字的所有可能成词情况,并生成这些情况所构成的有向无环图(DAG),然后采用动态规划的方法,查找出一条最大概率路径,进一步得到基于词频的最大切分组合。我们将众包测试报告中的缺陷的文本描述信息输入到Jieba,可以得到一个词性列表和文字的词性标记。值得注意的是,这一初步结果中会包含杂质,比如会有一些不常见的词和相对无意义的词,这些词可能会对下一步距离的计算产生负面影响,所以还需要进一步识别关键词。通过查阅先前的一些著作,研究表明,动词和名词是能够解释文档内容的主要信息点,因此,我们进一步过滤掉了除动词和名词以外的其它词性的词。此外,考虑到可能由停用词引起的歧义,实验中还采用了汉语词法分析系统(ICTCLAS)的停用词列表对关键词进一步的过滤。ICTCLAS主要功能包括中文分词和词性标注等,是当前世界上最好的汉语词法分析器。处理后就可以得到我们所需的关键词列表。图3.2展示了部分停用词列表。n -!“ #$%& ()* + > -为不而乐以况处妨娄必时止苦须外为何何何何何何何何何何何何余作你里背 且况 又后外已是言论系袂地靠 者而而而而而而而而而而联联背背呀哈哟 达当 南 啊啊啊啊哗啥啦啪啷喀喂喏喔喽嗡图3.2停用词列表(部分)3.2.2 文字距离正如前文所描述的,本文讨论移动众包测试报告的处理,这与桌面或网络应用程序的测试报告相比,它们的文本描述更短。我们使用JaCCard距离来度量测试报告集的文本描述之间的差异。JaCCard距离是用来衡量两个集合之间的差异性的种指标,是JaCCard相似系数(衡量两个集合之间的相似度的一种指标)的补集。本文使用的Jaccard距离定义如下:IKeKjlIKjUKjl其中OT(r”j)表示移动测试报告和7)的文本描述部分之间的距离,Ki和K.分别表示测试报告和弓的关键词集合。由于实验中所求的距离矩阵具有对称性,所以我们只需要求出上三角(或下三角)的测试报告集之间的文本描述的JaCCard距离,利用对称性,即可求得移动测试报告的文本描述的距离矩阵。3.3 截屏处理对测试报告中屏幕截图的处理也大致分为两个步骤:(1)图像理解构造特征直方图;计算截屏距离矩阵。其中距离矩阵的计算又包括每个屏幕截图之间的距离计算和众包移动测试报告截图集之间的距离计算。这一节将进一步说明本实验中这两个步骤的实现过程。33.1图像理解在众包移动测试报告中,图像是十分重要的信息源之一,本文实验的一个目的也是希望能提出一种从图像中提取信息的方法来辅助众包测试报告的分析与理解任务。为了计算屏幕截图之间的差异,本文将屏幕截图转换为特征向量。由于报告中的屏幕截图在截取时,不仅包含了所要描述的缺陷的状态,还会在一定程度上包含该应用程序的外观或者一些复杂的背景。因此,我们考虑到仅仅使用RGB(三原色:Red,Green,Blue)模式来对屏幕截图进行建模分析,可能并不是一种非常合适的方法甚至可能会产生一些误导。本文应用了SPM算法来分析处理屏幕截图。SPM能够提取尺度不变的转换特征(SIFT),以金字塔的方式将图像划分出子区域,在每个金字塔层次上,计算出子区域内的低阶的特征无序直方图,在分解后,能够连接所有层次的子区域上的局部特征并统计起来,最后得到每个屏幕截图的特征直方图。332截屏距离在获得了特征直方图之后,要计算每一对图像之间的距离。本文采用卡方距离来计算特征之间的距离。卡方距离是根据卡方统计量得出的,它通常被用于直方图向量之间的距离的度量。卡方距离的计算定义如下:DSGi,sp=/(HHp-Hj(xk)2=2tHi(xlc)+Hj(xk)其中,DSG,表示屏幕截图Si和sj之间的卡方距离,Hi(xl,x2,.fxn)表示屏幕截图Sj的特征直方图,其中J表示屏幕截图。的R阶特征值。自此我们得到了每个屏幕截图之间的距离。通过查看众包移动测试报告,可以发现,每个测试报告中可能包含多个屏幕截图,本文进一步计算了截图集之间的距离。我们设置了一个阈值来评估屏幕截图的匹配度。阈值y首先用来在同一测试报告中找到具有代表性的屏幕截图,如果屏幕截图间的卡方距离小于了会将其首先视为一个代表性的屏幕截图集,测试报告的截图中,如果它们的卡方距离小于y,会进一步被评估为相同的视图,在此基础上,y又可以再次被用来计算跨测试报告的屏幕截图之间的相似性。至此,每个测试报告中相似的屏幕截图和不相似的屏幕截图可以用来计算两个测试报告之间的屏幕截图集的距离,本文使用JaCCard距离来度量,其计算定义如下:Z)S(,r.)=l-_JISirl其中,OS化力J表示移动测试报告彳和。的屏幕截图集之间的距离,S,和Sj分别表示测试报告和。的屏幕截图集。在某些特殊情况下,比如测试报告中没有包含任何屏幕截图时,Sj和邑都是空集,则定义OS为0。3.4 混合距离本文所设计的对比实验,在分别对文本描述和屏幕截图进行分析处理的基础上,考虑到二者各自在分析测试报告时的优势,本文通过一定方式将二者结合起来,分析其对众包移动测试报告进行分析处理的效果。if DT(Sb) = O (fDS(,) = 0otherwise在上述步骤中,我们已经得出了测试报告文本描述的文字距离和屏幕截图的图像距离,接下来使用如下计算方式来将这两种距离结合起来计算出混合距离:BD(ri,rj) = <0,axDT(Sq),9DS(ri,ri)×DT(ri,ri)(1+/72),,',?DSgj)+DT(Z)其中,5。仕,)表示众包移动测试报告彳和中的文字描述和屏幕截图的混合距离。上述计算方式对测试报告的OT和OS进行了讨论,当OS为O时,通常是指测试报告中不包含有任何的屏幕截图,在这种情况下,我们使用了参数,用来削弱没有任何屏幕截图的测试报告所占的权重。而在a%nWse这一情况下,我们使用了参数从用来平衡文本描述和屏幕截图的距离在混合距离中的权重,当S取1时,表示二者权重相当。由于实验中所求的距