本文来源于:“鑫智奖”2020第二届金融数据智能优秀解决方案评选 ,作者:

融易通:金融系统自动化测试平台(SAT)

2020-04-11 关键词:开发运维,测试管理5565

解决方案简介
1.平台描述
SAT自动化测试框架工具,即Smart Auto Test(简称SAT)是一款集成QTP、Selenium、APPium等自动化引擎的自动化测试框架工具。该软件测试平台是我公司针对国内用户实际使用的需要,自主研发的一套完整的云测试平台。平台以WEB+分布式部署的方式,以及全自动化的测试过程,使得软件测试更加灵活、简单、高效,能够大化地利用软件源代码测试工具的测试能力,满足用户对测试工具的多用户、多任务的使用需求。同时平台可以全面覆盖Web端和移动端(包括Android和IOS)、部分CS客户端的应用程序测试任务,使得SAT成为一个真正的跨平台、全业务企业级自动化测试解决方案。
 
2.项目背景
为提高IT部软件测试质量,IT部自2012年起启用自动化测试管理平台,满足了部分系统准生产流程验证及回归测试需要,提高了测试的效率,为缩短产品研发测试周期,提高产品质量起到积极的推动作用。随着集团、各主体的业务系统不断扩大,现有自动化测试平台显现出诸多不足,包括权限管理困难、流程设计修改限制多且繁杂、测试数据维护易用性差、脚本开发维护复杂,同时在对外接口、扩展性等方面也显现出诸多问题,对自动化测试质量的提高产生了瓶颈。因此,在集团业务高速发展的今天,需要引入一个更高标准的自动化测试平台及更丰富的功能,去保证我们的软件质量、提高软件测试效率。

我公司现阶段自动化测试平台主要涉及已有的核心系统包括保险、银行、互联网金融等领域的WEB和移动应用系统。

3.设计原则
针对客户项目建设的需求,我们将从数据、业务、技术和系统建设方法等方面进行综合设计考量,遵循下述原则或规范进行方案的制定和设计。

可用和可靠性原则
本系统的设计,首先要考虑的是系统的可用性和可靠性原则。如何保证应用系统的可用和可靠性,对系统的正常使用是至关重要的。系统运行稳定可靠能够7×24小时连续不断稳定工作,有足够的防错措施,系统要考虑到特殊情况下的故障恢复措施。系统应能经受各种环境干扰,长期稳定运行。能提供数据一致性、完整性与安全性,具有充分的误操作保护,防止非法数据存取,并提供实用的查错、排错、容错功能、灾难恢复应变方法。

适用性与可维护性原则
本系统根据客户的实际业务要求设计,适应业务的需求,具有良好的、有序的适应能力和现场操作能力,满足业务需求的同时,拥有良好的用户体验。系统的系统功能和应用实现了参数化,可以随时根据业务的需求对系统的功能进行增减操作,以更好地适应今后业务发展的需要。

遵从SOA及其他国际标准设计
本系统严格遵循国际标准和开放性原则,保证应用系统的可移植性以及其它业务系统的集成性。在设计上遵从SOA设计原则,力求从接口松耦合、技术松耦合、流程松耦合层面让业务系统解耦,提高系统集成性和扩展性。系统结构、软、硬件平台和应用系统的接口从选型、设计到开发都要充分考虑“标准与开放”的原则,设计各种相应的标准接口,既支持现有的各种开放性机型、通讯协议、又能适应新技术的发展,使之具有灵活性和延展性。

可扩展性原则
在系统设计上,不局限于现有的业务需求,而应当从这些业务的规律着手,建立一个可配置化、具有充分扩展性的系统业务平台,以适应后续的业务发展需要。在技术选型上采用稳定可靠的成熟技术,为客户搭建平台级别的稳定的技术及业务框架,同时预留足够丰富和灵活的接口与其他系统进行交互。确保系统可以随时根据业务的需求变化对系统的功能和参数进行增减,以更好地配合客户今后业务发展的需要。

业务流程自动化原则
业务流程实现自动化处理,所有的功能均可以实现直通式的处理,即从业务的发起,至业务的结束,尽量减少人工干预,实现信息的自动带出和手势快速录入,提高展示和业务员管理相关业务的处理效率。比如可以实现对后台业务系统数据的自动带出和前端展示信息的自动回传,客户信息和产品信息的自动带出等。

安全与保密性原则
遵循行业相关信息安全标准,采用切实可行的安全保护和保密措施,以及计算机病毒的防范能力,确保数据安全。设计的系统必须能准确、快速完成业务处理。在授权方面,系统采取基于用户角色管理机制和基于组织机构、硬件设计、设备状态在内多数据特征相结合的多级权限管理体系,保证系统使用灵活性的同时确保系统运行的安全性。

先进与成熟性原则
先进性首先是指新系统所反映的业务处理模式的先进性,必须向提高工作效率、提高客户满意度和用户体验、有效降低参与各方的成本的经营模式靠拢,并充分借鉴国外的先进经验;其次所采用的技术应具有先进性,符合当前技术和管理的发展方向,同时,系统和技术又是成熟的,尽量减少系统的风险。

实用性与用户检验原则
前端在满足客户实际业务需求的同时,也要兼顾良好的用户体验,包括系统界面效果、界面内容、界面操作、系统整体结构、界面元素操作、前后台数据交互和业务交互等,都要满足良好的人机交互界面设计原则,体现良好的人机交互操作和人机交互界面设计原则。实用性也是系统建设的前提,所有的功能都要满足实际业务操作实现,能协助相关人员完成实际工作。

