您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > Top100summit敏捷的Web-UI自动化测试框架—东软
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!敏捷的WebUI自动化测试框架殷坤产品管理中心主任东软集团基础软件事业部揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!摘要案例简述•敏捷的WebUI自动化测试框架案例背景•敏捷需要自动化测试•艰辛的自动化测试之路成功要素•像用户一样“测试”软件最佳实践•用户化的测试脚本•灵活多样的断言机制•根据脚本自动生成用户化的报告发展规划ROI分析案例启示揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!案例简述—敏捷的WebUI自动化测试框架案例简述Web开发时UI框架的广泛采用极大提高了开发效率和用户体验。然而UI框架自动生成的海量页面源码却让原本就举步维艰的UI自动化测试变得雪上加霜。为了有效解决常见自动化测试工具普遍存在的使用成本高、测试用例有效性低,以及对不同Web技术测试方案不统一等问题。我们需要提供一个测试框架,来跨越“技术”与“用户”之间的鸿沟,简化脚本及断言条件的编写和维护工作、提高对UI框架和业务编码规范的支持程度,从而降低成本、提升效率。案例目标降低WebUI自动化测试的难度和成本,使更项目能真正实现WebUI层面的自动化测试,从而让团队真正享受到自动化测试带来的收益:使及时全面的回归测试、稳定性测试、兼容性测试成为可能,为持续集成提供基础;便于重现(或校验)偶发性缺陷;将测试人员从日常大量的重复性工作中解放出来,可以把更多的精力投入到针对业务场景的测试设计、用户体验测试、性能测试、安全性测试等工作中。揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!案例背景—敏捷需要自动化测试需求测试设计开发交付…快速原型设计尽早确认功能快速响应需求……自动化测试用例都能在当天的版本上有效运行么?敏捷依赖自动化测试,但自动化测试本身够敏捷么?可扩展的架构复用已有组件……每日站会、迭代演示会快速开发工具持续集成……揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!案例背景—艰辛的自动化测试之路学习成本高工具的操作使用、相关的脚本语言、测试过程的调试分析,是压在广大技术比较薄弱的测试人员身上的三座大山!测试脚本维护困难业界的测试工具本质上还都是针对页面源码来编写(或生成)脚本的,与页面源码高度耦合、可读性差。页面的任何变化都极有可能导致测试脚本不可用,即使提供脚本录制工具,我们能做往往也是重新录制。断言机制繁琐呆板测试脚本中的“断言”依赖手工插入。页面上蕴含大量的信息,潜在的断言对象如此之多、预期结果时常变化(甚至是动态的)、UI样式或UI逻辑(比如,翻页图标灰显)也很可能出现错误。因此,“断言”可谓是测试人员的“噩梦”!自定义扩展难度大测试是个系统的工程,自动化测试是中间的一个执行环节。与之关联的工作还有测试场景设计、测试结果分析、持续集成、版本控制、测试用例覆盖率统计、测试环境搭建,等等。自动化测试工具在扩展方面的局限性,破坏了测试管理的整体性和一致性。业界有很多优秀的自动化测试工具,它们都有各自的优点,但也普遍存在的一些问题,让我们举步维艰……揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!案例背景—艰辛的自动化测试之路优秀UI框架/工具的采用大大降低了开发成本和难度……测试脚本则要面对UI框架生成的海量源码……用例回放的有效性大幅降低,自动化测试变得雪上加霜……页面DOM结构非常复杂——所录制/编写脚本的复杂度变的更大、可读性变得更差;即使页面代码没有任何变化,UI框架的升级也会导致DOM结构的变化——脚本无效的风险变得更大;控件ID是自动生成的,甚至可能随机变化——导致根据ID定位控件的策略无效;揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!成功要素—像用户一样“测试”软件页面上的不稳定因素:页面布局、页面样式、UI框架及版本更新……用户只关注体验,不Care具体实现方案;自动化测试人员为什么会纠结于此呢?揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!成功要素—像用户一样“测试”软件用户操作时只关注页面上能“看”到的,而不用“查看页面源码”;用户会更关注整体业务的正确性、稳定性,而不仅仅是每个孤立页面的功能正确性;用户对页面样式、浏览器兼容性要求越来越高;根据界面快速编写测试用例——敏捷应对需求的变化;隔离对技术实现(UI框架、页面样式/布局)的依赖——敏捷应对设计/开发的变化;支持跨浏览器稳定回放——敏捷应对环境的变化;“用户使用软件”与“自动化测试软件”之间目前存在一些重要差异……如果能像用户使用软件一样进行自动化测试,我们会变得更敏捷……敏捷的核心是响应变化,因此开发和测试都需要快速响应需求的变化;而测试额外还需要快速响应开发的变化;揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1—用户化的测试脚本当你在上述界面上进行操作时,你心里是否会默念:“账号”输入***、“密码”输入***、“姓名”输入***、“性别”选择***、“生日”输入***、“国籍”选择***,点击“保存”按钮。类似的,当我们日常使用各种系统时,心里还会默念:“展开/收拢”树(Tree)的某个节点、关闭某个Tab页、数据表格(Grid)的下一页/上一页、选中数据表格(Grid)的某一行……如果测试脚本就像这个样子,大家觉得怎样?揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1—用户化的测试脚本基于界面上可以“看”到的内容定位对象,对象的操作按照用户习惯命名。操作定义对象类型脚本示意揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1—用户化的测试脚本对象类型操作定义脚本示意基于界面上可以“看”到的内容定位对象,对象的操作按照用户习惯命名。揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1—用户化的测试脚本对象类型操作定义脚本示意基于界面上可以“看”到的内容定位对象,对象的操作按照用户习惯命名。揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1—用户化的测试脚本点击“业务角色列表”上的“新增”按钮eventid=[titleButton]业务角色列表,新增/输入“名称”和“描述信息”后点击“保存”eventid=[input]名称name=setValuevalue=TOP100Test/eventid=[button]保存“/选中“业务角色列表”中“TOP100Test”对应的行eventid=“[gridRow]业务角色列表,TOP100Testname=check/右侧切换到“应用菜单授权”Tab页eventid=[tab]应用菜单授权/展开“管理控制台”和“组织机构”树节点eventid=[treeNode]管理控制台name=open/eventid=“[treeNode]组织机构name=open/选中“用户管理”树节点eventid=“[treeNode]用户管理name=check/点击“应用菜单授权”上的“保存”按钮eventid=[titleButton]应用菜单授权,保存/结合“角色创建及授权”功能,看一下其对应的用户化测试脚本实例:揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践2—灵活多样的断言机制断言对象页面信息量大,需要断言的对象多;需要在脚本中补充大量断言语句;预期结果预期结果很可能发生变化;预期结果的值与脚本逻辑耦合度大;断言机制未设定为断言条件的字段,如果发生错误,无法感知;UI样式及部分UI逻辑无法设为断言条件;揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践2—灵活多样的断言机制页面控件值断言业务逻辑断言自定义断言页面级UI断言后台数据库断言页面级数据断言揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践2—灵活多样的断言机制页面控件值断言业务逻辑断言自定义断言页面级UI断言后台数据库断言页面级数据断言在测试过程中,可以在任何位置增加断言事件,来判断页面指定控件是否存在、控件显示值是否为预期结果等。揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践2—灵活多样的断言机制页面控件值断言业务逻辑断言自定义断言页面级UI断言后台数据库断言页面级数据断言测试脚本按照业务流程组织并运行,如果某个步骤执行错误,则当前步骤或后续步骤会出现断言错误。无需编写任何断言语句以及预期结果值,但测试设计要考虑业务逻辑顺序;不需要可对比的正确版本,通常适用于项目刚开发或样式做整体调整等情况;断言错误的位置不精准,可能延后;操作过程有截图备份,可以有效辅助定位准确的出错原因;鉴于回归测试的时候,通常大部分用例应该是可以通过的,所以此类断言的投入产出比非常占优势!测试用例在“增加”出错时可能的断言结果增加记录A查询A修改查询结果删除记录A揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践2—灵活多样的断言机制页面控件值断言业务逻辑断言自定义断言页面级UI断言后台数据库断言页面级数据断言无需编写任何断言语句以及预期结果值;用于可提供预期正确版本的项目,在可持续构建或项目后期比较适用;能判断出样式、页面逻辑上的“非数据”类错误;对比绝对精准,导致可能存在误判,因此需要人工对差异图片进行排查;鉴于回归测试的时候,通常大部分用例应该是可以通过的,所以此类断言的投入产出比非常占优势!通过对比前(之前测试通过)后(后续持续发布)版本在相同测试路径和入参情况下的页面截图是否严格相同来断言结果。揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践2—灵活多样的断言机制页面控件值断言业务逻辑断言自定义断言页面级UI断言后台数据库断言页面级数据断言支持在用例执行过程中嵌入SQL语句,以便从数据库中取实际结果,用于断言。揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践2—灵活多样的断言机制页面控件值断言业务逻辑断言自定义断言页面级UI断言后台数据库断言页面级数据断言通过提取页面JS数据对象(或JSON)、获取格式化后的页面文本内容,来自动对比判断结果是否正确(无需编写断言语句)。原始页面页面文本内容揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践2—灵活多样的断言机制页面控件值断言业务逻辑断言自定义断言页面级UI断言后台数据库断言页面级数据断言在测试过程中如果一些断言结果并不在前台显示,就需要自定义后台断言(操作移动设备、网络设备等),并插入到测试执行过程中。揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践3—根据脚本自动生成用户化的报告传统的测试脚本用户化测试脚本揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践3—根据脚本自动生成用户化的报告有效减少文档格式测试用例的维护成本,并保证用例和软件功能的及时同步。揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践3—
本文标题:Top100summit敏捷的Web-UI自动化测试框架—东软
链接地址:https://www.777doc.com/doc-7539082 .html