当前位置: 首页 > 科技观察

自动化测试与数据驱动的关系,十分钟带你搞清楚_0

时间:2023-03-21 01:23:13 科技观察

软件测试是对项目开发过程的产品(文档、代码等)进行评审,确保产品质量的过程。我们可以通过手动测试、自动化测试、工具扫描等方式来完成这个任务。其中,自动化测试是目前重要的测试手段。具有响应速度快、稳定性高、人工干预少等特点,非常适合需要高响应、海量数据验证的测试任务。数据驱动是自动化测试的灵魂,数据驱动的应用程度直接决定了自动化测试的水平和质量。1.自动化测试和数据驱动如果你有100英亩的小麦要收割,你会怎么做?方法一:拿起镰刀或雇几个人拿起镰刀割麦子。方法二:自制或购买收割机,然后驾驶收割机收割小麦。显然,这两种方法都可以完成任务,但第二种方法具有重资产、高效率的特点。测试就像收麦子。完成小麦收割是一个测试任务。人工收割和收割机收割对应人工测试和自动化测试。这两种方法各有优缺点。人工测试具有使用方便(一把镰刀就够)、适应性强(无论平地、梯田、山丘)的特点。自动化测试具有效率高(收获速度快)、质量稳定等特点。(机器不易出错),不疲劳(机器不需要休息)。对于需要稳定的测试质量、快速的测试反馈、反复验证和海量数据验证的测试任务,自动化测试技术可以很好地满足此类测试任务的要求。测试数据就像机油,是收割机运转的燃料。数据驱动是自动化测试的核心,就像机器的引擎一样,是机器运转的动力源泉。没有测试数据的燃料和数据驱动的动力源,收割机就是一块没有灵魂的废铁,无法运行,自动化测试无从谈起。2.测试数据测试数据作为测试的输入。测试数据准备的好坏直接决定了测试范围是否全面、测试程度是否充分,最终影响到测试过程的质量。测试数据的来源可以概括为两类:存量数据和新数据。存量数据派生是指利用原系统运行中积累的生产数据,经过脱敏处理后生成的测试数据。这个原有系统可以是系统本身(升级优化前的系统、重构前的系统、人工记录的业务数据等),也可以是业务相关的系统(上游业务系统、交互系统等)。这类测试数据的特点是数据已经存在,可以直接使用。缺点是这类数据是通过正常的业务逻辑积累的,通常是高频交易产生的数据。这类数据自然是有限的,无法涵盖系统所有的业务场景,比如:异常操作、低频交易等。新增数据是指根据业务需求和系统设计创建的满足业务需求的数据。这类数据是测试人员通过分析业务需求、系统设计、项目业务需求(包括高频交易和低频交易)、异常处理、边界值测试等人工创建的。这类测试数据具有分析系统、覆盖面广、代表性强的特点。缺点是需要手动创建数据。当系统更复杂或规模更大时,需要进行更多的测试,人工制造的成本更高。基于这两个数据源,我们可以结合业务需求完成项目测试数据的准备工作,通过分析、筛选、提炼,最终沉淀出本次测试所需的测试数据。3.数据驱动测试数据驱动测试是自动化测试的灵魂。在数据驱动测试的思想中,自动化用例就是管道,测试数据像流水一样通过管道,触发系统做出响应。然后,通过在管道上配置断言和检查点,比较系统响应是否与预期响应相匹配。如果满足,说明功能场景正常;如果不满足,说明函数处理有异常。显然,测试数据至关重要。那么自动化测试中的测试数据是从哪里获取的呢?自动化测试数据本质上类似于手动测试数据。但是,由于自动化测试是程序的自动运行,与人工测试数据相比,自然具有需求量大、需求范围广、数据来源多等特点。传统的人工准备数据无法满足自动化测试运行在数量和来源上的海量需求。这时候,我们就需要在手工准备数据的基础上,引入自动化的数据生成方式。一般来说,自动化测试数据可以分为四大类和八个小类,详见下表。表-1自动化测试数据源自动化测试所需的测试数据仍然可以手工制作,主要包括固定标签值和数据资源池。固定标签类别值是指该字段有明确的取值列表,如银行卡账户类型(0-I,1-II,3-III),是否属于(0-本地,1-异地),客户类型(G-政务、B-商户、C-个人)等。数据资源池是将一定的可复用的、少量的数据存储在数据库、CSV文件、文本文件、ini文件等介质中,以供重复提取和使用由程序。这个数据池称为数据资源池。身份证号、手机号、卡号、商户号等离散数据。通过自动化方式准备测试数据主要分为查询、修改、添加三类。查询测试数据可以通过在线查询和sql查询获得。查询测试数据表示测试数据本身存在,需要通过过滤条件将本次需要的数据识别为测试数据。在线查询和sql查询的区别在于我们需要的数据是否有现成的查询接口。如果没有,则需要手动编写sql语句来完成数据过滤。修改数据也是现有数据。修改数据和查询类数据的区别在于查询类测试数据的源数据如果满足测试需求可以直接使用,而修改类测试数据的源数据不能满足测试需要,不能使用直接修改,部分属性需要修改才能满足测试要求。因此需要通过修改操作对源数据进行二次修改。在线修改和SQL修改的区别在于是否有在线修改接口。新增测试数据是指当前环境中没有满足测试要求的源数据,或者当修改后的源数据不能满足测试要求时,需要添加新的测试数据。比如银行账户数据,因为涉及到客户信息验证、账务验证等,简单的插入一条数据是很难通过系统验证的。我们一般直接通过系统开户交易直接添加数据。例如,当新系统没有存量数据,或者环境缺少一些稀有类型的数据时,我们需要添加新的交易来添加基础数据。4.结束语市面上有各种自动化测试工具,如jmeter、postman、metersphere等。测试人员在接触自动化测试时,往往一味地理解,掌握更多的测试工具,忽视提升自动化测试的认知水平,陷入初级自动化测试的陷阱,厌倦学习,无力提升自己.本文致力于提高大家对自动化测试的认识,引导大家向更高层次的自动化测试发展,提升测试人员的整体价值。