需求主导、突出应用
根据和客户的前期沟通成果,本期系统建设将紧密结合实际工作开展需要,总体设计、高效实施、动态反馈。主要体现在根据客户的实际业务需求,实现建立一个集中的移动生态圈,从系统的角度解决现有工作难以适应业务发展要求和管理的问题,加强系统管理、监控、保证数据的及时性、正确性、完整性、降低风险、提高效率、规范管理的要求。

整体规划、分步实施
从业务应用系统、信息服务系统、网络体系等方面统筹考虑,根据需求的轻重缓急情况,制定出分阶段的实施计划,突出重点、分步实施,确保在分步实施的过程中不要盲目和低效的建设。按照客户移动生态圈信息化规划统一设计系统结构。特别是应用系统建设结构、数据模型结构、业务运营规则以及系统扩展规划等内容,从规划的全局出发、从长远角度考虑。

4.平台整体框架
融易通SAT主要提供移动、WEB等平台的自动化测试解决方案。采用业内领先的业务、脚本、数据三者分离的设计方案,实现了从测试环境->测试设计->执行管理->执行报告的完整测试生命周期覆盖。整个实施过程全自动、零编码。只需一次自动录制就可以实现从单元测试到验收测试各场景的精准测试与无缝衔接。

融易通自动化测试平台实现将测试需求、测试用例、测试数据、原子交易、测试执行、测试结果、综合查询等测试资源进行统一管理。

整体框架从业务流程、业务数据层次上解决测试覆盖率,采用原子交易脚本面向对象封装技术,测试数据对象化总线技术和数据生命周期管理,测试业务流可自动生成测试脚本。

4.1平台设计思路
融易通自动化测试平台(RYT-SAT)采用新的面向业务流程的自动化平台设计方案,并在此基础上引入全业务流程的测试管理框架,从物理上使技术、业务、数据和管理分开,充分发挥技术和业务人员各自所具有的优势,并辅助测试管理者进行有效的管理,形成一套便于测试相关人员分工协作,快速满足业务需求变化、系统变更、数据变更等测试要求,方便各类用户使用的自动化测试框架。


RYT-SAT测试平台由三大部件组成:测试设计平台、测试管理平台和测试执行平台。

基于任何开发框架(包含但不限于mPaaS、TMF、EWP等)使用SAT进行全系统自动化只需进行以下工作,便能快速开展银行系统的自动化测试,而目前这些工作融易通自动化团队已经具备相当大的积累及优势:

录制并维护一套可供业务流调用的、覆盖全部脚本化用例的测试脚本集合;

建立一套可定制的测试数据集合;

建立一套与自动化测试平台相关的规范和管理制度;

4.2分布式部署

一台服务器,多台客户端,通过SAT后台来创建测试人员,给测试人员分配测试模块,就如同手工测试一样,人手一台测试设备,完成分配给自己的测试任务。前端和后台的分布式管理,测试脚本、测试数据、对象操作真正意义上的分离,各个模块间通过高内聚、低耦合的交互设计,从根本上解决了测试脚本维护困难的问题。

4.3自动化实现


SAT工具的引入,将测试的各个环节交于机器来进行,传统人工手动测试需要测试人员先分析理解测试用例,然后通过手按点击的方式来进行终端测试。

SAT识别对象机制,将测试的每一个控件作为一个基础的元素,自动识别并储存在对象库,然后通过对对象的操作来形成测试用例,插入检查点,自动生成测试结果形成测试报告。

行业应用场景痛点简介
1.传统测试面临挑战
*****章 第二章 随着金融行业信息系统在结构、业务、环境等诸多方面的复杂性,业务覆盖范围越来越全面,业务系统的复杂度越来越高, 业务及系统需求的频繁变更,规模的巨大等,给测试工作带来巨大的难题和挑战。手工测试规模的增大,并不能有效解决大量、频繁的变更产生的测试需求。呈现出的责任和风险集中,使得应用系统的失败成本和影响严重程度呈急剧上升趋势,为了降低系统发布风险,有效的方法是对系统进行全面的测试,由于时间短、业务测试人员缺乏使得传统手工测试很难做到在有限的时间内进行高覆盖率的测试 。

手工功能测试面临的问题和挑战具体体现在如下:

业务对软件质量的要求越来越高

手工测试质量基本靠人员的责任心、忍耐性、注意力为基础

测试案例、记录、组织、报告等均靠人来管理和执行,随意性比较大

投产前的后测试不一定完整

总体质量缺乏刚性度量和保证

业务对软件开发、测试、投产的时间要求越来越短

手工测试效率低、周期长

很多项目都进入了迭代或滚动开发方式,手工测试的过程不能复用

大多数实际难以做到完整的回归测试,造成风险

每次测试都需要临时组织协调大量的测试人力资源

手工测试执行需要投入很多测试人员,人力资源紧张,无暇他顾

手工测试技术含量低,大量重复性劳动,人员疲惫,工作成果得不到尊重,降低士气和工作积极性

2.软件自动化测试介绍
随着软件规模和复杂程度的增加,在软件测试工作需要更多时间的同时,项目周期却比以前大大缩短,如何在有限的时间内完成软件测试工作,尽大的可能暴露软件中隐含的缺陷,是软件测试工作中亟待解决的问题,而软件测试自动化将是获取可接受的测试覆盖率的一种有效途径,也是软件测试发展的必然趋势。

