• 快捷搜索
  • 全站搜索

回归测试:技术是手段 管理是根本

2015-01-14 17:48:05作者:中国农业银行股份有限公司数据中心 郭丽 周期律 杨志刚 高编辑:金融咨询网
农业银行开展了关于自动化功能测试案例管理方案的研究工作,旨在提高自动化测试案例的质量,使其具有更高的可回归性,同时依托于自主研发的自动化功能测试系统,将此管理方案加以实践。实践证明,技术工具是手段,管理体系才是解决问题的根本。

随着计算机应用领域的迅速扩大,人们对软件质量提出了更高的要求。软件测试的自动化技术帮助软件开发人员和测试人员在更短时间内开发出更高质量的产品,可以高效地完成一些重复性测试,尤其是在回归测试领域,通过代替频繁重复的手工测试节省了大量的时间和开支。然而遗憾的是,成功有效并且经济实用的自动化测试往往很难实现,一些主流自动化测试工具存在测试案例频繁失效、回归测试难、资源复用率低等一系列关键问题。而导致这些问题的根源并不在于自动化测试工具本身,主要在于缺乏行之有效的管理策略。

        为解决这些问题,农业银行开展了关于自动化功能测试案例管理方案的研究工作,旨在提高自动化测试案例的质量,使其具有更高的可回归性,同时依托于自主研发的自动化功能测试系统,将此管理方案加以实践。在实际应用过程中,自动化测试案例的交易覆盖率达到了全量交易的93%,参与了核心系统主机操作系统升级回归测试、数据库升级回归测试、核心系统一期升级接口变更回归测试等项目,在核心系统测试工作中得到广泛而有效的应用,取得了良好的经济效益和社会效益。

一、自动化功能测试案例管理目标

        为解决当前自动化测试中存在的问题,首先要分析为何会出现测试案例频繁失效、回归性差等问题的原因。在实际的研究过程中发现,大多数人只是将自动化测试当成了一个简单的执行工具,其自动化测试只是发生在测试案例的执行流程上,单纯地将测试用例变成自动化脚本就认为完成了自动化测试。然而在自动化测试案例中由于测试步骤是预先录制完成的,经常存在由于交易的接口变化导致测试案例无法执行,或者由于测试数据变化(例如后台数据库变更或数据更新)致使测试案例失效,另外测试人员的水平参差不齐也严重影响测试案例的质量。

        经分析和实践证明,影响自动化测试质量的根源可以分别归纳为被测交易、测试数据、测试案例和测试结果四个方面,故而要真正做到自动化测试,仅关注测试案例执行流程是远远不够的,可以说,面对现在应用程序和系统越来越大、越来越复杂的情形,技术工具是手段,管理才是根本,要想解决当前存在的问题,需要一套完整的、具有可操作性的自动化测试案例管理体系,在管理中关注测试案例的设计、测试数据的准备和更新、被测交易的接口变更识别、测试案例的执行、测试结果的分析、测试案例的检查和修复等过程,只有将这些过程全部纳入到管理流程中,才能够真正提高测试案例的可回归性,将自动化测试运用到实际工作中。

        本研究的重点即在于结合自动化功能测试系统提供的技术手段,主要针对被测交易、测试数据、测试案例和测试结果四个方面设计一套切实可行的管理体系,旨在提高测试案例的质量,使之具有更高的可回归性,解决上述自动化功能测试面临的问题;同时具有可操作性,从而适应当前应用版本和数据不断变更的实际情况。

二、测试案例管理流程概述

        本研究体系对测试数据、被测交易、测试案例和测试结果四个方面分别提出了相关的管理流程:关键测试数据管理流程、交易格式信息管理流程、自动化测试案例管理流程和执行结果分析管理流程。如图1中所示,描述了四个管理流程,及不同流程中包括的11个管理节点,包括案例设计、案例检查、案例入库、案例执行、案例修复、数据模型管理、数据准备、交易发布、接口变更检查、测试结果分析和缺陷报送,不同的管理节点由不同的角色负责。

高可回归自动化功能测试案例管理-体系的研究与实践-图1.jpg

        1.关键测试数据管理流程

        此流程主要解决测试用例中,使用的数据由于测试环境对应的数据库变更或数据更新的原因使得原有的测试数据过期,导致测试案例失效的问题。

        测试案例中使用到的测试数据,可归纳为关键测试数据和非关键测试数据,关键测试数据指测试数据随着环境的变化会导致测试案例的失效,例如测试案例中使用到的卡号,如果数据库变更或卡的状态发生变化,可能会导致测试案例失效;而非关键数据是指数据随着环境的变化不会引起测试案例的失效,例如存款交易中的金额等。因此此流程只针对关键测试数据进行管理。

        关键测试数据的管理流程分为两个管理节点,分别是数据模型管理节点和数据准备管理节点。

        (1)数据模型管理节点
        数据模型管理节点指由管理员对存储在测试数据资源池中的数据模型进行管理,包括增删查改,根据测试人员提出的关键数据模型的修改需求进行受理、分析和相关操作。

        (2)数据准备管理节点
        数据准备管理节点指数据管理员根据测试需求适时对测试数据进行提取和更新,并发起自动校验,查看验证结果,对验证不通过的测试数据进行相应的分析和处理。

        由于测试案例中实际使用到的关键测试数据是随环境改变的,故本研究对关键测试数据进行抽象提取和实例化,提出了关键数据模型和关键数据实例的概念,其中关键测试数据实例指在执行测试案例时实际使用到的测试数据,例如某一个卡号,而关键测试数据模型是指为得到关键测试数据实例所需的由若干数据列组成的基本数据结构,例如对于借记卡这类数据结构来说,包含卡号、省号、行号、状态、账号、开户人、证件类型、证件号等数据列,以及数据的抽取规则,与实际数据库进行关联,通过抽取规则可实时更新关键测试数据实例,并在测试案例执行前进行验证。

        通过以上两个管理节点形成的关键测试数据管理流程,以及自动化抽取技术、自动化校验技术,从管理和技术两个层面解决了测试数据经常失效的问题,在支持回归测试的同时,还可为项目组提供批量测试数据生成的服务。

        2.交易格式信息管理流程

        此流程是为了解决测试案例所涉及的交易接口变更导致测试案例失效的问题。在交易格式信息库流程中分为交易发布和接口变更检查两个管理节点。

        (1)交易发布管理节点
        交易发布管理节点由测试案例管理员定期或根据测试人员提出的申请,到开发版本提交环境中提取需要的版本发布到测试环境中。

        (2)接口变更检查管理节点
        接口变更检查管理节点指交易发布成功后,案例管理人员发起接口变更检查,对交易接口的变化引起的失效测试案例进行甄别,并通知测试人员。

        通过以上两个管理节点,以及交易接口的自动修复技术,能够有效解决交易接口变化导致的测试案例失效。

        3.自动化测试案例管理流程

        测试案例库用于保存和管理测试案例,自动化测试案例管理流程包括案例设计、案例检查、案例入库、案例执行和案例修复五个管理节点。

        (1)案例设计管理节点
        测试人员在测试前通过自动化案例设计工具遵循管理流程中规定的设计原则对新的被测交易的测试案例进行设计,并填写相关的记录表。

        (2)案例检查管理节点
        检查人员按照相关的检查步骤和原则,对测试人员上报的案例检查工作表对案例进行初步的检查和执行,判定测试案例是否符合入库条件。

        (3)案例入库管理节点
        检查通过以后,由测试人员将设计好的测试案例存入测试案例库中。

 1 2 下一页 尾页

扫码即可手机
阅读转发此文

本文评论

相关文章