CN111459809A - 一种基于快速需求版本迭代的软件测试方法 - Google Patents
一种基于快速需求版本迭代的软件测试方法 Download PDFInfo
- Publication number
- CN111459809A CN111459809A CN202010207516.9A CN202010207516A CN111459809A CN 111459809 A CN111459809 A CN 111459809A CN 202010207516 A CN202010207516 A CN 202010207516A CN 111459809 A CN111459809 A CN 111459809A
- Authority
- CN
- China
- Prior art keywords
- test
- data
- module
- setting
- case
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000013522 software testing Methods 0.000 title claims abstract description 13
- 238000012360 testing method Methods 0.000 claims abstract description 449
- 230000008569 process Effects 0.000 claims abstract description 27
- 238000013142 basic testing Methods 0.000 claims abstract description 16
- 238000012795 verification Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000011161 development Methods 0.000 claims abstract description 6
- 230000006870 function Effects 0.000 claims description 33
- 230000004044 response Effects 0.000 claims description 33
- 238000011056 performance test Methods 0.000 claims description 32
- 238000013515 script Methods 0.000 claims description 31
- 230000000391 smoking effect Effects 0.000 claims description 19
- 239000000779 smoke Substances 0.000 claims description 13
- 238000002360 preparation method Methods 0.000 claims description 7
- 230000003068 static effect Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 238000012550 audit Methods 0.000 claims description 3
- 230000006835 compression Effects 0.000 claims description 3
- 238000007906 compression Methods 0.000 claims description 3
- 235000013399 edible fruits Nutrition 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000007689 inspection Methods 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 6
- 230000000694 effects Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000007547 defect Effects 0.000 description 5
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012372 quality testing Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011990 functional testing Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种基于快速需求版本迭代的软件测试方法,包括如下步骤:步骤1,设置基本测试类型库(100);步骤2,设置测试case优先级(200);步骤3,根据需求说明书,选择测试类型,确认测试重点,输出测试case优先级,自动执行用例case,输出测试报告(300)。本发明可以帮助客户快速搭建自动测试和验证系统,快速编辑测试系列文件,多流程控制,多线程执行,提升测试吞吐量,可满足绝大部分测试处理要求,测试驱动支持的情况下,可以兼容绝大部分产品的测试需求,执行效率高。在本发明的帮助下,工程师的工作将更加有针对性,极大的缩短项目中测试软件阶段的设计开发工作。
Description
技术领域
本发明属于软件测试技术领域,尤其涉及一种基于快速需求版本迭代的软件测试方法。
背景技术
在如今软件产品快速的更新迭代下,一款软件产品要在市场中具备一定的竞争力,该软件产品必须具有很硬的质量,软件测试是软件生命周期的一个非常重要的环节,是保证软件功能、性能、可信、可靠等特性获得供需双方认可的关键环节和主核心手段。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。如何在有限的时间内,快速的,有规律的测试是我们需要解决的重要难题。现有技术中,在确定软件的测试方案时,通常是基于测试人员的经验和对被测软件的了解,人为制定测试方案。然而,依赖人为的经验进行的随机测试行为具有很大的不确定性和不稳定性,对于测试人员的专业素质要求较高,容易受到其他外界因素的干扰,并且繁琐的测方案使得在软件测试过程中,测试过程复杂,容易产生测试依据含混、测试覆盖不全、测试成果复用困难、错误测试结果等多种技术弊端,从而影响测试的质量。
发明内容
发明目的:为解决背景技术中存在的技术问题,本发明提出一种基于快速需求版本迭代的软件测试方法,包括如下步骤:
步骤1,设置基本测试类型库(100);
步骤2,设置测试case优先级(200);
步骤3,根据需求说明书,选择测试类型,确认测试重点,输出测试case优先级,自动执行用例case,输出测试报告(300)。
步骤1包括:设置基本测试类型库(100),基本测试类型库(100)用于进行测试类型定义,将软件测试项目中使用到的测试类型拆分为并行的3个模块:业务数据功能流程测试模块(101)、性能测试模块(102)和自动化测试模块(103),以及单独的冒烟测试模块(104);所述冒烟测试模块(104)用于完成冒烟测试。
步骤1中,所述业务数据功能流程测试模块(101)用于,在业务流程中的数据流程测试,包括:通过准备测试数据,输入数据场景执行测试,输出相关数据;同时检查软件在按流程操作时,数据是否能够正确处理。
所述业务数据功能流程测试模块(101)具体执行如下步骤:
步骤1-1,准备测试数据:
在创建测试数据过程中,对要用到的SQL语句封装成独立的测试数据包,当创建数据时,直接调用独立的测试数据包;
运用API调用和数据库操作的方式生成测试数据;
API调用生成基础的测试数据,然后使用数据库的CRUD操作生成符合特殊测试需求的数据;以创建一个会员为例:假设,需要封装一个创建会员的函数,这个函数需要对外展示“会员的名称”和“支付方式”这两个参数。由于实际创建会员是通过后台creaetMemberAPI完成的,但是这个API并不支持指定“用户名称”和“支付方式”,因此需要封装一个创建会员的函数。
核心思路:
1、调用creaetMember API完成会员名称的创建
2、调用paymentMethod API实现用户对于多种支付方式的绑定
3、其中paymentMethod API使用的MemberID就是上一步中creaetMember API产生的用户ID;
4、通过数据库的SQL语句更新“用户名称”;
步骤1-2,输入数据场景:
根据需求的不同用户场景输入关键的数据场景流程判断条件;
数据的判断标准需要符合业务意义的数据;
在数据处理的过程中通过设置边界数据来进行测试;
除了设计正常数据用例,异常数据用例也是需要根据不同的特点进行设计的;
正向流程的数据处理和逆向数据的流程处理;
例如:用户登录数据场景校验:
(1)正向用户场景,用户名密码正确,正常登录成功
(2)逆向用户场景,用户名密码错误,正登录失败
(3)密码是6位数字:校验设置7位数字边界值测试,设置密码失败
(4)特殊字符的校验设置密码失败
步骤1-3,输出数据:通过连接数据库,将得到的结果数据以及报表中的数据进行显示,并根据报表的格式提供输出数据。
步骤1中,所述性能测试模块(102)用于:验证软件的性能是否满足系统规格要求的性能指标,包括:根据业务需求指标系统同时在线数,计算出具体的TPS响应时间(TPS:是Transactions Per Second的缩写,也就是事务数/秒)、吞吐量和并发用户数,再利用现有的性能测试平台把业务指标转换为具体的技术指标,所述技术指标包括时间指标和资源利用率。
所述性能测试模块(102)执行如下步骤:
步骤2-1,进行脚本录制,包括如下步骤:
步骤2-1-1,添加线程组:配置线程组名称、线程数、准备时长和循环次数;
线程数:一般虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
准备时长:设置的虚拟用户数可以多长时间全部启动。例如,线程数为100,准备时长为2,那么需要2秒钟启动100个线程,也就是每秒钟启动50个线程。
循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
步骤2-1-2,设置HTTP请求:向目标服务器发送HTTP请求协议,HTTP请求协议是HTTP或HTTPS,默认为HTTP;
设置HTTP请求发送的目标服务器名称或IP;
设置目标服务器的端口号,默认值为80;
发送HTTP请求的方法采用GET或者POST;
设置目标URL路径;
步骤2-1-3,添加结果树;
添加用户自定义变量用以Http请求参数化;
步骤2-1-4,添加性能测试报告;
步骤2-2,进行脚本调测,包括如下步骤:
步骤2-2-1,根据业务场景确定具体的吞吐量和TPS响应时间;比如压测秒杀商品A吞吐量要求1万,平均相应时间为3m内,并发用户1000;
步骤2-2-2,根据已经录制的脚本不断地增加并发用户,首先设置线程数为1,调通脚本;再设置线程数为100,300,600,900,1000循环100次查看吞吐量和平均相应时间;
2-3,如果TPS响应时间在正常范围内,比如5秒内,但是吞吐量超过TPS的值3分之一以上,了,需要执行页面压缩,分2种形式,通过网络加载优化:减少HTTP资源请求次数和请求大小,合并静态资源图片、JavaScript或CSS代码,放在一个文件里;不是首页面的数据,采用异步加载或者滚动加载;
步骤2-2-4,当增加并发用户数时,吞吐率量和TPS响应时间的变化曲线呈稳步递增,则系统稳定;
步骤2-2-5,当增大系统的压力或增加并发用户数时,吞吐率量和TPS响应时间的变化曲线不变,则系统稳定;
步骤2-2-6,将不同的测试场景或者不同的接口进行混合测试;多种模块一起进行测试,更符合真实场景,便于对服务器的整体处理能力进行评估,多种模块指不同的测试场景或者不同的接口压测,混合测试时的TPS响应时间等于单个事务的TPS响应时间总和;
步骤2-3,执行脚本测试:
通过配置线程组,配置本次性能测试相关参数,包括:线程数、循环次数和持续时间;这里配置并发用户数为10,持续时间为60s;
执行测试;
步骤2-4,测试结果分析。
待性能测试执行完成后,打开聚合报告可以看到聚合报告参数详解:
1)一般而言,性能测试中,需要重点关注的数据有:#Samples请求数,Average平均响应时间,Min最小响应时间,Max最大响应时间,Error%错误率及Throughput吞吐量
2)响应时间等于网络响应时间加应用程序相应时间。
7、根据权利要求6所述的方法,其特征在于,步骤1中,所述自动化测试模块(103)用于:完成自动化测试,从而替代手工重复性测试,自动化测试模块(103)具体执行如下步骤完成自动化测试:通过自动化测试模块(103)建立相应的服务类,在一个服务类下面建立相应的测试case;例如在自动化工具的设置的时候通过建立独立的服务类来区分不同功能之间的联系,每个服务类下面可以设置不同的独立的case:服务类是根据在excel表格中建立相应的测试case对应的测试数据和期待值,以及测试cae编号、接口说明、接口路径、备注、测试人、测试时间;通过利用自动化测试工具,对接口的入参的输入,对接口的返回值,做全参数校验和翻页校验,生成对应的testng中间文件,最终产生测试报告。
自动测试一般定义为:各种测试活动的管理与实施,包括测试case的设计,测试脚本的开发与测试case的执行,以便使用质量测试系统的自动测试工具来验证测试需求。测试活动的自动化在许多情况下可以获得最大的实用价值,尤其在自动化测试的测试用例开发和组装阶段,测试脚本被重复调用,可重用脚本可能运行很多次。
自动化测试的主要特点:
1、测试数据与测试脚本分离,采用数据脚本分离原则,使业务处理逻辑和用例脚本分离,多脚复用;
2、在分布式框架中,测试采用分中心、分业库、调用业界成熟分布式框架;
3、系统采用关键逻辑主分支测试、业务分支测试、多用例、多脚本、多场景全面覆盖;
4、被测接口返回相应逻辑结果、逻辑状态、逻辑内容;
5、对被测接口返回逻辑结果、逻辑状态、逻辑内容进行分结果、分状态、分内容进行校验断言;
6、做到分中心数据可重复性使用,异步备份与还原,从而达到数据可重复执行;
6、根据权利要求5所述的方法,其特征在于,步骤1中,所述冒烟测试场景模块(104)用于:完成冒烟测试,冒烟测试的场景包括业务数据功能流程测试模块(101)、性能测试模块(102)和自动化测试模块(103)中核心的用户场景,例如:业务数据功能流程测试模块(101)校验会员登陆场景,用户秘密正确或者是否可以登陆;自动化测试模块(103)中新增商品校验,加入购物车接口校验;普通商品下单场景;性能测试模块(102)中商品秒杀场景;冒烟测试场景在质量测试系统中输出完成后,通过配置文件,通过不同的用户权限和环境代码打包提交后,程序自动识别,工程编译,静态代码检查执行测试场景,生成测试报告。
8、根据权利要求7所述的方法,其特征在于,步骤2中,所述设置测试case优先级(200),包括:设置3级测试case(201)和测试case审核(202),所述设置4级测试case(301)包括如下步骤:
步骤2-1,根据测试需求说明书,设计不同的操作系统,根据系统拆分出最小的单元模块,再设计出每个模块之间的关联关系,根据关联关系设计出输出具体的测试用例;例如模块之间关联关系指:比如下订单的模块依赖会员的模块和商品的模块。订单流程可以完成的前提是注册完成会员,新建商品成功。
步骤3-2,根据需求说明书,测试重点输出核心功能场景,输出测试优先级;测试的优先级从自动化测试和性能测试两个类型库同步梳理,根据不同的类型分别在现有的自动化测试平台和性能平台分别执行;
步骤3-3,设置3级测试case(201)的3个级别:1级高Highs,2级中Mediums,3级低Lows;自动化测试设置取前3级用例,性能测试取前2级对应的bug都提交到质量系统的已有的bug工具进行跟踪,3个级别的用例和占比是100%;
系统功能测试会执行3轮。正常情况下,1级高Highs自动化测试case和性能测试case会被执行3次,分别在第一轮测试环境,预生产环境,生产环境执行;2级中Mediums会被执行2次分别在第一轮测试环境,预生产环境执行,3级低Lows执行一次在第一轮测试环境执行。
1级高Highs:一般占系统用例的25%,主要指核心的测试用例保障系统的主要功能没有问题;
2级中Mediums:一般占系统用例的50%,主要包括一些功能交互相关、各种应用场景、使用频率较高的正常功能测试用例;
3级低Lows:一般占系统用例的25%,是在测试环境被执行的测试用例。包含页面文字颜色深浅,文本框边框粗细的需求差异,数值或数组的便捷情况、特殊字符、字符串超长、与外部件交互消息失败、消息超时、事物完整性测试、可靠性测试等等。
所述测试case审核(202)包括:根据已经存在的质量系统工具,关联到具体的项目和需求模块,在需求模块下输出具体测试case,测试case完成后,进行在线审核,需要审核的具体内容如下:
步骤a1,测试case本身的描述需要清晰,语言需要准确,不能存在二义性;
步骤a2,测试case内容需要完整,清晰的包含输入和预期输出的结果;测试用例每一步执行步骤需要清晰;
步骤a3,测试case中使用的测试数据务必恰当、准确;
步骤a4,测试case具有指导性,能灵活的指导软件测试工程师通过测试用例发现更多的缺陷;
步骤a5,测试case需要考虑到测试用例执行的效率,对于不断重复执行的步骤,要保证验证点相同或者测试用例的设计是不存在冗余性,这些都可能导致测试用例执行效率低下;
步骤a6,画出软件项目需求跟踪矩阵,画出测试case系统脑图,验证测试用例是否完全覆盖了需求,验证测试用例的覆盖性;
步骤a7,测试用例是否完全遵守了软件需求的规定。
步骤2中,所述设置测试case优先级(200)能够根据测试的类型库在不同的平台进行自动执行测试。
步骤3包括:在质量测试系统建立待测试项目A:根据关联需求需求分析,确认设置基本测试类型库(100);根据测试类型的不同输出不同的测试case:业务数据功能流程测试模块(101),性能测试模块(102)根据用例优先级在质量测试系统,性能测试系统执行1级高Highs,2级中Mediums,3级低Lows。自动化测试case在质量测试系统的自动化测试工具执行自动化测试模块(103)对应的测试case。冒烟测试模块(104)的测试内容由数据功能流程测试,自动化测试工具和性能测试工具执行冒烟测试场景,同步完成;测试类型确认完成,根据测试需求说明书和不同的类型输出,设置测试case优先级(200);最后根据需求说明书,选择测试类型,确认测试重点,输出测试case优先级,通过自动化测试工具执行测试case,自动输出不同类型的测试报告(300),针对测试报告进行输出准则判断,如果符合上线输出准则,准予上线,否则,判定为失败的测试case,根据失败的测试case,通过测试日志分析原因,提交测试bug,开发修改完成,提交代码,测试再次执行失败的测试用例。测试报告有效的提供了项目上线验证的有效判断标准。
相比于现有技术中人为确定的测试方法而言,本发明保证了根据项目的需求和时间,一方面,避免了现有测试技术测试过程复杂性,容易产生测试依据不清晰、测试覆盖不全、测试成果复用困难、错误测试结果等多种技术弊端;另一方面,通过灵活筛选出来的测试方案中的核心内容的重要性和全面性,更精确的覆盖被测试软件的重点功能和测试的优先级,实现了对待测软件进行高效且精准的测试的技术效果。
与现有技术相比,本发明的有益效果是:
通过设置软件功能模块重难点,测试优先级,实现软件测试分层分级管理,测试效率提高,方便且能够快速定位项目的重点核心模块问题,风险点所在,可普遍适用于运行软件的项目产品中。
实现了现有测试技术测试过程复杂性,测试依据不清晰、测试覆盖不全、测试成果复用困难、错误测试结果等多种技术弊端。
通过灵活筛选出来的测试方案中的核心内容的重要性和全面性,更精确的覆盖被测试软件的重点、难点功能,实现了对待测软件进行高效且精准的测试的技术效果。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1为本发明流程示意图。
图2是本发明架构图。
具体实施方式
如图1和图2所示,本发明提出一种基于快速需求版本迭代的软件测试方法,包括如下步骤:
步骤1,设置基本测试类型库(100);
步骤2,设置测试case优先级(200);
步骤3,根据需求说明书,选择测试类型,确认测试重点,输出测试case优先级,自动执行用例case,输出测试报告(300)。
步骤1包括:设置基本测试类型库(100),基本测试类型库(100)用于进行测试类型定义,将软件测试项目中使用到的测试类型拆分为并行的3个模块:业务数据功能流程测试模块(101)、性能测试模块(102)和自动化测试模块(103),以及单独的冒烟测试模块(104);所述冒烟测试模块(104)用于完成冒烟测试。
步骤1中,所述业务数据功能流程测试模块(101)用于,在业务流程中的数据流程测试,包括:通过准备测试数据,输入数据场景执行测试,输出相关数据;同时检查软件在按流程操作时,数据是否能够正确处理。
所述业务数据功能流程测试模块(101)具体执行如下步骤:
步骤1-1,准备测试数据:
在创建测试数据过程中,对要用到的SQL语句封装成独立的测试数据包,当创建数据时,直接调用独立的测试数据包;
运用API调用和数据库操作的方式生成测试数据;
API调用生成基础的测试数据,然后使用数据库的CRUD操作生成符合特殊测试需求的数据;以创建一个会员为例:假设,需要封装一个创建会员的函数,这个函数需要对外展示“会员的名称”和“支付方式”这两个参数。由于实际创建会员是通过后台creaetMemberAPI完成的,但是这个API并不支持指定“用户名称”和“支付方式”,因此需要封装一个创建会员的函数。
核心思路:
1、调用creaetMember API完成会员名称的创建
2、调用paymentMethod API实现用户对于多种支付方式的绑定
3、其中paymentMethod API使用的MemberID就是上一步中creaetMember API产生的用户ID;
4、通过数据库的SQL语句更新“用户名称”;
步骤1-2,输入数据场景:
根据需求的不同用户场景输入关键的数据场景流程判断条件;
数据的判断标准需要符合业务意义的数据;
在数据处理的过程中通过设置边界数据来进行测试;
除了设计正常数据用例,异常数据用例也是需要根据不同的特点进行设计的;
正向流程的数据处理和逆向数据的流程处理;
例如:用户登录数据场景校验:
(1)正向用户场景,用户名密码正确,正常登录成功
(2)逆向用户场景,用户名密码错误,正登录失败
(3)密码是6位数字:校验设置7位数字边界值测试,设置密码失败
(4)特殊字符的校验设置密码失败
步骤1-3,输出数据:通过连接数据库,将得到的结果数据以及报表中的数据进行显示,并根据报表的格式提供输出数据。
步骤1中,所述性能测试模块(102)用于:验证软件的性能是否满足系统规格要求的性能指标,包括:根据业务需求指标系统同时在线数,计算出具体的TPS响应时间(TPS:是Transactions Per Second的缩写,也就是事务数/秒)、吞吐量和并发用户数,再利用现有的性能测试平台把业务指标转换为具体的技术指标,所述技术指标包括时间指标和资源利用率。
所述性能测试模块(102)执行如下步骤:
步骤2-1,进行脚本录制,包括如下步骤:
步骤2-1-1,添加线程组:配置线程组名称、线程数、准备时长和循环次数;
线程数:一般虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
准备时长:设置的虚拟用户数可以多长时间全部启动。例如,线程数为100,准备时长为2,那么需要2秒钟启动100个线程,也就是每秒钟启动50个线程。
循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
步骤2-1-2,设置HTTP请求:向目标服务器发送HTTP请求协议,HTTP请求协议是HTTP或HTTPS,默认为HTTP;
设置HTTP请求发送的目标服务器名称或IP;
设置目标服务器的端口号,默认值为80;
发送HTTP请求的方法采用GET或者POST;
设置目标URL路径;
步骤2-1-3,添加结果树;
添加用户自定义变量用以Http请求参数化;
步骤2-1-4,添加性能测试报告;
步骤2-2,进行脚本调测,包括如下步骤:
步骤2-2-1,根据业务场景确定具体的吞吐量和TPS响应时间;比如压测秒杀商品A吞吐量要求1万,平均相应时间为3m内,并发用户1000;
步骤2-2-2,根据已经录制的脚本不断地增加并发用户,首先设置线程数为1,调通脚本;再设置线程数为100,300,600,900,1000循环100次查看吞吐量和平均相应时间;
2-3,如果TPS响应时间在正常范围内,比如5秒内,但是吞吐量超过TPS的值3分之一以上,了,需要执行页面压缩,分2种形式,通过网络加载优化:减少HTTP资源请求次数和请求大小,合并静态资源图片、JavaScript或CSS代码,放在一个文件里;不是首页面的数据,采用异步加载或者滚动加载;
步骤2-2-4,当增加并发用户数时,吞吐率量和TPS响应时间的变化曲线呈稳步递增,则系统稳定;
步骤2-2-5,当增大系统的压力或增加并发用户数时,吞吐率量和TPS响应时间的变化曲线不变,则系统稳定;
步骤2-2-6,将不同的测试场景或者不同的接口进行混合测试;多种模块一起进行测试,更符合真实场景,便于对服务器的整体处理能力进行评估,多种模块指不同的测试场景或者不同的接口压测,混合测试时的TPS响应时间等于单个事务的TPS响应时间总和;
步骤2-3,执行脚本测试:
通过配置线程组,配置本次性能测试相关参数,包括:线程数、循环次数和持续时间;这里配置并发用户数为10,持续时间为60s;
执行测试;
步骤2-4,测试结果分析。
待性能测试执行完成后,打开聚合报告可以看到聚合报告参数详解:
1)一般而言,性能测试中,需要重点关注的数据有:#Samples请求数,Average平均响应时间,Min最小响应时间,Max最大响应时间,Error%错误率及Throughput吞吐量
2)响应时间等于网络响应时间加应用程序相应时间。
7、根据权利要求6所述的方法,其特征在于,步骤1中,所述自动化测试模块(103)用于:完成自动化测试,从而替代手工重复性测试,自动化测试模块(103)具体执行如下步骤完成自动化测试:通过自动化测试模块(103)建立相应的服务类,在一个服务类下面建立相应的测试case;例如在自动化工具的设置的时候通过建立独立的服务类来区分不同功能之间的联系,每个服务类下面可以设置不同的独立的case:服务类是根据在excel表格中建立相应的测试case对应的测试数据和期待值,以及测试cae编号、接口说明、接口路径、备注、测试人、测试时间;通过利用自动化测试工具,对接口的入参的输入,对接口的返回值,做全参数校验和翻页校验,生成对应的testng中间文件,最终产生测试报告。
自动测试一般定义为:各种测试活动的管理与实施,包括测试case的设计,测试脚本的开发与测试case的执行,以便使用质量测试系统的自动测试工具来验证测试需求。测试活动的自动化在许多情况下可以获得最大的实用价值,尤其在自动化测试的测试用例开发和组装阶段,测试脚本被重复调用,可重用脚本可能运行很多次。
自动化测试的主要特点:
1、测试数据与测试脚本分离,采用数据脚本分离原则,使业务处理逻辑和用例脚本分离,多脚复用;
2、在分布式框架中,测试采用分中心、分业库、调用业界成熟分布式框架;
3、系统采用关键逻辑主分支测试、业务分支测试、多用例、多脚本、多场景全面覆盖;
4、被测接口返回相应逻辑结果、逻辑状态、逻辑内容;
5、对被测接口返回逻辑结果、逻辑状态、逻辑内容进行分结果、分状态、分内容进行校验断言;
6、做到分中心数据可重复性使用,异步备份与还原,从而达到数据可重复执行;
6、根据权利要求5所述的方法,其特征在于,步骤1中,所述冒烟测试场景模块(104)用于:完成冒烟测试,冒烟测试的场景包括业务数据功能流程测试模块(101)、性能测试模块(102)和自动化测试模块(103)中核心的用户场景,例如:业务数据功能流程测试模块(101)校验会员登陆场景,用户秘密正确或者是否可以登陆;自动化测试模块(103)中新增商品校验,加入购物车接口校验;普通商品下单场景;性能测试模块(102)中商品秒杀场景;冒烟测试场景在质量测试系统中输出完成后,通过配置文件,通过不同的用户权限和环境代码打包提交后,程序自动识别,工程编译,静态代码检查执行测试场景,生成测试报告。
8、根据权利要求7所述的方法,其特征在于,步骤2中,所述设置测试case优先级(200),包括:设置3级测试case(201)和测试case审核(202),所述设置4级测试case(301)包括如下步骤:
步骤2-1,根据测试需求说明书,设计不同的操作系统,根据系统拆分出最小的单元模块,再设计出每个模块之间的关联关系,根据关联关系设计出输出具体的测试用例;例如模块之间关联关系指:比如下订单的模块依赖会员的模块和商品的模块。订单流程可以完成的前提是注册完成会员,新建商品成功。
步骤3-2,根据需求说明书,测试重点输出核心功能场景,输出测试优先级;测试的优先级从自动化测试和性能测试两个类型库同步梳理,根据不同的类型分别在现有的自动化测试平台和性能平台分别执行;
步骤3-3,设置3级测试case(201)的3个级别:1级高Highs,2级中Mediums,3级低Lows;自动化测试设置取前3级用例,性能测试取前2级对应的bug都提交到质量系统的已有的bug工具进行跟踪,3个级别的用例和占比是100%;
系统功能测试会执行3轮。正常情况下,1级高Highs自动化测试case和性能测试case会被执行3次,分别在第一轮测试环境,预生产环境,生产环境执行;2级中Mediums会被执行2次分别在第一轮测试环境,预生产环境执行,3级低Lows执行一次在第一轮测试环境执行。
1级高Highs:一般占系统用例的25%,主要指核心的测试用例保障系统的主要功能没有问题;
2级中Mediums:一般占系统用例的50%,主要包括一些功能交互相关、各种应用场景、使用频率较高的正常功能测试用例;
3级低Lows:一般占系统用例的25%,是在测试环境被执行的测试用例。包含页面文字颜色深浅,文本框边框粗细的需求差异,数值或数组的便捷情况、特殊字符、字符串超长、与外部件交互消息失败、消息超时、事物完整性测试、可靠性测试等等。
所述测试case审核(202)包括:根据已经存在的质量系统工具,关联到具体的项目和需求模块,在需求模块下输出具体测试case,测试case完成后,进行在线审核,需要审核的具体内容如下:
步骤a1,测试case本身的描述需要清晰,语言需要准确,不能存在二义性;
步骤a2,测试case内容需要完整,清晰的包含输入和预期输出的结果;测试用例每一步执行步骤需要清晰;
步骤a3,测试case中使用的测试数据务必恰当、准确;
步骤a4,测试case具有指导性,能灵活的指导软件测试工程师通过测试用例发现更多的缺陷;
步骤a5,测试case需要考虑到测试用例执行的效率,对于不断重复执行的步骤,要保证验证点相同或者测试用例的设计是不存在冗余性,这些都可能导致测试用例执行效率低下;
步骤a6,画出软件项目需求跟踪矩阵,画出测试case系统脑图,验证测试用例是否完全覆盖了需求,验证测试用例的覆盖性;
步骤a7,测试用例是否完全遵守了软件需求的规定。
步骤2中,所述设置测试case优先级(200)能够根据测试的类型库在不同的平台进行自动执行测试。
步骤3包括:在质量测试系统建立待测试项目A:根据关联需求需求分析,确认设置基本测试类型库(100);根据测试类型的不同输出不同的测试case:业务数据功能流程测试模块(101),性能测试模块(102)根据用例优先级在质量测试系统,性能测试系统执行1级高Highs,2级中Mediums,3级低Lows。自动化测试case在质量测试系统的自动化测试工具执行自动化测试模块(103)对应的测试case。冒烟测试模块(104)的测试内容由数据功能流程测试,自动化测试工具和性能测试工具执行冒烟测试场景,同步完成;测试类型确认完成,根据测试需求说明书和不同的类型输出,设置测试case优先级(200);最后根据需求说明书,选择测试类型,确认测试重点,输出测试case优先级,通过自动化测试工具执行测试case,自动输出不同类型的测试报告(300),针对测试报告进行输出准则判断,如果符合上线输出准则,准予上线,否则,判定为失败的测试case,根据失败的测试case,通过测试日志分析原因,提交测试bug,开发修改完成,提交代码,测试再次执行失败的测试用例。测试报告有效的提供了项目上线验证的有效判断标准。
本发明提供了一种基于快速需求版本迭代的软件测试方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (10)
1.一种基于快速需求版本迭代的软件测试方法,其特征在于,包括如下步骤:
步骤1,设置基本测试类型库(100);
步骤2,设置测试case优先级(200);
步骤3,根据需求说明书,选择测试类型,确认测试重点,输出测试case优先级,自动执行用例case,输出测试报告(300)。
2.根据权利要求1所述的方法,其特征在于,步骤1包括:设置基本测试类型库(100),基本测试类型库(100)用于进行测试类型定义,将软件测试项目中使用到的测试类型拆分为并行的3个模块:业务数据功能流程测试模块(101)、性能测试模块(102)和自动化测试模块(103),以及单独的冒烟测试模块(104);所述冒烟测试模块(104)用于完成冒烟测试。
3.根据权利要求2所述的方法,其特征在于,步骤1中,所述业务数据功能流程测试模块(101)用于,在业务流程中的数据流程测试,包括:通过准备测试数据,输入数据场景执行测试,输出相关数据;同时检查软件在按流程操作时,数据是否能够正确处理。
4.根据权利要求3所述的方法,其特征在于,所述业务数据功能流程测试模块(101)具体执行如下步骤:
步骤1-1,准备测试数据:
在创建测试数据过程中,对要用到的SQL语句封装成独立的测试数据包,当创建数据时,直接调用独立的测试数据包;
运用API调用和数据库操作的方式生成测试数据;
API调用生成基础的测试数据,然后使用数据库的CRUD操作生成符合特殊测试需求的数据;
步骤1-2,输入数据场景;
步骤1-3,输出数据:通过连接数据库,将得到的结果数据以及报表中的数据进行显示,并根据报表的格式提供输出数据。
5.根据权利要求4所述的方法,其特征在于,步骤1中,所述性能测试模块(102)用于:验证软件的性能是否满足系统规格要求的性能指标,包括:根据业务需求指标系统同时在线数,计算出具体的TPS响应时间、吞吐量和并发用户数,再利用现有的性能测试平台把业务指标转换为具体的技术指标,所述技术指标包括时间指标和资源利用率。
6.根据权利要求5所述的方法,其特征在于,所述性能测试模块(102)执行如下步骤:
步骤2-1,进行脚本录制,包括如下步骤:
步骤2-1-1,添加线程组:配置线程组名称、线程数、准备时长和循环次数;
步骤2-1-2,设置HTTP请求:向目标服务器发送HTTP请求协议,HTTP请求协议是HTTP或HTTPS,默认为HTTP;
设置HTTP请求发送的目标服务器名称或IP;
设置目标服务器的端口号,默认值为80;
发送HTTP请求的方法采用GET或者POST;
设置目标URL路径;
步骤2-1-3,添加结果树;
添加用户自定义变量用以Http请求参数化;
步骤2-1-4,添加性能测试报告;
步骤2-2,进行脚本调测,包括如下步骤:
步骤2-2-1,根据业务场景确定具体的吞吐量和TPS响应时间;
步骤2-2-2,根据已经录制的脚本不断地增加并发用户,首先设置线程数为1,调通脚本;再设置线程数为100,300,600,900,1000循环100次查看吞吐量和平均相应时间;
步骤2-2-3,如果TPS响应时间在正常范围内,但是吞吐量超过TPS的值3分之一以上,则执行页面压缩;
步骤2-2-4,当增加并发用户数时,吞吐率量和TPS响应时间的变化曲线呈稳步递增,则系统稳定;
步骤2-2-5,当增大系统的压力或增加并发用户数时,吞吐率量和TPS响应时间的变化曲线不变,则系统稳定;
步骤2-2-6,将不同的测试场景或者不同的接口进行混合测试;多种模块一起进行测试,更符合真实场景,便于对服务器的整体处理能力进行评估,多种模块指不同的测试场景或者不同的接口压测,混合测试时的TPS响应时间等于单个事务的TPS响应时间总和;
步骤2-3,执行脚本测试:通过配置线程组,配置本次性能测试相关参数,包括:线程数、循环次数和持续时间;执行测试;
步骤2-4,测试结果分析。
7.根据权利要求6所述的方法,其特征在于,步骤1中,所述自动化测试模块(103)用于:完成自动化测试,从而替代手工重复性测试,自动化测试模块(103)具体执行如下步骤完成自动化测试:通过自动化测试模块(103)建立相应的服务类,在一个服务类下面建立相应的测试case;在自动化工具的设置的时候通过建立独立的服务类来区分不同功能之间的联系,每个服务类下面可以设置不同的独立的case:服务类是根据在excel表格中建立相应的测试case对应的测试数据和期待值,以及测试cae编号、接口说明、接口路径、备注、测试人、测试时间;通过利用自动化测试工具,对接口的入参的输入,对接口的返回值,做全参数校验和翻页校验,生成对应的testng中间文件,最终产生测试报告。
8.根据权利要求7所述的方法,其特征在于,步骤1中,所述冒烟测试场景模块(104)用于:完成冒烟测试,冒烟测试的场景包括业务数据功能流程测试模块(101)、性能测试模块(102)和自动化测试模块(103)中核心的用户场景,冒烟测试场景在质量测试系统中输出完成后,通过配置文件,通过不同的用户权限和环境代码打包提交后,程序自动识别,工程编译,静态代码检查执行测试场景,生成测试报告。
9.根据权利要求8所述的方法,其特征在于,步骤2中,所述设置测试case优先级(200),包括:设置3级测试case(201)和测试case审核(202),所述设置4级测试case(301)包括如下步骤:
步骤2-1,根据测试需求说明书,设计不同的操作系统,根据系统拆分出最小的单元模块,再设计出每个模块之间的关联关系,根据关联关系设计出输出具体的测试用例;
步骤3-2,根据需求说明书,测试重点输出核心功能场景,输出测试优先级;测试的优先级从自动化测试和性能测试两个类型库同步梳理,根据不同的类型分别在自动化测试平台和性能平台分别执行;
步骤3-3,设置3级测试case(201)的3个级别:1级高Highs,2级中Mediums,3级低Lows;自动化测试设置取前3级用例,性能测试取前2级对应的bug都提交到质量系统的已有的bug工具进行跟踪,3个级别的用例和占比是100%;
所述测试case审核(202)包括:根据已经存在的质量系统工具,关联到具体的项目和需求模块,在需求模块下输出具体测试case,测试case完成后,进行在线审核;
步骤2中,所述设置测试case优先级(200)能够根据测试的类型库在不同的平台进行自动执行测试。
10.根据权利要求9所述的方法,其特征在于,步骤3包括:在质量测试系统建立待测试项目A:根据关联需求需求分析,确认设置基本测试类型库(100);根据测试类型的不同输出不同的测试case:业务数据功能流程测试模块(101),性能测试模块(102)根据用例优先级在质量测试系统,性能测试系统执行1级高Highs,2级中Mediums,3级低Lows;
自动化测试case在质量测试系统的自动化测试工具执行自动化测试模块(103)对应的测试case;
冒烟测试模块(104)的测试内容由数据功能流程测试,自动化测试工具和性能测试工具执行冒烟测试场景,同步完成;测试类型确认完成,根据测试需求说明书和不同的类型输出,设置测试case优先级(200);最后根据需求说明书,选择测试类型,确认测试重点,输出测试case优先级,通过自动化测试工具执行测试case,自动输出不同类型的测试报告(300),针对测试报告进行输出准则判断,如果符合上线输出准则,准予上线,否则,判定为失败的测试case,根据失败的测试case,通过测试日志分析原因,提交测试bug,开发修改完成,提交代码,测试再次执行失败的测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010207516.9A CN111459809A (zh) | 2020-03-23 | 2020-03-23 | 一种基于快速需求版本迭代的软件测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010207516.9A CN111459809A (zh) | 2020-03-23 | 2020-03-23 | 一种基于快速需求版本迭代的软件测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111459809A true CN111459809A (zh) | 2020-07-28 |
Family
ID=71685653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010207516.9A Pending CN111459809A (zh) | 2020-03-23 | 2020-03-23 | 一种基于快速需求版本迭代的软件测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459809A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113934646A (zh) * | 2021-12-17 | 2022-01-14 | 中建电子商务有限责任公司 | 一种用于软件测试的系统和方法 |
CN114090414A (zh) * | 2020-08-24 | 2022-02-25 | 阿里巴巴集团控股有限公司 | 数据处理系统及方法、数据测试系统、数据系统 |
CN117950787A (zh) * | 2024-03-22 | 2024-04-30 | 成都赛力斯科技有限公司 | 广告展示方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108153672A (zh) * | 2017-12-25 | 2018-06-12 | 苏州蜗牛数字科技股份有限公司 | 一种移动应用的自动化测试系统及测试方法 |
CN108763076A (zh) * | 2018-05-22 | 2018-11-06 | 深圳乐信软件技术有限公司 | 一种软件自动测试方法、装置、设备及介质 |
CN110046099A (zh) * | 2019-04-11 | 2019-07-23 | 艾伯资讯(深圳)有限公司 | 智能化软件测试系统及方法 |
-
2020
- 2020-03-23 CN CN202010207516.9A patent/CN111459809A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108153672A (zh) * | 2017-12-25 | 2018-06-12 | 苏州蜗牛数字科技股份有限公司 | 一种移动应用的自动化测试系统及测试方法 |
CN108763076A (zh) * | 2018-05-22 | 2018-11-06 | 深圳乐信软件技术有限公司 | 一种软件自动测试方法、装置、设备及介质 |
CN110046099A (zh) * | 2019-04-11 | 2019-07-23 | 艾伯资讯(深圳)有限公司 | 智能化软件测试系统及方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090414A (zh) * | 2020-08-24 | 2022-02-25 | 阿里巴巴集团控股有限公司 | 数据处理系统及方法、数据测试系统、数据系统 |
CN113934646A (zh) * | 2021-12-17 | 2022-01-14 | 中建电子商务有限责任公司 | 一种用于软件测试的系统和方法 |
CN113934646B (zh) * | 2021-12-17 | 2022-03-22 | 中建电子商务有限责任公司 | 一种用于软件测试的系统和方法 |
CN117950787A (zh) * | 2024-03-22 | 2024-04-30 | 成都赛力斯科技有限公司 | 广告展示方法、装置、电子设备及存储介质 |
CN117950787B (zh) * | 2024-03-22 | 2024-05-31 | 成都赛力斯科技有限公司 | 广告展示方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110221962B (zh) | 一种集中式软件测试管理系统及方法 | |
CN111459809A (zh) | 一种基于快速需求版本迭代的软件测试方法 | |
CN111459821A (zh) | 一种基于TestNG的软件自动化单元测试方法 | |
CN109977012B (zh) | 系统的联调测试方法、装置、设备及计算机可读存储介质 | |
CN111597104B (zh) | 一种多协议适配的接口回归测试方法、系统、设备和介质 | |
Alferidah et al. | Automated software testing tools | |
CN108460068A (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
CN103440460A (zh) | 一种应用系统变更验证方法及验证系统 | |
CN116774987A (zh) | 一种基于web多终端的软件开发控制方法及系统 | |
CN114661592A (zh) | 一种基于适应快速需求版本迭代的软件测试方法 | |
CN112015715A (zh) | 工业互联网数据管理服务测试方法及系统 | |
CN115934559A (zh) | 表单智能测试系统的测试方法 | |
CN114741300A (zh) | 基于测试用例的测试方法及装置 | |
CN114116466A (zh) | 一种基于操作日志的单元测试方法、装置及介质 | |
CN114116470A (zh) | 一种自动化的静态模型检查方法及装置 | |
CN115687064A (zh) | 基于区块链的智能合约测试方法及相关设备 | |
Allen et al. | A model-based approach to the security testing of network protocol implementations | |
CN109669868A (zh) | 软件测试的方法及系统 | |
CN118227506B (zh) | 基于rpa机器人的ui自动化测试系统及方法 | |
CN117234946B (zh) | 项目库系统的自动化测试方法及相关设备 | |
CN117421255B (zh) | 一种接口的自动巡检方法、装置、设备和存储介质 | |
CN113806222B (zh) | 接口测试脚本生成方法、装置、设备及存储介质 | |
CN118820079A (zh) | 一种软件测试方法、系统、电子设备及存储介质 | |
CN118132419A (zh) | 测试代码的生成方法、自动化回归测试方法、及其装置 | |
CN117520145A (zh) | 一种低代码组装式接口自动化混合场景测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200728 |