软件自动化测试管理简单来说就是通过程序对软件测试活动进行监控和管理,其目的是提高软件产品的质量和控制成本、解放传统手工测试等,来进一步提高软件产品的市常竞争力。自动化测试管理的难点主要集中在测试目标不明确、测试资源的合理分配与管理、测试对象的元素定位、第三方控件的可掌握性、团队协作管理、文档的规范管理。引入自动化测试管理工具可以帮助测试管理和进行管理,并且也可以对测试需求、测试用例、测试计划、测试实施、测试缺陷进行统一管理。以方便管理人员对测试结果进行评估审查。

自动化测试技术发展
自动化测试技术经历了从录制/回放、数据驱动/关键字驱动、业务功能测试、业务流程测试四个发展阶段。

录制与回放的自动化测试,基于数据测试脚本操作对象外部定义脚本数据分离、描述与实现分离工具录制并记录操作的过程和数据形成脚本,通过回放来重复人工操作的过程。

数据驱动与关键词驱动的自动化测试,基于数据对象规则的测试数据生成、测试脚本的生成与维护测试脚本使用外部参数化。

面向业务功能的自动化测试,基于操作规则、界面规则的分析。

面向业务流程的自动化测试,基于“银行” 业务流程规则的分析自动化测试与业务批处理的交互流程中数据传递和大批量用例的执行。
     
自动化测试技术发展过程;

录制回放
优点:快速实施自动化,从而减少测试执行过程中重复劳动。

缺点:脚本可维护性差,自动化成果很难重用。

数据驱动和关键词驱动
优点:配置测试数据灵活,提高测试覆盖;调度已模块化测试脚本灵活,提高测试的适应性;提高测试可重用度。

缺点:专注于测试执行,无法解决测试需求分析、设计等问题;缺少针对银行业务的有效处理。

面向业务功能的自动化

优点:在业务操作界面级和控件级有效实施自动化,实现功能级测试覆盖,自动化辅助测试需求分析、测试案例生成(操作步骤、测试数据和预期结果)、测试脚本生成,与开发过程更好地同步和匹配。


缺点:局限在解决业务操作规则和数据规则等界面级自动化,对业务流程级的关注不够,不能解决对银行产品全生命周期的测试。

面向业务流程的自动化
优点:建立起对银行业务测试完备的测试体系,业务流程、业务功能、界面控件、数据,对银行业务全流程和业务产品全生命周期实施自动化测试,在业务流程级实现覆盖,与业务更好的匹配,减少业务人员投入。

缺点:需要进一步提炼业务功能和业务流程的模式,以适应于SOA架构的银行业务系统。

4.自动化测试特点

自动化测试平台
做为一种全业务流程的测试管理框架,开发并维护一套可供业务流调用的、覆盖全部脚本化用例的测试脚本集合,开发一套可定制的测试数据集合,建立一套与自动化测试平台相关的规范和管理制度。

自动化测试特点

测试框架高效、易用、易于维护,目标是降低自动化测试的实施门槛,提高自动化测试开发、维护效率,简化及减少维护工作,从各方面降低自动化测试的维护成本。

测试框架提供给用户的是一套统一、简单的脚本开发模式。测试人员在设计测试脚本时只需从测试角度出发而无需考虑实现方式,有效降低了自动化测试实施对测试人员的要求,使得业务测试人员开展自动化测试不再困难。

测试框架是在主流功能测试工具的基础上进行了二次开发,简化了自动化测试的实施、根据银行领域的业务、系统特点增加了相应支持,是对传统自动化测试在银行领域的深度应用。

解决方案亮点介绍
1.平台功能亮点
RYT-SAT从功能上划分,分为:基础资产、测试用例、测试执行、测试结果、系统管理。SAT工具分为后台和前端两部分,后台管理被测项目、测试设备、分布式客户端等,前端设计测试对象的管理、测试步骤管理、用户管理、测试计划设定等一系列操作。

功能自动化测试平台的功能范围包括项目管理、对象库管理、脚本管理、测试集管理、调度管理、测试终端管理、报表管理、日志管理、系统管理和归档管理。功能自动化测试平台可以为客户提供以下价值:

业务人员和自动化测试人员分工协作;

用例、场景和脚本自动生成,无需开发;

测试需求、测试用例、自动化测试执行和测试报告一体化管理

对象库作为小管理单元,可以作为参数供测试步骤调用,用例脚本自动更新,有效减少维护成本。

后台管理:支持项目管理、人员管理、角色管理、权限管理等;

被测应用管理
支持Web URL和移动APP的被测应用管理;

支持被测应用的新增、修改和删除操作;

支持被测应用与操作步骤和执行计划的关联;

支持被测应用的分组过滤与准确定位;

设备管理
基于Web浏览器、Android和iOS不同类型的设备管理;

支持设备的新增、修改和删除操作;

支持设备与执行代理和执行计划的关联;

支持被测应用的分组过滤与准确定位;

Agent管理
Agent部署在用于执行自动化操作的电脑,当电脑被启动时,Agent会自动启动,并向服务器注册。接受服务器的自动化测试任务;

Agent支持测试目的管理,可在各Agent上定义Agent能完成的自动化测试目的;

Agent进行任务调度时,会基于任务指定的测试目的,自动分配任务;

Agent支持智能任务调度,测试任务会基于测试目的、指定Agent范围、Agent的忙碌情况等,智能的进行任务分配。用户可以不用具体任务与Agent的关系;

Agent支持分组管理;

提供Agent监控功能,用户可以随时了解所有Agent的运行情况;

测试对象管理
支持Web、Android和iOS平台的测试对象智能分析,自动提取;

测试对象的新增、修改、删除操作;

测试对象的分组管理;

测试步骤管理
测试步骤的新增、修改、删除操作;

基于测试对象快速的、简单的生成测试步骤;

提供测试步骤的分组管理;

测试步骤调试;

