没有合适的资源?快使用搜索试试~ 我知道了~
进行探索性测试会话,这是一种基于数据的方法。朱利安·莱沃引用此版本:朱利安·莱沃。进行探索性测试会话,这是一种基于数据的方法网络。波尔多大学,2021年。法语。NNT:2021BORD0277。电话:03623555HAL ID:电话:03623555https://theses.hal.science/tel-03623555提交日期:2022年HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire论文在波尔多计算机科学研究实验室获得波尔多大学博士学位专业:计算机科学博士培训:计算机科学博士学校:数学与计算机科学进行探索性测试会话,一种基于数据由朱利安·莱沃由Xavier Blanc教授和LaurentRéveillère教授指导支持日期:2021年11月19日评审团成员:夫人。里尔大学Laurence教授 Duchien主席M. BISSYANDE,卢森堡大学教授Tegawendé François报告员M. LEGEARD,Bruno勃艮第大学教授报告员弗朗什·孔泰。M.泽维尔·布兰克波尔多大学教授主任M.劳伦特的启示波尔多大学教授主任2标题:参加探索性测试会议,一种数据驱动的方法。软件系统,尤其是Web应用程序,在我们的个人和职业生活中扮演着重要的角色。最大限度地减少故障是至关重要的,但与此同时,它们正变得越来越复杂,因此难以测试。探索性测试已被证明是发现需要与系统进行复杂交互的错误的他们依靠测试人员的业务知识和经验来验证系统。然而,测试人员的工具在这方面还不发达。我们认为,对探索性测试的支持可以提高测试质量,降低测试人员所需的专业知识水平。业务知识帮助测试人员确定系统中感兴趣的领域在本文中,我们提出并评估了帮助测试人员进行有效探索性测试的方法。我们建议对探索性测试人员执行的交互进行建模,以便推荐感兴趣的操作,并在会话期间提供直接反馈。我们的建议基于马尔可夫模型和状态机。为了评估我们的方法,我们开发了一个软件库。我们希望该软件将作为未来基于与网页交互的工作的基础。我们的结果表明,所提出的方法有助于测试人员在实际的Web应用程序。我们未来工作的目标是关键词:软 件 测 试 探 索 性测试Web参加探索性测试会议,数据驱动的方法。软件系统,尤其是Web应用程序,在我们的个人和职业生活中扮演着重要的角色。最大限度地减少故障是至关重要的,但与此同时,它们变得越来越复杂,因此很难进行测试。探索性测试已被证明是查找需要与系统进行复杂交互的错误的有效方法。他们依靠测试人员的业务知识和经验来验证系统。但是,测试支持在此区域不足。我们声称,探索性测试支持可以提高测试质量,降低测试人员所需的专业水平。业务知识帮助3-测试人员确定系统中感兴趣的领域,测试经验帮助测试人员保持他们执行的测试的多样性水平。本文提出并评价了帮助测试人员进行有效探索性测试的方法。我们建议模拟探索性测试人员执行的交互,推荐感兴趣的操作,并在会话期间提供直接反馈。我们的建议基于马尔可夫模型和状态机。为了评估我们的方法,我们开发了一个软件库。我们希望此软件将作为未来基于与网页交互的工作的基础。我们的结果表明,所提出的方法有助于测试人员在实际的Web应用程序。我们未来工作的目标是改进拟议的指导方针,使探索性测试更加实用。关键词:软件测试探索性测试Web应用程序波尔多计算机科学研究实验室(LaBRI)。波尔多大学351年,解放33405年。&独联体山谷。3Rue Adrienne Bolland-33185 Le Haillan。4材料表摘要31导言71.1背景 . ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...... ...71.2目标101.2.1贡献101.3论文结构122最新技术水平2.1软件测试142.1.1术语142.1.2探索性测试152.2Web应用程序和用户行为172.2.1术语182.2.2记录用户操作192.3系统使用的建模2.3.1术语202.3.2马尔可夫链212.3.3高阶马尔可夫模型2.3.4内插n232.3.5Web界面测试模板的应用52.4合成283AIFEX293.1概述3.2网络服务313.2.1网站313.2.2第三十四届会议3.3浏览器扩展343.3.1听众353.3.2荧光笔353.4绩效评估363.4.1实验配置373.4.2经验结果383.5合成394提高探索性434.1导言444.2动机454.2.1电子商务Web应用程序的探索性测试示例464.2.2使用测试的场景推荐交互未覆盖。...................................................................................................... 474.3提高探索性484.4对照研究(学生)514.4.1实验配置524.4.2实验结果544.4.3对有效性的564.5对照研究(众包)564.5.1实验配置564.5.2实验结果594.5.3对有效性的614.6案例研究6264.6.1方法624.6.2参与者返回。.............................................................................................. 644.7合成655探索性测试测685.1动机705.2接近735.2.1测试场景的设计。...................................................................................... 745.2.2测试人员进度评估755.2.3指导测试人员完成测试任务。................................................................. 785.3评估805.3.1实验设置805.3.2结果845.3.3对有效性的875.4合成886结论和观点90结论和观点90I .摘要.................................................................................................................. 90II .讨论和今后的工作.................................................................................................92参考书目95附件103A.网站的AIFEX配置.................................................................................................103A . I.CDiscount.......................................................................................... 103A .二. Reddit.................................................................................................. 109A .三. 亚马逊.................................................................................................. 112B.DSL语法-测试场景............................................................................................... 1177第一章引言摘要1.1背景71.2目标101.2.1贡献101.3论文结构12. 本介绍性章节1.1上下文L’utilisation des services numériques a considérablement augmenté depuis le débutdes années 1990 et le cap du milliard de sites web a été franchi en 2014 [他们在我们的生活中扮演着重要的角色,无论是在个人层面还是在职业层面。因此,服务的故障Web应用程序是几种服务的组合,有时由不同的参与者开发和维护。随着这些系统的复杂性不断增加第一章。引言8tèmes,玩家为确保软件工具的质量和降低成本所做的努力,正朝着自动化的方向发展。重复性操作(如定期运行的非回归测试)可以自动化。敏捷项目管理方法已经成为Web应用程序行业的主要组织技术它们基于较短的开发周期。并高度重视自动化测试,主要是在单元级别。快速的开发周期没有时间进行构建 并保持完整的系统规范是最新的此外,使用外部库、框架或其他团队开发的Web服务开发应用程序也是很常见的。在Web服务上工作的开发团队只能看到他们生成的代码,并将系统的其他组件视为黑盒。当其他组件的代码我们的行业合作伙伴CIS Valley在5个分支机构拥有160名员工。除其他活动外,该公司还开发了SONATE,这是一种主要由公共组织使用的ERP(企业资源规划)。S ONATE的开发始于2017年,估计需要3000个人工日。SONATE是一个Web应用程序,由基于Angular框架的前端和用C#编写的后端组成该项目涉及三个团队(功能团队、开发团队和 由两名经理和一名项目经理监督。L’équipe char- gée des fonctionnalités est composée de trois consultants commerciauxseniors qui sont chargés des aspects fonctionnels de S职能团队手动编写验证测试场景,这些场景在内部调试阶段手动执行。L’équipe de développement comprend quatredéveloppeurs : un 三家开发商拥有更多1.1. 上下文9五年的经验,最后一个是初级开发人员。开发团队培养了一种测试文化,无论是通过使用单元测试覆盖代码,还是通过手动编写自动化的端到端测试。L’équipe demigration est composée de quatre membres seniors qui sont chargés de transférer et deSONATE的性质涉及许多频繁更改的业务规则,这意味着代码库中的重大更改。由于测试用例是手动编写的,因此这些更改使得维护测试用例库变得困难。因此,CISValley对应用探索性测试很感兴趣探索性测试(TE)是系统黑盒测试的有效方法[4,31]。它让测试人员负责设计他们正在运行的测试。几项研究表明,Itkonen和Rautiainen对使用TE的公司进行了一系列然而,在涉及许多组件的Web应用程序的上下文中,情况通常是这样的。我们认为探索性测试对于开发Web应用程序的团队的测试策略是一个重要的实践。然而,探索性测试的实践仍然缺乏工具,需要测试人员具有高水平的专业知识才能有效。我们认为测试人员在探索软件的过程中可以得到指导。在本文中,我们提出了一些方法来指导测试人员提高第一章。引言101.2目标在进行探索性测试时,我们将讨论两个需要改进的领域。首先,多样性问题是指可以在Web应用程序上执行的操作和操作组合的覆盖范围。不可能进行详尽的测试,但测试人员执行的组合数量的增加表明测试不会重复。换句话说,每个新测试都第二,探索性测试需要测试人员的高水平专业知识。缺乏知识可能会导致系统的某些部分未被探索,或者测试会话与设定的目标不匹配。我们建议指导那些不熟悉应用程序的测试人员,使他们能够协作探索应用程序。我们通过众包测试来说明这种方法,众包测试是一种让项目外部的测试人员参与测试任务的方法1.2.1贡献本论文的工作旨在提高探索性测试会话的有效性。我们选择通过以下两个轴来解决这个问题:多样性:增加执行的操作组合的数量知识:当测试人员对被测系统(ST)不熟悉时,帮助他们确定探索性测试会话的目标。我们提供以下贡献来回答这些探索性测试会话的有效性问题1. 一个开源软件基础,用于它记录测试人员的操作,并通过直接在网页上的视觉反馈来指导他们。可以在会话期间分析记录的操作,以便为测试人员生成建议1.2. 目标:11该工具旨在作为实施和评估各种推荐技术的基础2. 一种旨在促进探索性测试多样性的方法。特别是,我们正在解决Web应用程序的难题,因为这些应用程序现在正在被广泛开发和部署。为了实现这一困难的目标,我们引入了一个基于语言n语法模型的预测模型。更具体地说,我们通过同化读者先前进行的测试跟踪来不断训练预测模型。然后,当测试人员执行一个新的测试场景时,我们要求预测模型提出下一个与测试相关的交互,这些交互是经常执行的。这样的预测列出了经常发生的相互作用。然后,我们建议测试人员不要遵循预测,而是考虑具有低预测百分比的交互。如果测试人员听从我们的建议, 然后,它将执行新的或很少执行的交互,这将增加测试的多样性。一旦3. 一种基于众包平台组织探索性测试会话的方法。使用这样一个平台的困难来自于众测者的专业知识和他们探索Web应用程序的能力。众测者不是专家测试者,先前的工作表明他们的主要动机是通过尽可能快地完成任务来实现收入最大化,这不是探索性测试的心态。在实践中,当使用众测者时,测试者停留在当前会话中的机会非常小。值得庆幸的是,经验不足的测试人员,如众测人员,已经被证明可以获得更好第一章。引言12当他们被引导时,他们会得到结果我们的主要想法是引入一种方法,允许探索性测试会话的设计者正式地对会话的目的进行建模。然后,我们利用此模型为运行会话的众测者提供实时可视化指导。通过使用这种方法,我们显著降低了众测者不跟踪会话目标的可能性1.3论文的结构本论文的内容组织如下:本章 2提供了该领域最新技术水平的概述Web应用程序的探索性测试。第3章介绍了AIFEX的服务,这是一个实现本研究中描述的方法的工具。第4章介绍了我们处理探索性测试会话多样性的方法。第5章介绍了我们帮助测试人员进行相关测试的方法。第6章讨论了13第二章最新技术水平摘要2.1软件测试142.1.1术语142.1.2探索性测试152.2Web应用程序和用户行为172.2.1术语182.2.2记录用户操作192.3系统使用的建模2.3.1术语202.3.2马尔可夫链212.3.3高阶马尔可夫模型2.3.4内插n232.3.5Web界面测试模板的应用2.4合成28在本章中,我们回顾了我们工作所必需的基础的定义。这些原则分三部分介绍首先,我们定义了软件测试的主要术语,重点是从第二章。 最新技术水平14最后是在手动测试会话期间指导测试人员的现有技术。其次,我们介绍了Web应用程序的工作原理以及用于跟踪用户在这些应用程序上的操作的现有技术。第三,我们讨论了用于对应用程序和Web应用程序的用户或测试人员的行为进行建模的工具。我们介绍了2.1软件测试测试是对软件质量至关重要的系统检查。国际软件测试资格认证委员会(ISTQB)将测试定义为:定义2.1.1(软件测试)。一组测试用例(测试执行前测试对象的状态它与一个目标有关测试软件是一项复杂的活动,需要不同级别的基础知识--从代码行、软件组件之间的交互到系统功能。测试实践的目的不是直接发现bug,而是涵盖目标,以确定一组用例是否正常工作。如果用于确定目标的标准是苛刻的,并且所有目标都已被无错误地覆盖,则2.1.1术语本节中的定义摘自ISTQB词汇表测试活动被分解以测试系统的特定子部分。在本文中,我们介绍了我们的工作,以提高2.1. 软件测试15定义2.1.2(测试用例)。根据测试条件制定的一组前提条件、输入数据定义2.1.3(测试套件)。要在特定测试周期中执行的一组测试用例或测试过程。要测试软件,最好运行一套测试用例。将目标分布在一组测试用例上有助于定义2.1.4(测试甲骨文)。 用于确定预期结果的资源与系统的观察结果进行比较。它可以定义2.1.5(测试覆盖率)。在测试套件(例如,源代码的所有分支)中执行指定覆盖范围元素的程度(以百分比表示)2.1.2探索性测试探索性测试(TE)由Cem Kaner [32]引入,但没有正式定义。软件测试实践中的探索思想是给测试人员设计和执行测试的自由。这两种活动相互丰富的想法。学习系统的概念以及如何测试它 这是至关重要的,并在整个项目中持续下去James Bach [7]给出了一个简短的定义:"探索性测试是一种学习、测试设计和同时执行的测试"。L’objectif du 它还允许测试人员发展他们对系统的理解。这些知识可用于提出改进建议或进行更相关的测试。TE可以被看作是一种补充系统技术的方法,使用规范中的脚本测试用例。第二章。 最新技术水平16脚本化测试的实践者报告说,测试用例设计是一个困难的问题,并且在讨论企业对测试实践的需求时,Antonia Bertolino描述了软件测试研究和行业实践之间的差距。自20世纪90年代以来,研究人员一直在积极开发基于测试覆盖率的技术。然而,除了源代码上的分支覆盖率之外,许多行业并不衡量测试覆盖率。它强调了这样一个事实,即一方面,从业人员进行测试的时间非常有限,另一方面, 建议的测试通过需要大量的文档和建模来影响Afzal和Itkonen [4,30]的实验结果其优点是产生更少的误报,即在软件正常工作时测试失败。此外,在探索性测试会话中发现的错误更难触发,需要更长的交互序列来发现它们。Pfahl等人对TE在工业中的应用进行了研究。 [48]他们的结果表明,Bach引入了TE会话的概念,它聚合了测试人员团队的测试TE会话的过程L’efficacité des sessions de TE dépend fortement de l’expérience des testeurs [有经验的测试人员可以在自由的情况下进行更有效的测试,而Ghazi等人建议根据测试人员的自由度对测试章程的类型进行分类,从自由测试到完全脚本化的方法定义2.1.6(测试章程)。测试章程是由测试经理编写的文档。它定义了2.2. WEB应用程序和用户行为17测试某个功能、查找某个问题类型或检查一组错误修复。测试章程为探索性测试会话提供了框架。测试章程的内容可能因公司而异。Ghazi等人已经确定了35个可以在测试章程中使用的元素[23],例如会话长度、系统的重点部分、以前发现的bug列表、以前测试会话的注释、关键用例的描述。测试章程的元素可用于在测试会话期间指导测试人员,为如何执行测试设置或多或少的限制性框架。Ghazi等人在给予测试人员的自由和他们的探索性测试经验之间提出了一个折衷方案[24]。测试人员越有经验,他们就越有自由度,相反,一个对应用程序知之甚少的测试人员,如果给他关于如何寻找bug的精确指示,他会更有效率。在最极端的情况下,测试会话是完全脚本化的,测试人员一步一步地执行测试用例。相反,不受限制的自由式会话允许有经验2.2Web应用程序和用户为了使用Web应用程序,用户使用客户端,客户端本身通过应用程序编程接口(API)与一个或多个Web服务交互。本文的工作重点是这些应用的黑盒测试。他们测试是通过Web浏览器从在本节中,1. https://www.w3.org/TR/2013/WD-webdriver-20130117/第二章。 最新技术水平18我们定义了用于描述测试人员与应用程序交互的术语2.2.1术语定义2.2.1(Web应用程序)。Web应用程序是一个或多个远程服务器上的一组程序,用户通过Web浏览器与之Web应用程序不需要安装在用户的计算机上,因为它在远程服务器上运行。L’utilisateur accède à l’application via un navigateur定义2.2.2(网页)。 网页是通过以下方式显示的图形界面:用户的浏览器我们使用用户在浏览网页时生成的事件序列2.2.3(事件)。网页会触发事件e,例如,它可以 事件可以由JavaScript代码捕获并触发异步处理,从而更改网页的状态,或向服务器发送超文本传输协议(HTTP)请求。我们认为事件至少由类型(例如,单击、按下事件通常用于更改网页的状态。响应于用户的操作因此,用户导航是通用的2.2. WEB应用程序和用户行为19由具有有限状态的机器[9,41,58]的规范中的事件表示。使用这些模型来生成最大化错误检测的事件序列已经被广泛研究。研究人员已经开发了使用状态机[17,18]、语法[55,40]、遗传算法[34]和概率模型[57]的技术。这些技术允许为不同的域生成测试用例。本论文的工作与众不同,因为我们使用模型来帮助测试人员,而不是完全生成测试套件。2.2.2记录用户用户操作的跟踪可以应用于不同的目的。例如,可用性测试试图识别软件产品使用中的改进或识别频繁的使用模式。L’enregistrement des traces de l’utilisateur est unetechnique souvent utilisée pour le test automatisé des applications web [捕获工具记录用户的操作(鼠标单击、键盘键、导航命令等)而应用程序正在使用中。然后可以通过浏览器重放动作序列。L’intérêt porté à la capture et la rejouabilité des séquencesd’action est mise en avant par le nombre d’outils existant dans la recherche et dansl’industrie, parmi eux Mugshot, [跟踪是通过将JavaScript代码注入到网页中来完成的,JavaScript代码负责记录网页接收到的事件。将JavaScript代码注入到网页中可以使用HTTP代理来完成,HTTP代理拦截HTML页面并在将其传递给客户端之前添加JavaScript头。 [6]或 通过在Web浏览器上使用扩展[15]。Atterer等人 [6]定义 以下是跟踪Web应用程序上操作的非侵入式方法的要求。— 用户在页面上的操作、移动的详细记录
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- 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
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功