小米金融测试部主管高文辉:UI自动化测试,趋势与未来
作为一名15年以上软件测试老兵,小米金融测试主管高文辉在Gdevops全球敏捷运维峰会北京站的舞台上现身说法,以自己在微软和小米的亲身经历,与现场听众进行了一场关于UI自动化测试的交流。 高文辉毕业于北京工业大学,是软件工程与理论专业硕士。同时也获得了VCP(VMware Certified Professional)证书的认证。高文辉还曾在微软中国工作过多年,是Microsoft中国研发中心高级软件开发工程师,同时也曾担任Adobe中国研发中心的高级测试工程师。目前高文辉担任小米金融测试主管,是少数几个达到测试架构师职称的行业专家之一,对于UI自动化测试,他可说是拥有绝对的权威。 在软件行业的实践中,测试的目的是保证软件的质量,包括软件的功能是否符合设计需求,性能是否能满足实际应用环境的要求(如最大吞吐率,响应时间,并发用户数等等),以及安全性,稳定性,兼容性等方面都是软件质量保证的范围。 在介绍过程中,高文辉首先对传统UI自动化进行了介绍。他指出,UI(User Interface)测试是软件功能测试中的重要一环,用来核实用户与软件的交互,其目标在于确保用户界面向用户提供了适当的访问和浏览测试对象功能的操作。除此之外,UI 测试还要确保 UI 功能内部的对象符合预期要求,并遵循公司或行业的标准。传统的UI测试通常有两种方式: 1. 纯手工测试,测试人员先对项目需求和设计文档进行分析,设计测试用例,然后人工构造测试数据并执行测试用例,手工记录执行结果,并反馈发现的软件缺陷。优点是容易适应软件需求的变更,在一次性执行的测试上有较高的效率。缺点是无论是测试用例设计和执行对人员知识水平和经验的依赖都比较高,不同水平的人员往往对测试效果产生较大的影响。 2. 利用自动化测试工具(QTP,Selenium等)对手工测试的过程进行录制,生成可回放的测试脚本,或者直接编写测试脚本,通过运行测试脚本来进行重复性测试。优点是测试脚本有更高的执行效率,同时避免了人工失误的可能性,但同时对测试脚本的维护有需要较高的时间和人力成本,对于一些需求变更频繁的项目,此方式几乎是不可行的,投资回报率(ROI)过低。 接下来,高文辉对传统UI自动化所面临的问题进行了剖析,他认为传统UI自动化的困境在于: l 测试脚本的维护困难,一旦工作流程发生改变, 需要对脚本进行大量修改才能继续使用 l 批量测试数据的使用困难, 因为脚本记录的是用户行为,输入数据是写死的,如果需要使用批量数据进行测试,需要对脚本进行大幅度改造,而不同脚本的生成语言存在功能差异,未必支持一些特殊需求。 为了解决传统UI自动化的难点,高文辉带领小米金服测试部门,开发并使用了一种全新的自动化测试工具,即系统读入被测软件的UI模型(由用户按照软件的UI逻辑和用户行为逻辑生成)。这种模型可以分析用户的行为路径来自动生成可执行的测试用例,这样工作流程的改变只需要修改UI模型,系统可以重新生成测试用例代码,大量节省维护时间,提高工作效率。 在开发过程中,高文辉主要着重于以下几方面的研发 l 系统需求分析与整体设计,开发基础框架选型(Selenium + Junit5) l UI模型设计,实现UI控件捕捉和基于XML的数据结构描述 l UI模型解析与生成测试用例框架设计, 通过测试代码生成引擎完成 l 易用性和用户友好性的改进,实现UI模型生成,导入与测试代码生成的图形化操作 l 测试代码结构的优化,引入测试用例之间依赖关系的设置 高文辉所领导的这个项目,开发周期约为4个月, 由小米金服的软件开发和测试两个部门合作完成,包括架构设计1人,开发3人,测试开发3人, 验收测试2人。目前除小米信贷部门使用外,理财和保险部门也已开始使用,同时在与公司集团MIUI部门(小米手机的操作系统)的自有自动化平台合作,将两者相结合,提高公司整体的自动化测试效率。
在手机APP发版测试引入该工具后,80%的手工测试可以用自动化脚本替代, 版本迭代测试周期从2人2周缩减为1人3天。 以部门的实践来看,小米金融APP的可自动化测试用例共641个,在一次重大版本升级中,由于APP首页和信贷流程改造,477个测试用例的脚本需要修改,而熟练程序员的修改速度大约是10-20个用例/天, 按照两名程序员,每人每天修改20个用例估算,完成全部修改需要12天。而通过UI建模的方法,模型修改只需要一人2-4小时,通过模型生成测试用例是自动过程,时间消耗可以忽略不记,浏览所生成的测试代码并进行调整大概每人每天可以完成80-110个用例,也就是完成全部用例调整需要1人周时间,只占传统方式的21%左右。可以说这一成果大大得降低了软件调试的周期,进而进一步提高小米金融APP的版本更新速度及其在线处理能力。 早在2014年底,小米便推出“生态链计划”,以“投资+孵化”的形式,助力新型制造业及更多行业领域实现供给侧改革。截至目前,小米金融携手合作伙伴已经投资近500家生态链企业,建成全球领先的消费级IoT平台,并吸引着更多科技企业共同参与。作为小米旗下的金融科技服务平台,小米金融自成立之初,即承担着集团推动传统产业升级转型的使命,立足实体经济深耕产业金融服务。小米金融累计放款超300亿元,不良率为零,已发行100亿储架式ABS,银行授信额度超60亿元。而在这背后,小米金融的软件测试部无疑起到了至关重要的作用。因为只有测试安全后,系统程序才能上线,持续的系统更新,保障了小米金融的稳定发展,高文辉在其中毫无疑问扮演了关键性的角色。 在分享的最后,高文辉指出,小米金服的UI自动化测试不是一蹴而就的,这个过程可能是漫长的、持久的,但也是必须的,与时俱进的!走在软件测试道路上的每一位前行者,唯有坚持不懈地去探索,才能不忘初心,方得始终。(陈云)
|
|||||||||||