测试用例管理
测试用例的新增、修改、删除操作;

基于测试步骤,用户可以快速的组织测试用例;

测试用例分组管理;

测试用例调试,支持C#和JAVA代码生成;

测试计划管理
测试计划的新增、修改、删除操作;

支持测试数据的导入,由数据驱动测试,支持测试数据的自动匹配,效验等操作;

可以为各测试计划指定测试目的,一个测试计划可以指定多个测试目的,以保证一个测试计划可以更好覆盖测试需求(例如兼容性测试);

支持为测试计划指定可执行的Agent范围,用于支持大型自动测试团队的测试资产分配问题;

支持定义测试计划的自动调度安排,可定义各种定期执行的或重复执行的计划。

测试任务管理
任务调度器会基于计划,自动安排执行任务进行自动化测试工作;

提供任务监控功能;

提供任务的中断和取消功能;

自动化测试
SAT支持多种自动化执行引擎(Appium、Selenium、QTP),通过测试对象管理、测试步骤管理、测试用例管理维护了一整套测试资产库。可动态解析为不同引擎所可以执行的脚本;

测试报告
提供测试报告查看的功能,可以具体的查看各个任务、各个计划、各个测试目的的执行情况;

对于执行时出现错误的测试步骤,用户可以查看具体的错误信息及错误时UI的截图。

1.1脚本分层管理

面向对象的多层脚本组织结构,所录即所得,边录边调;


脚本的编写过程中采取数据驱动进行编写,数据驱动使脚本可维护性提高,针对测试用例中的测试数据,根据实际情况,将测试数据从测试脚本分离出去,存储在外部的文件中(比如excel),使脚本只是包含测试代码,当测试数据改变时可以快速修改无需动用测试代码。 

1.2多引擎跨平台


SAT工具对QTP、Selenium、appium等执行引擎做二次封装,因此可以使用SAT工具同时完成Web、android、ios多引擎跨平台的自动化测试任务,有效降低了测试人员能力要求及脚本维护工作量,促进现有工具的利用度,让自动化测试更简单,更专注于业务。

1.3灵活的执行计划
执行计划管理模块可以新增测试计划,以业务为单位,在一台或者多台终端设备执行设定的测试计划,测试计划中可以根据需要,对执行结果报告内容,是否显示执行详情,是否发送邮箱给制定人员等。

以及对测试计划设定,执行次数,执行时间等。

1.4可定制化测试报告
实时查看执行情况,自动记录测试结果,并对错误步骤进行问题分析及错误时UI截图。


清晰简洁的测试报告,可以一目了然的掌握测试情况,除此之外融易通还可以提供定制化测试报告,只要用户将想要的报告格式画出来,融易通就可以根据用户的报告展现demo来定制化开发。

2.平台服务优势
2.1平台优势
相较与其他的自动化测试平台,融易通RYT-SAT主要的的优势体现在以下方面:

RYT-SAT自动化测试可应用于需频繁进行回归测试的项目中,尤其适用于需要投入大量业务人员,进行长期反复测试的项目。具体能参与到的测试阶段如下:

RYT-SAT自动化测试平台经过多年的实施经验,目前整体的测试能力已经达到了中级测试工程师的水平,具体测试能力主要体现在5个测试方面:系统规则测试、业务规则测试、数据传递测试、界面体验测试、场景交互测试,每种测试的具体测试项详细如下:

2.2实施优势
融易通提出建立完整自动化业务测试平台为导向的测试方案,包括测试项目管理、自动化持续每日构建、配置管理、变更管理、业务需求整理、自动化测试、测试数据准备方案、过程管理等方面。本方案能够帮助客户搭建软件自动化业务测试平台,允许用户从需求分析开始直至项目上线分析结束,贯穿软件的全生命周期质量管理流程的每一个阶段,管理所有的测试任务,并提供相应的功能支持,实现自动化覆盖大化,减少用户手工测试工作量,从而提升工作效率,提高自动化测试在回归测试中的应用效率。帮助客户逐步构建以自动化测试为中心的测试管理体系:

融易通自动化测试实施框架按照7部分分布式管理,1-2部分能帮助客户对现有资产进行梳理,建立规范化管理体系;3-7部分把自动化测试工作分为5个模块,每个模块之间都是相对独立的。组建自动化测试时可以灵活的从这5个模块中进行抽取和配置。

在SAT自动化测试平台上进行测试工作的实施,由业务测试人员和自动化测试技术人员分工协作,共分8个阶段完成一次完整的测试迭代。每一个节点的工作重点和提交物建议如下图所示:

3.平台扩展优势
为了进一步满足无界面金融系统的自动化测试需求,深入自动化测试的领域,扩大自动化测试覆盖范围。基于SAT的UI自动化测试方案我们又扩展了业务渗透性测试方案(ITT):业务渗透性测试框架分为前端业务试探性测试以及后台接口测试。

框架以面向业务流程的测试理念设计,将管理和业务方面所进行的测试场景设计和规划,技术方面的脚本和框架设计分开,使得具有不同知识结构的测试人员能够发挥各自的优势,团结协作完成测试工作。测试管理和业务人员可以摆脱技术方面的局限,根据测试需要自行设计测试场景并进行测试。ITT的主要优势体现在:

1、ITT平台有良好的异常错误处理能力,能够在平台执行过程中能够捕获遇到的各种异常情况并进行处理,保证后续的流程可继续执行。

2、可视化配置方式,集中的管理接口自动化测试过程(指定测试执行计划、测试步骤和用例、执行测试套件),并针对每个测试用例都能通过执行产生详细的结果报告,和对所执行的测试用例集进行图表分析。

3、设计的测试用例可以通过配置文件进行维护,测试数据可以通过Jason格式文件进行维护。在测试执行完以后,测试报告以邮件的方式发给相关人员,测试报告中的数据可以脱机访问。

4、ITT平台通过后台服务,可以与外部服务进行有效的交互,可以通过数字签名验证通信双方的合法性与操作的有效性,抵御网络攻击。

综上所述我司ITT接口自动化测试平台可应用于系统环境验证、持续集成、需频繁进行回归测试的项目中,尤其适用于需要投入大量业务人员,进行长期反复测试的项目。尤其适合持续集成且迭代周期段的项目,如敏捷开发的项目。ITT接口自动化测试平台应用于项目中可以提高测试质量、提高测试效率以及更好地重现软件缺陷的能力、更好地利用资源,并有效减少人力资源的投入,加强对测试过程的有效管理。

3.1前端渗透性测试
前端渗透性测试的重点是把被测系统的系统规则和业务规则按照一定规则分开,系统规则是基于界面控件的通用型测试,按照融易通控件测试案例库(500+规则)进行自动化规则比对;业务规则需要测试人员根据需求规格说明书,逐条梳理出系统的业务流程,通过绘制流程图的方式展现该流程,然后分析业务流程,形成正向流程用例、分支流程用例。然后采用场景法和业务流法分析业务功能,对于流转性的功能点要模拟现场办公的真实场景,围绕主干流程进行,同时也要考虑到分支流程对主干流程的影响,每个流程可能涉及多种测试路径,每个路径要逐一进行验证。
两种渗透性测试的具体测试方案如下:

3.1.1业务规则测试
业务规则测试需要选取多个应用场景进行全面的功能测试,由此,将形成一个庞大的工程,根据具体的情况,如:工期长短等条件可以选择针对某些关键业务进行功能或全面测试。测试方法如下:

1.正确性测试
检测各模块的正常情况的处理是否能够正确执行,包括联机交易,批量处理,报表等功能;
检测系统的正常业务处理、正常流程是否能够正确执行;
检测相关联的各个子系统在正常情况下的协调运作情况。

2.反向测试
检测模块的异常情况处理是否能够正确执行;
检测系统的异常业务处理、容错处理是否能够正确执行;
检测相关联的各个子系统在异常情况下是否能够协调运作且能否形成闭环。

3.1.2系统规则测试
系统规则测试又称为容错性测试,用于测试系统在出现故障时,是否能够自动恢复或者忽略故障继续运行。功能测试中的健壮性测试主要关注当引入了不合理的输入时,软件仍能继续正常运行的程度。系统规则的测试方法如下:

1.错误处理测试
输入正确的文字、数字、符号,可以提交成功;
输入特殊字符检测,特殊字符(例如%、&、?、英文状态下的单引号等)不引起系统出错;并有相应提示;
空格的检测:
空格在行首的检测(例如 中国),自动过滤行首的空格;
空格在中间的检测(例如中国 abc),空格保留;
空格在行尾的检测(例如中国 ),自动过滤行尾的空格。
在输入框内输入超出规定长度,系统出现相应的错误提示信息,而不会引起出错等。

2.边界测试
检测当输入或输出为大、小、临界值时模块或系统能否正确处理。

3.错误处理测试
检查对不合法的输入以及错误数据、错误操作是否进行有效性检查和非法性判断;
检查错误提示的描述是否明确,是否容易进行错误定位。

3.2后台接口测试
目前手机银行项目常规的功能测试(人工+自动化)都是黑盒测试,需要测试人员从客户端界面通过点击、输入等事件发起交易,测试人员可见的内容即为测试的全部内容。但实际上发送到后台的交易接口中一部分字段是不在界面显示的,通过常规的功能测试需要进行大量的测试覆盖才有可能发现接口中隐藏字段的问题,多数情况的功能测试是覆盖不到的,这样就容易导致漏测发生。另外,一般功能测试过程中环境和数据并不完全具备,一方面用的是模拟数据或者修改数据库造出的数据,这样就会出现交易类型测试不全,状态覆盖不够的情况;另一方面对于没有环境和数据的特殊交易,测试组无法进行有效的系统测试。这时候引入接口测试的优势就比较明显了,主要体现在以下三方面:

彻底解决交易中隐藏字段的测试不充分、容易漏测问题;

采用接口测试能有效解决功能测试过程中环境和数据并不完全具备,无法进行系统测试的问题;

通过接口的遍历测试完全解决功能测试中交易类型测试不全,状态覆盖不够的情况。

以上的这三种情况,都可以采用接口测试来辅助目前功能测试的不足,从而达到扩大测试范围,增加覆盖率,减少漏测率,提高产品质量的目标。

3.2.1接口测试内容
接口测试的目的是为了测试后台接口,包括核心业务系统各子系统之间的接口,以及外围系统与核心业务系统之间的接口等。接口测试的重点是要检查数据的交换,传递和控制管理过程,还包括处理的次数。一般来说,一条接口要求可以得到一条测试需求。

接口测试是对软件需求规格说明或设计文档中的接口需求逐项进行的测试。接口测试一般需进行:        

A)测试所有外部接口,检查接口信息的格式及内容;

B)对每一个外部输入/输出接口必须做正确和异常情况的测试; 

C)测试硬件提供的接口是否便于使用; 

D)测试系统特性(如数据特性、错误特性、速度特性)对软件功能、性能特性的影响;

E)对所有的内部接口的功能、性能进行测试。

3.2.2接口测试方法
接口测试的原则为:以业务流程为导向,分析接口的测试用例;以管理业务为导向,测试接口的数据交换用例。以下为接口测试方法:

1.接口设计检查
接口用于服务器与客户端的数据交互,客户端通过网络协议传递的数据为服务器接口的输入数据,因此应该首先通过服务器接口文档及客户端数据约束文档进行交互数据的有效性检查:

整数型数据位数;

浮点型数据精度;

字符串数据范围值;

要求客户端的整数型、浮点型、字符串数据以及其大值和小值都能作为服务器接口的有效输入。这些工作在服务器设计评审时就可以进行,以便确保不会出现客户端上传数据被服务器自动进行截断或四舍五入的操作。

2.接口依赖关系检查
以上策略只谈到单个接口的测试方法,对于用户来说,一个操作可能会造成服务器调用多个接口来进行完成,因此还需要从业务处理的角度,对各种业务操作所涉及的多个接口之间依赖调用进行测试。

接口依赖关系检查主要是通过接口的输出值为另一接口的输入值来实现的,因此在进行接口测试之前,需要分析所测试接口的输入值是通过客户端还是其他接口输出来获取的,在设计测试用例时,加入接口的依赖关系说明以便于测试。

3.接口输入/输出验证

服务器接口功能测试类似于单元测试,在设计测试用例时,侧重点在于接口模块输入/输出项的正确性验证。

4.非功能测试方案
非功能专项测试目前主要集成了先进的移动测试平台,能够提供深度兼容性测试、深度性能测试、安全性测试、深度遍历测试、远程真机调试等移动专项测试服务。集成泰尔实验室的平台主要有两发面的优势:

1.测试结果报告的权威性;

2.新机型(未上市机型)兼容性测试的超前性和便利性。
此类专项测试为频度很低的短时间测试项,一般建议在SIT回归测试阶段同步进行,一方面可以保证版本的稳定性,降低重复测试的几率;另一方面可以保证兼容性测试发现问题有充足的修改时间。当然,还得根据具体项目的阶段划分和周期来灵活调整。每种专项测试的具体测试内容及方法如下:

4.1深度兼容性测试
随着操作系统的日新月异以及手机终端厂商的不断推陈出新,兼容性测试已经成为一个需要持续进行的重要测试环节。兼容测试是测试软件在一个特定的硬件/软件/操作系统/网络等环境下的性能如何。向上兼容向下兼容,软件兼容硬件兼容。


融易通深度兼容性测试主要针对移动端的系统版本、机型品牌、屏幕尺寸等维度的兼容性进行的专项测试。由于此类测试需要完备的手机机型及版本配置,目前主要是集成了泰尔实验室的移动兼容性测试平台,由泰尔实验室提供的远端海量真机进行兼容性测试,并提供测试报告。不仅能提供UI及功能的兼容性测试,还能提供深度的环境及性能兼容性测试。

融易通兼容性测试的主要内容:
1、测试软件是否能在不同的操作系统平台上兼容,或测试软件是否能在同一操作平台的不同版本上兼容;

2、软件本身能否向前或向后兼容;

3、测试软件能否与其他相关的软件兼容;

4、数据兼容性测试,主要是指数据能否共享等。

融易通兼容性测试的主要方法:
1、安装/启动/智能探索/卸载;
2、 覆盖安装/登录测试;
3、启动时间/CPU/内存/流量记录;
4、错误日志/自动截图。

4.2深度性能测试
从广泛意义上讲性能测试包括:压力测试、稳定性测试、负载能力测试和疲劳测试等。在不同应用系统的性能测试中,需要根据应用系统的特点和测试目的的不同来选择具体的测试方案。

压力测试模式,即:逐步增加压力,直到系统处于失效状态,以此来获得系统能提供的大服务级别。查看应用系统在各种压力状况下的性能表现。

负载能力测试:在给定的测试环境下,通过在被测系统上不断增加压力,直到性能指标超过预定指标或某种资源使用已经达到饱和状态,目的是了解系统性能容量和处理能力极限。负载测试的主要用途是发现系统性能的拐点,寻找系统能够支持的大用户、业务等处理能力的约束。主要是考察软件系统在既定负载下的性能表现,通过逐步增加系统负载,确定在满足性能指标的情况下,系统所能承受的大负载量。

稳定性测试:通过给系统加载一定的业务压力的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能够稳定运行。需要和压力测试区分开,两者的测试环境和测试目的不一样。压力测试强调在资源极限情况下系统是否出错,可靠性测试强调在一定的业务压力下长时间(如24×7)运行系统,关注系统的运行情况(如资源使用率是否逐渐增加、响应是否是否越来越慢),是否有不稳定征兆。

疲劳测试:模拟系统使用一段时间后的性能表现。

测试内容及方法:

主要分为服务端性能测试和客户端性能测试,服务端性能测试使用LoadRunner性能测试工具对服务器进行短时间高并发进行压力测试,主要对服务器的响应时间、并发用户数、吞吐量以及系统资源利用率等指标进行测试。针对客户端的性能测试,公司测试平台集成了泰尔实验室的深度性能测试工具,测试完成后不仅可以全面获得被测APP在每个终端的安装用时、启动时长、电量、流量、CPU、内存、电池温度等性能信息。还可以测试WebView在正常、峰值、异常负载等多种场景下的运行状态及性能指标:

服务端主要性能指标:
1、应用系统的负载能力:即系统所能容忍的大用户数量,也就是在正常的响应时间中,系统能够支持的多的客户端的数量。
2、应用系统的吞吐率:即应用系统在单位时间内完成的交易量,也就是在单位时间内,应用系统针对不同的负载压力,所能完成的交易数量。
3、系统的响应能力:即在各种负载压力情况下,系统的响应时间,也就是从客户端请求发起,到服务器端应答返回所需要的时间,包括网络传输时间和服务器处理时间。
4、应用系统的可靠性:即在连续工作时间状态下,系统能够正常运行的时间,即在连续工作时间段内没有出错信息。

客户端主要性能指标:
1、一般性能指标:主要测试APP运行过程中的CPU占用率、内存(应用占用RAM、堆内存)、流量 (上行/下行)、帧率、流畅度SM、电量、电池温度等指标,分析性能瓶颈,定位性能问题,提供解决方案。
2、内存泄漏:检测Activity、Fragment对象整个生命周期内的内存泄漏情况。
3、内存溢出:主动捕获此类异常,给出抛出该异常的堆栈信息。并分析当前应用进程占用的总内存大小,已分配的内存大小和可用内存大小,方便开发者定位问题。
4、内存抖动:监控系统的每一次GC,并给出GC发生时的内存使用情况,是否存在频繁生成和回收对象的情况。
5、界面卡顿:记录卡顿的时长超过500ms没有响应就记录一次卡顿,用于给开发者评估本次卡顿的严重性;同时给出发生卡顿时系统CPU和内存的使用情况等信息辅助开发者分析问题。
6、过度绘制:实时监测界面的过度绘制指数,指数大于1.5时即认为该界面可能需要优化。测试报告显示过度绘制指数大于1.5的界面截图,并告诉开发者该界面对应的Activity,给出过度绘制指数的具体数值。
7、启动分析:记录、分析应用的冷启动时间和热启动时间,给开发作为参考。
8、严苛模式:检测到您的应用违反了哪些严苛模式的策略,随后分析问题发生时的应用堆栈信息,指出问题出现在哪儿,并统计该问题出现了多少次。针对在检测到的主线程操作(例如出现主线程磁盘操作,主线程网络操作等)时,还会给出该操作的持续时间等信息,辅助开发者评估问题的严重程度。

测试目的:
可以帮助客户发现APP的性能瓶颈,及时调整软硬件资源配比,降低服务成本,确保系统稳定运行。

测试周期:
深度性能测试一般在版本及环境较为稳定的SIT第二轮进行*****轮测试,但是一般系统在此时的环境配置和生产配置相差较大,部分性能指标不能反映实际情况,仅有参考价值。性能测试第二轮的环境选取尤为重要,因为此时的测试结果要直接反映生产环境的性能指标。一般在接近生产环境的UAT环境或准生产环境进行。性能测试选取测试场景需要和系统测试组、开发项目经理、业务人员共同确定,一般选择实际业务流量大,服务器交互频繁,用户使用频度高,用户使用集中性强的场景作为性能测试场景。

4.3页面响应速度测试
基于融易通自主研发的SAT自动化测试平台开发的移动应用页面响应速度测试工具,从点击控件或切换页面开始,到响应及页面加载完成结束。去除工具处理时间,本机响应时间后可以精准的测试APP启动时间、各个控件的响应时间、页面跳转时间、交易处理时间等各个维度的响应时间指标,误差控制在0.1毫秒之内。

4.4安全性测试
集成了泰尔实验室自主研发的安全测试工具,使用静态、动态漏洞扫描、系统权限分析、恶意代码检查、仿冒应用比对等多种技术,精准定位安全漏洞,主要面向移动应用提供40+项测试,覆盖环境安全、数据安全、通信安全、服务器安全等多个维度。

主要技术优势:
特征码扫描系统(70万病毒及恶意代码的特征值)
静态源码分析系统(104条规则)
动态监控软件对系统权限信息和行为信息的恶意行为
进行敏感内容检测,关键字库包含2600余条敏感内容
漏洞安全采用:IDA Pro,Drozer,Fortify SCA等安全测试工具。
应用软件签名服务安全性高:搭建在屏蔽室中,并以安全方式进行数据传输。

测试覆盖范围:

测试项

是否测试

测试策略

完整性校验

1、业务渗透性测试
2、安全性测试

卸载清除

1、业务渗透性测试
2、安全性测试

版本升级

1、业务渗透性测试
2、安全性测试

登录控制

1、业务渗透性测试
2、安全性测试

支付控制

1、业务渗透性测试
2、安全性测试

支付密码设置

1、业务渗透性测试
2、安全性测试

双因子验证

1、业务渗透性测试
2、安全性测试

超时重新鉴权

1、业务渗透性测试
2、安全性测试

密码强度

1、业务渗透性测试
2、安全性测试

动态调试

1、业务渗透性测试
2、安全性测试

反编译防范

1、业务渗透性测试
2、安全性测试

篡改防范

1、业务渗透性测试
2、安全性测试

测试数据包含

1、业务渗透性测试
2、安全性测试

安装包中敏感信息加密

1、业务渗透性测试
2、安全性测试

第三方SDK安全

1、业务渗透性测试
2、安全性测试

root提示

1、业务渗透性测试
2、安全性测试

敏感信息显示

1、业务渗透性测试
2、安全性测试

敏感数据截获

1、业务渗透性测试
2、安全性测试

密码专用键盘保护

1、业务渗透性测试
2、安全性测试

关键组件访问保护

1、业务渗透性测试
2、安全性测试

未授权敏感信息访问

1、业务渗透性测试
2、安全性测试

敏感数据存储

1、业务渗透性测试
2、安全性测试

敏感数据残留检测

1、业务渗透性测试
2、安全性测试

远程数据传输保密性

1、业务渗透性测试
2、安全性测试

交易通信完整性

1、业务渗透性测试
2、安全性测试

日志信息

1、业务渗透性测试
2、安全性测试

界面切换后敏感信息需清空

1、业务渗透性测试
2、安全性测试

通信协议检测

1、业务渗透性测试
2、安全性测试

双向认证

1、业务渗透性测试
2、安全性测试

重放攻击

1、业务渗透性测试
2、安全性测试

转账安全性检测

1、业务渗透性测试
2、安全性测试

界面劫持

1、业务渗透性测试
2、安全性测试

截屏防范

1、业务渗透性测试
2、安全性测试

短信验证码时效

1、业务渗透性测试
2、安全性测试

移动端系统权限控制

1、业务渗透性测试
2、安全性测试

网络环境切换

1、业务渗透性测试
2、安全性测试

升级中断恢复

1、业务渗透性测试
2、安全性测试

4.5深度遍历测试
采用自动化测试平台模拟真人对Native App的UI操作行为,自动遍历所有控件,覆盖各个异常分支并监测程序crash。

4.6远程真机调试
远程真机调试,主要通过浏览器、开发工具远程连接真实终端,7×24实时操作、快速定位问题。该服务面向开发和测试团队,可以满足测试验证和开发调试的需求。
支持Android、IOS系统2000+真机
远程单步调试,支持eclipse、adb调试
脚本录制回放 在线真机录制
7×24实时操作、异常分析快速定位问题。


金融行业客户名单及客户评价

金融行业客户名单:交通银行、北京银行、三湘银行等。


客户评价:

1.该系统为交通银行的网银、柜面和手机银行系统提供自动化测试服务,实施完成后共支持1200多个不同系统的场景同时段自动化测试能力。实现自动化覆盖大化,减少行内手工测试工作量,从而提升工作效率,提高了自动化测试在回归测试中的应用效率,并帮助银行逐步构建以自动化测试为中心的测试管理体系。--交通银行


2.该系统为北京银行手机银行客户端(Android+IOS)系统提供自动化测试服务,实施完成后共支持1000多个场景同时测试,目前我行已经利用该平台进行需求变更后的版本回归自动化测试,极大的减少了测试人员的重复劳动投入,目前行里正在逐步加大自动化测试的投入并且拆分出兼容性测试、接口自动化测试等专项测试类项目。--北京银行


3.该系统为Web和APP自动化测试平台,融易通自动化测试工程师为项目设计并编写了2000多个常用交易的场景脚本,平台上线以来,一直稳定运行。为三湘银行的手机银行版本升级、兼容性、上线回归测试提供了良好的支持,受到了客户测试部门的一致认可。--三湘银行

本网站案例,除特殊标明来源的,版权归金科创新社所有,未经许可不得转载,否则将视为侵权,对于不遵守此声明或者其他违法使用本文内容者,本网站依法保留追究权。另,本网站部分案例、观点文章来源于网络素材,如有侵权,请邮件联系 fenglei@fintechinchina.com 处理!
特别提示: 本网站免费为广大金融企业提供IT选型咨询服务,详情点击 【 需求提交 】

推荐阅读

更多

广东农信:自动化测试平台建设项目

随着广东农信的业务快速增长,软件产品的广泛使用,使客户对软件产品质量的要求不断提高,作为软件质量的重要保证,软件测试越来越显示出它的巨大优势。

2019第三届农村中小金融机构科技创新优秀案例评选 广东农信 2020-04-11

山东农信:集中运维监控平台项目

为保证日常运行维护工作的顺利开展,确保业务系统安全、稳定运行,山东省联社通过建设集中运维监控平台项目,完成了异构监控系统数据的集中,通过大数据技术对运维监控数据进行挖掘和分析,实现了对运维突发事件的监测、识别、评估与态势感知,有效提高了突发事件的处置能力,初步实现了由IT运维到主动运营服务的转变。

2018第二届农村中小金融机构科技创新优秀案例评选 山东农信 2020-04-11

福建农信:云平台“农信云”项目

随着福建省农村信用社联合社(下称 “福建农信”)规模不断扩大、业务不断增加,应用系统、设备、数据中心空间能耗都不断增加,IT运维各方面都面临种种挑战。

2017首届农村中小金融机构科技创新优秀案例评选 福建农信 2020-04-11

贵州农信:IT可视化运维管理体系建设方案

为切实满足业务连续性及监管部门要求,确保IT系统安全、高效、稳定运行,我社在观山湖数据中心建设过程中同步启动了IT可视化运维管理体系建设。

2019第三届农村中小金融机构科技创新优秀案例评选 贵州农信 2020-04-11

浙江农信:运维一体化管理平台

一体化运维平台的总体构架包括资产管理、自动化运维模块、任务管理、系统管理、单点登录等核心模块

2017首届农村中小金融机构科技创新优秀案例评选 浙江农信 2020-04-11

青海农信:基于产品化云平台实现IT利旧和云计算创新实践

面对云计算、大数据等新型IT技术的蓬勃发展,需要选择一款适用的云平台实现高投入产出比,同时具备持续服务能力、全局高可用能力、虚拟化能力、灾备能力等能够保障业务的不断拓展和安全。

2018第二届农村中小金融机构科技创新优秀案例评选 青海农信 2020-04-11

案例库

金融行业全面的数字金融创新案例,涵盖历届“鑫智奖·金融机构数智化转型优秀案例评选”、“农村金融机构科技创新优秀案例评选”、“城市金融服务同业案例征集活动”等科技创新参评案例

  • 开发运维
  • 测试管理

微信
咨询

微信咨询

扫码添加金科小助手微信号
咨询案例和解决方案相关信息
或联系对应机构