CN107844413A - 一种测试方法和装置 - Google Patents
一种测试方法和装置 Download PDFInfo
- Publication number
- CN107844413A CN107844413A CN201610839942.8A CN201610839942A CN107844413A CN 107844413 A CN107844413 A CN 107844413A CN 201610839942 A CN201610839942 A CN 201610839942A CN 107844413 A CN107844413 A CN 107844413A
- Authority
- CN
- China
- Prior art keywords
- test
- pattern
- strategy
- test object
- testing scheme
- 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
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
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
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
本申请提供一种测试方法和装置,该方法包括:获取测试对象;获取反模式测试方案,所述反模式测试方案包括反模式的测试策略;通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试。通过本申请的技术方案,通过将反模式思想引入到测试领域,通过反模式模型进一步开展测试,提高测试质量,测试方案更加完善和合理,测试逻辑更加清晰,测试方向更加明确,能够更全面的指导测试过程。反模式思想是对正向测试思维的补充,能够指导测试人员从相反的角度看问题、分析问题、解决问题,从相反的角度思考测试方案,提升测试人员的思维方法,在整个测试过程中很好的起到指导作用,优化测试对象的质量。
Description
技术领域
本申请涉及测试技术领域,尤其涉及一种测试方法和装置。
背景技术
探索性测试是一种测试思维技术,探索性测试没有很多实际的测试方法、技术和工具,但却是测试人员应该掌握的一种测试思维方式。探索性测试强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例的设计过程,强调在碰到问题时,及时改变测试方案。与传统的先设计、后执行的测试过程相比,探索性测试强调测试设计和测试执行的同时性,即同时设计测试和执行测试。
探索性测试是一个学习、迭代、反馈过程,在对测试对象进行测试的同时,利用测试过程产生的信息,学习到更好的测试方案,并使用新的测试方案对测试对象进行测试,从而快速获得测试对象的反馈结果,动态优化测试方案。
目前,在探索性测试过程中,测试人员设计的测试方案,并不能很好的对测试对象进行测试,测试效果并不好,导致最终输出的测试对象存在缺陷。
发明内容
本申请提供一种测试方法,所述方法包括以下步骤:
获取测试对象;
获取反模式测试方案,所述反模式测试方案包括反模式的测试策略;
通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试。
所述通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试之后,所述方法进一步包括:判断是否满足测试终止策略;
如果是,则输出所述测试对象和所述反模式测试方案;
如果否,则利用测试结果调整所述测试对象和/或所述反模式测试方案,得到新的测试对象和/或新的反模式测试方案,并返回执行通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程。
所述反模式测试方案还包括正模式的测试策略;所述方法进一步包括:
通过所述反模式测试方案的正模式的测试策略对所述测试对象进行测试。
所述反模式的测试策略具体包括以下之一或者任意组合:
分层反模式的测试策略;
依赖反模式的测试策略;
接口服务化反模式的测试策略;
业务流反模式的测试策略;
安全反模式的测试策略。
所述通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程,具体包括:
若所述反模式的测试策略为分层反模式的测试策略,则通过所述分层反模式的测试策略对所述测试对象的不同层次进行测试,得到测试结果;
所述测试结果包括以下之一或者任意组合:所述测试对象是否存在统一模型;所述测试对象的分层是否符合规范;所述测试对象的内部构建是否合理。
所述通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程,具体包括:
若所述反模式的测试策略为依赖反模式的测试策略,则通过所述依赖反模式的测试策略对所述测试对象的依赖关系进行测试,得到测试结果;
所述测试结果包括以下之一或者任意组合:所述测试对象的外部依赖程度;所述测试对象的环境隔离性程度;所述测试对象的环境依赖性程度。
所述通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程,具体包括:
若所述反模式的测试策略为接口服务化反模式的测试策略,通过所述接口服务化反模式的测试策略对所述测试对象的服务接口进行测试,得到测试结果;
所述测试结果包括以下之一或者任意组合:所述测试对象的接口易用性;所述测试对象的接口暴漏方式是否合理;所述测试对象的接口服务化是否合理。
所述通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程,具体包括:
若所述反模式的测试策略为业务流反模式的测试策略,则通过所述业务流反模式的测试策略对所述测试对象的业务流进行测试,得到测试结果;
所述测试结果包括以下之一或者任意组合:所述测试对象的业务数据构造是否合理;所述测试对象的业务数据深度是否合理;所述测试对象的依赖数据构造难易程度是否合理;所述测试对象是否存在易用的构造方式。
所述通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程,具体包括:
若所述反模式的测试策略为安全反模式的测试策略,则通过所述安全反模式的测试策略对所述测试对象的安全情况进行测试,得到测试结果;
所述测试结果包括以下之一或者任意组合:所述测试对象的页面安全性是否存在漏洞;所述测试对象的数据库安全性是否存在漏洞。
本申请提供一种测试装置,所述装置具体包括:
第一获取模块,用于获取测试对象;
第二获取模块,用于获取反模式测试方案,所述反模式测试方案包括反模式的测试策略;
测试模块,用于通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试。
还包括:判断模块,用于在所述测试模块通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试之后,判断是否满足测试终止策略;
处理模块,用于当判断结果为是时,则输出所述测试对象和所述反模式测试方案;当判断结果为否时,则利用测试结果调整所述测试对象和/或所述反模式测试方案,得到新的测试对象和/或新的反模式测试方案。
所述第二获取模块获取的所述反模式测试方案还包括正模式的测试策略;
所述测试模块,还用于通过所述反模式测试方案的正模式的测试策略对所述测试对象进行测试。
所述第二获取模块获取的反模式测试方案中的反模式的测试策略包括以下之一或者任意组合:
分层反模式的测试策略;
依赖反模式的测试策略;
接口服务化反模式的测试策略;
业务流反模式的测试策略;
安全反模式的测试策略。
所述测试模块,具体用于在通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程中:
若所述反模式的测试策略为分层反模式的测试策略,则通过所述分层反模式的测试策略对所述测试对象的不同层次进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象是否存在统一模型;所述测试对象的分层是否符合规范;所述测试对象的内部构建是否合理;
若所述反模式的测试策略为依赖反模式的测试策略,则通过所述依赖反模式的测试策略对所述测试对象的依赖关系进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象的外部依赖程度;所述测试对象的环境隔离性程度;所述测试对象的环境依赖性程度;
若所述反模式的测试策略为接口服务化反模式的测试策略,通过所述接口服务化反模式的测试策略对所述测试对象的服务接口进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象的接口易用性;所述测试对象的接口暴漏方式是否合理;所述测试对象的接口服务化是否合理
若所述反模式的测试策略为业务流反模式的测试策略,则通过所述业务流反模式的测试策略对所述测试对象的业务流进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象的业务数据构造是否合理;所述测试对象的业务数据深度是否合理;所述测试对象的依赖数据构造难易程度是否合理;所述测试对象是否存在易用的构造方式;
若所述反模式的测试策略为安全反模式的测试策略,则通过所述安全反模式的测试策略对所述测试对象的安全情况进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象的页面安全性是否存在漏洞;所述测试对象的数据库安全性是否存在漏洞。
基于上述技术方案,本申请实施例中,通过将反模式思想引入到测试领域,即获取反模式测试方案,并通过反模式测试方案对测试对象进行测试,从而可以通过反模式模型进一步开展测试,并提高测试质量,测试方案更加完善和合理,测试逻辑更加清晰,测试方向更加明确,能够更全面的指导测试过程。而且,反模式思想是对正向测试思维的补充,能够指导测试人员从相反的角度看问题、分析问题、解决问题,从相反的角度思考测试方案,提升测试人员的思维方法,在整个测试过程中能够很好的起到指导作用,优化测试对象的质量。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
图1是本申请一种实施方式中的测试方法的流程图;
图2是本申请另一种实施方式中的测试方法的流程图;
图3是本申请一种实施方式中的测试设备的硬件结构图;
图4是本申请一种实施方式中的测试装置的结构图。
具体实施方式
在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出了一种测试方法,该方法可以应用于测试设备(如PC(Personal Computer,个人计算机)、笔记本电脑、服务器、移动终端等)上。参见图1所示,为本申请实施例中的测试方法的流程图,该方法可以包括:
步骤101,获取测试对象。
步骤102,获取反模式测试方案,该反模式测试方案包括反模式的测试策略。
步骤103,通过该反模式测试方案的反模式的测试策略对该测试对象进行测试。
在一个例子中,上述执行顺序只是为了方便描述所给出的一个示例,在实际应用中,还可以改变各步骤之间的执行顺序,对此执行顺序不做限制。
在一个例子中,若采用上述测试方法进行传统测试,则在“通过该反模式测试方案的反模式的测试策略对该测试对象进行测试”后,直接输出当前的测试对象和当前的反模式测试方案,测试过程结束。若采用上述测试方法进行探索性测试,则可以执行图2所示的流程。在后续过程中,以采用上述测试方法进行探索性测试为例。针对采用上述测试方法进行探索性测试的过程,在“通过该反模式测试方案的反模式的测试策略对该测试对象进行测试”之后,参见图2所示,还可以执行如下步骤:
步骤104,判断是否满足测试终止策略。
如果是,则执行步骤105;如果否,则执行步骤106。
步骤105,输出当前的测试对象和当前的反模式测试方案,测试过程结束。
步骤106,利用测试结果调整上述测试对象和/或上述反模式测试方案,得到新的测试对象和/或新的反模式测试方案,并返回执行步骤103。
在一个例子中,在返回执行步骤103时,若利用测试结果调整了步骤101中的测试对象,则步骤103中的测试对象为新的测试对象,否则,步骤103中的测试对象为步骤101中的测试对象。若利用测试结果调整了步骤102中的反模式测试方案,则步骤103中的反模式测试方案为新的反模式测试方案,否则,步骤103中的反模式测试方案为步骤102中的反模式测试方案。
针对步骤101和步骤102,在一个例子中,测试对象是设计人员开发出的代码,反模式测试方案是测试人员开发出的用于对该测试对象进行测试的方案,该反模式测试方案可以基于测试对象开发。在探索性测试过程中,设计人员开发出的测试对象可能存在缺陷,在使用反模式测试方案对测试对象进行测试之后,若基于测试结果发现测试对象的缺陷,则可以根据测试结果对测试对象进行调整,得到新的测试对象。而且,在探索性测试过程中,测试人员开发出的反模式测试方案也可能存在缺陷,在使用反模式测试方案对测试对象进行测试之后,若基于测试结果发现反模式测试方案的缺陷,则可以根据测试结果对反模式测试方案进行调整,得到新的反模式测试方案。上述过程就是步骤106。
在一个例子中,反模式测试方案(后续的反模式测试方案可以是步骤102中的反模式测试方案和步骤106中的新的反模式测试方案)可以包括反模式的测试策略和正模式的测试策略。因此还可以通过该反模式测试方案的正模式的测试策略对该测试对象进行测试。综上所述,在执行步骤103时,可以通过反模式测试方案的反模式的测试策略、正模式的测试策略对该测试对象进行测试。
在一个例子中,该反模式的测试策略可以包括但不限于以下之一或者任意组合:分层反模式的测试策略;依赖反模式的测试策略;接口服务化反模式的测试策略;业务流反模式的测试策略;安全反模式的测试策略。对于正模式的测试策略,可以根据实际需要配置,本申请实施例对此不做限制。其中,可以将包括反模式的测试策略的测试方案称为反模式测试方案。
本申请实施例中,可以将探索性测试过程与反模式思想结合起来,将反模式思想引入到测试领域,即使用反模式测试方案对测试对象进行探索性测试。
其中,探索性测试是一种测试思维技术,探索性测试没有很多实际的测试方法、技术和工具,但却是测试人员应该掌握的一种测试思维方式。探索性测试强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例的设计过程,强调在碰到问题时,及时改变测试方案。与传统的先设计、后执行的测试过程相比,探索性测试强调测试设计和测试执行的同时性,即同时设计测试和执行测试。探索性测试是一个学习、迭代、反馈过程,在对测试对象进行测试的同时,利用测试过程产生的信息,学习到更好的测试方案,并使用新的测试方案对测试对象进行测试,从而快速获得测试对象的反馈结果,动态优化测试方案。
探索性测试是一种软件测试风格,其思想是不断学习、不断反馈,不拘泥于具体测试技术。在开展探索性测试之前,测试人员需要清晰、全面思考被测产品提供的价值,建立产品功能列表的主干,并运用其技能和经验,清晰描绘出功能列表的分支。测试人员要站在用户使用的角度,功能设计是否合理的角度,破坏者的角度,功能是否正确的角度,市场的角度等等,完成探索性测试。
其中,正模式的测试策略基于正模式思想进行设计,而反模式的测试策略基于反模式思想进行设计。进一步的,正模式思想是一种用于描述良好实践方法的正式模板形式,而反模式思想描述的是一个普遍采用的不良解决方案。反模式思想能够指导测试人员站在正向思维的对立面看待问题,从相反的角度看问题(如需求、业务逻辑、交互设计等)、分析问题、解决问题,在进行正向思维的同时,从相反的角度思考测试方案,从而完善测试方案,提高测试质量。
针对步骤103,在一个例子中,针对“通过反模式测试方案的反模式的测试策略对测试对象进行测试”的过程,可以包括但不限于如下情况:情况一、若反模式的测试策略为分层反模式的测试策略,则通过分层反模式的测试策略对测试对象的不同层次进行测试,得到测试结果;其中,该测试结果可以包括但不限于以下之一或者任意组合:测试对象是否存在统一模型;测试对象的分层是否符合规范;测试对象的内部构建是否合理。情况二、若反模式的测试策略为依赖反模式的测试策略,则通过依赖反模式的测试策略对测试对象的依赖关系进行测试,得到测试结果;其中,该测试结果可以包括但不限于以下之一或者任意组合:测试对象的外部依赖程度;测试对象的环境隔离性程度;测试对象的环境依赖性程度。情况三、若反模式的测试策略为接口服务化反模式的测试策略,则通过接口服务化反模式的测试策略对测试对象的服务接口进行测试,得到测试结果;其中,该测试结果可以包括但不限于以下之一或者任意组合:测试对象的接口易用性;测试对象的接口暴漏方式是否合理;测试对象的接口服务化是否合理。情况四、若反模式的测试策略为业务流反模式的测试策略,则通过业务流反模式的测试策略对测试对象的业务流进行测试,得到测试结果;其中,该测试结果可以包括但不限于以下之一或者任意组合:测试对象的业务数据构造是否合理;测试对象的业务数据深度是否合理;测试对象的依赖数据构造难易程度是否合理;测试对象是否存在易用的构造方式。情况五、若反模式的测试策略为安全反模式的测试策略,则通过安全反模式的测试策略对测试对象的安全情况进行测试,得到测试结果;其中,该测试结果可以包括但不限于以下之一或者任意组合:测试对象的页面安全性是否存在漏洞;测试对象的数据库安全性是否存在漏洞。
以下结合具体的实施例对上述情况一至情况五的过程进行详细说明。
实施例1:反模式的测试策略为分层反模式的测试策略。
在一个例子中,在分层反模式的测试策略的设计维度,给出如下设计维度事件:引人模型概念,进行领域模型的业务封装。分层设计,层次清晰,各层次功能清晰,当前层次不封装其它层次的功能。在分层反模式的测试策略的测试维度,给出如下测试维度事件:针对不同层次构建不同的测试件,从单元测试到***测试层次性覆盖。根据模型变动提炼回归测试件。根据代码改动评估影响联动点,采用无死角的测试case(案例)覆盖。其中,可以基于上述设计维度事件,设计得到分层反模式的测试策略。在探索性测试过程中,可以基于上述测试维度事件,通过分层反模式的测试策略对测试对象进行测试。
在一个例子中,基于上述测试维度事件,可以通过分层反模式的测试策略对测试对象的不同层次进行测试,得到测试结果。其中,该测试结果可以包括但不限于以下之一或者任意组合:1、测试对象是否存在统一模型,例如,领域模型、业务模型、概念模型等。2、测试对象的分层是否符合规范,例如,是否存在***工程结构说明、是否存在规范、应用工程是否遵循分层规范等;其中,各分层可以包括用户界面层、应用层、领域层、基础架构层等。3、测试对象的内部构建是否合理,例如,各个业务之间的产品代码耦合情况是否合理、与基础业务层代码改动存在较大联动的影响点设计是否合理等。
例如,针对“测试对象的分层是否符合规范”的过程,在反模式测试方案中,正模式的测试策略,通过检测测试对象中是否存在某些字段,得出测试对象的分层是否符合规范的测试结果。而分层反模式的测试策略,通过检测测试对象中是否不存在某些字段,得出测试对象的分层是否符合规范的测试结果。
实施例2:反模式的测试策略为依赖反模式的测试策略。
在一个例子中,在依赖反模式的测试策略的设计维度,给出如下设计维度事件:降低对外依赖度和减小依赖深度。环境依赖可“单机性”,提高链路可切割度。在依赖反模式的测试策略的测试维度,给出如下测试维度事件:整体环境链路维护有文档指导,提供稳定的公共环境,各个产品线对环境依赖有整体的链路依赖图整理(如***依赖图整理、环境依赖图整理)。整体测试环境链路情况下,***单机测试程度低,测试环境易隔离。其中,可以基于上述设计维度事件,设计得到依赖反模式的测试策略。在探索性测试过程中,可以基于上述测试维度事件,通过依赖反模式的测试策略对测试对象进行测试。
在一个例子中,基于上述测试维度事件,可以通过依赖反模式的测试策略对测试对象的依赖关系进行测试,得到测试结果。其中,该测试结果可以包括但不限于以下之一或者任意组合:1、测试对象的外部依赖程度,例如,对外存在较强依赖,依赖深度较深等。2、测试对象的环境隔离性程度,例如,环境隔离性差等。3、测试对象的环境依赖性程度,例如,环境依赖性较高等。
例如,针对“测试对象的外部依赖程度”的过程,在反模式测试方案中,正模式的测试策略,若测试对象中的A与B之间存在依赖关系,通过检测A与B之间存在依赖关系,得出A与B的依赖程度的测试结果。依赖反模式的测试策略,若测试对象中的A与B之间存在依赖关系,先假设A与B之间不存在依赖关系,通过检测A与B之间的依赖关系,得出A与B的依赖程度的测试结果。
实施例3:反模式的测试策略为接口服务化反模式的测试策略。
在一个例子中,在接口服务化反模式的测试策略的设计维度,给出如下设计维度事件:接口的功能定义清晰,设计合理,所见即所用:注释、参数明确。接口的暴漏方式考虑信息传递、接受的准确性以及高可靠性,并具有良好的容错机制等。在接口服务化反模式的测试策略的测试维度,给出如下测试维度事件:针对接口暴漏的参数、暴漏的方式提供全面的可覆盖接口测试件。梳理接口调用方场景,结合场景构造接口测试件。其中,可以基于上述设计维度事件,设计得到接口服务化反模式的测试策略。在探索性测试过程中,可以基于上述测试维度事件,通过接口服务化反模式的测试策略对测试对象进行测试。
在一个例子中,基于上述测试维度事件,可以通过接口服务化反模式的测试策略对测试对象的服务接口进行测试,得到测试结果。其中,该测试结果可以包括但不限于以下之一或者任意组合:1、测试对象的接口易用性,例如,测试对象的接口易用性较差,如由于接口参数不容易获取、接口易读性较差等,导致接口易用性较差。2、测试对象的接口暴漏方式是否合理,例如,接口暴漏方式不合理。3、测试对象的接口服务化是否合理,例如,接口服务化不合理。
例如,针对“测试对象的接口暴漏方式是否合理”的过程,在反模式测试方案中,基于正模式的测试策略,若测试对象中的接口A采用服务化方式对外暴漏,则可以通过检测暴漏情况,得出接口暴漏方式是否合理的测试结果。而基于接口服务化反模式的测试策略,可以采用非服务化方式对外暴漏测试对象中的接口A,并通过检测暴漏情况,得出接口暴漏方式是否合理的测试结果。
实施例4:反模式的测试策略为业务流反模式的测试策略。
在一个例子中,在业务流反模式的测试策略的设计维度,给出如下设计维度事件:内部结构定义清晰,体现具体业务,不存在冗余。缩短数据流深度,减少依赖层次,充分使用公共资源数据。依赖数据清晰合理,封装继承性较高,提高可mock(假装)性。在业务流反模式的测试策略的测试维度,给出如下测试维度事件:对测试数据建模,结合业务场景定义测试数据,提高覆盖率。自动化构造测试数据,提高构造效率。丰富数据mock手段。其中,可以基于上述设计维度事件,设计得到业务流反模式的测试策略。在探索性测试过程中,可以基于上述测试维度事件,通过业务流反模式的测试策略对测试对象进行测试。
在一个例子中,基于上述测试维度事件,可以通过业务流反模式的测试策略对测试对象的业务流进行测试,得到测试结果。其中,该测试结果可以包括但不限于以下之一或者任意组合:1、测试对象的业务数据构造是否合理,例如,业务数据构造不合理,如业务内部数据构造的字段定义不清晰、存在字段冗余,结构可操作性不合理等导致的业务数据构造不合理。2、测试对象的业务数据深度是否合理,例如,业务数据流深度不合理、业务可裁剪或者数据可mock等。3、测试对象的依赖数据构造难易程度是否合理,例如,依赖数据构造难易度不合理。4、测试对象是否存在易用的构造方式,例如,不存在易用的构造方式。
例如,针对“测试对象的业务数据构造是否合理”的过程,在反模式测试方案中,基于正模式的测试策略,若测试对象中存在A向B发送的业务数据,则可以通过检测A向B发送业务数据的情况,得出业务数据构造是否合理的测试结果。与此不同的是,基于业务流反模式的测试策略,可以通过检测B向A发送业务数据的情况,得出业务数据构造是否合理的测试结果。
实施例5:反模式的测试策略为安全反模式的测试策略。
在一个例子中,在安全反模式的测试策略的设计维度,可以给出如下设计维度事件:针对web(互联网)安全、数据库安全采用相应措施,加强安全意识。在安全反模式的测试策略的测试维度,给出如下测试维度事件:明确安全漏洞定义和类型。注重安全意识,并加强安全测试。其中,可以基于上述设计维度事件,设计得到安全反模式的测试策略。在探索性测试过程中,可以基于上述测试维度事件,通过安全反模式的测试策略对测试对象进行测试。在一个例子中,基于上述测试维度事件,可以通过安全反模式的测试策略对测试对象的安全情况进行测试,得到测试结果。其中,该测试结果可以包括但不限于以下之一或者任意组合:1、测试对象的页面安全性是否存在漏洞,如页面安全存在漏洞。2、测试对象的数据库安全性是否存在漏洞,如数据库安全性存在漏洞。
例如,针对“测试对象的数据库安全性是否存在漏洞”的过程,在反模式测试方案中,基于正模式的测试策略,若测试对象中的数据需要进行脱敏处理,则对数据进行脱敏处理,通过检测脱敏处理后的数据,得出数据库安全性是否存在漏洞的测试结果。基于安全反模式的测试策略,可以不对数据进行脱敏处理,通过检测未脱敏处理的数据,得出数据库安全性是否存在漏洞的测试结果。
实施例1-实施例5给出了几个反模式的测试策略,本申请实施例中并不局限于上述反模式的测试策略,对于其它反模式的测试策略不再赘述。在实施例1-实施例5中,从设计维度和测试维度给出相应事件、反馈,指导设计与测试。
针对步骤104和步骤105,可以预先配置测试终止策略,如执行次数,测试对象的目标需求等。例如,若已经对测试对象执行过所述次数的测试,说明满足测试终止策略,输出当前的测试对象和反模式测试方案,测试过程结束,否则说明未满足测试终止策略,继续执行测试。又例如,若当前的测试对象已经满足测试对象的目标需求,说明满足测试终止策略,输出当前的测试对象和反模式测试方案,测试过程结束,否则说明未满足测试终止策略,继续执行测试。
基于上述技术方案,本申请实施例中,通过将反模式思想引入到测试领域,即获取反模式测试方案,并通过反模式测试方案对测试对象进行测试,从而可以通过反模式模型进一步开展测试,并提高测试质量,测试方案更加完善和合理,测试逻辑更加清晰,测试方向更加明确,能够更全面的指导测试过程。而且,反模式思想是对正向测试思维的补充,能够指导测试人员从相反的角度看问题、分析问题、解决问题,从相反的角度思考测试方案,提升测试人员的思维方法,在整个测试过程中能够很好的起到指导作用,优化测试对象的质量。
基于与上述方法同样的申请构思,本申请实施例还提供一种测试装置120,该测试装置120应用在测试设备10上。该测试装置120可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的测试设备10的处理器11,读取非易失性存储器12中对应的计算机程序指令形成的。从硬件层面而言,如图3所示,为本申请提出的测试装置120所在的测试设备10的一种硬件结构图,除图3所示的处理器11、非易失性存储器12外,测试设备10还可以包括其它硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,测试设备10还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
如图4所示,为本申请提出的测试装置的结构图,所述测试装置具体包括:
第一获取模块11,用于获取测试对象;
第二获取模块12,用于获取反模式测试方案,所述反模式测试方案包括反模式的测试策略;
测试模块13,用于通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试。
所述测试装置还包括(在图中未体现):
判断模块,用于在所述测试模块13通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试之后,判断是否满足测试终止策略;
处理模块,用于当判断结果为是时,则输出所述测试对象和所述反模式测试方案;当判断结果为否时,则利用测试结果调整所述测试对象和/或所述反模式测试方案,得到新的测试对象和/或新的反模式测试方案。
所述第二获取模块12获取的反模式测试方案还包括正模式的测试策略;
所述测试模块13,还用于通过所述反模式测试方案的正模式的测试策略对所述测试对象进行测试。
所述第二获取模块12获取的反模式测试方案中的反模式的测试策略包括以下之一或者任意组合:分层反模式的测试策略;依赖反模式的测试策略;接口服务化反模式的测试策略;业务流反模式的测试策略;安全反模式的测试策略。
所述测试模块13,具体用于在通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程中:
若反模式的测试策略为分层反模式的测试策略,则通过所述分层反模式的测试策略对所述测试对象的不同层次进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象是否存在统一模型;所述测试对象的分层是否符合规范;所述测试对象的内部构建是否合理;
若所述反模式的测试策略为依赖反模式的测试策略,则通过所述依赖反模式的测试策略对所述测试对象的依赖关系进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象的外部依赖程度;所述测试对象的环境隔离性程度;所述测试对象的环境依赖性程度;
若所述反模式的测试策略为接口服务化反模式的测试策略,通过所述接口服务化反模式的测试策略对所述测试对象的服务接口进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象的接口易用性;所述测试对象的接口暴漏方式是否合理;所述测试对象的接口服务化是否合理
若所述反模式的测试策略为业务流反模式的测试策略,则通过所述业务流反模式的测试策略对所述测试对象的业务流进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象的业务数据构造是否合理;所述测试对象的业务数据深度是否合理;所述测试对象的依赖数据构造难易程度是否合理;所述测试对象是否存在易用的构造方式;
若所述反模式的测试策略为安全反模式的测试策略,则通过所述安全反模式的测试策略对所述测试对象的安全情况进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象的页面安全性是否存在漏洞;所述测试对象的数据库安全性是否存在漏洞。
其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (14)
1.一种测试方法,其特征在于,所述方法包括以下步骤:
获取测试对象;
获取反模式测试方案,所述反模式测试方案包括反模式的测试策略;
通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试。
2.根据权利要求1所述的方法,其特征在于,所述通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试之后,所述方法进一步包括:
判断是否满足测试终止策略;
如果是,则输出所述测试对象和所述反模式测试方案;
如果否,则利用测试结果调整所述测试对象和/或所述反模式测试方案,得到新的测试对象和/或新的反模式测试方案,并返回执行通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程。
3.根据权利要求1或2所述的方法,其特征在于,所述反模式测试方案还包括正模式的测试策略;所述方法进一步包括:
通过所述反模式测试方案的正模式的测试策略对所述测试对象进行测试。
4.根据权利要求1或2所述的方法,其特征在于,
所述反模式的测试策略具体包括以下之一或者任意组合:
分层反模式的测试策略;
依赖反模式的测试策略;
接口服务化反模式的测试策略;
业务流反模式的测试策略;
安全反模式的测试策略。
5.根据权利要求4所述的方法,其特征在于,所述通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程,具体包括:
若所述反模式的测试策略为分层反模式的测试策略,则通过所述分层反模式的测试策略对所述测试对象的不同层次进行测试,得到测试结果;
所述测试结果包括以下之一或者任意组合:所述测试对象是否存在统一模型;所述测试对象的分层是否符合规范;所述测试对象的内部构建是否合理。
6.根据权利要求4所述的方法,其特征在于,所述通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程,具体包括:
若所述反模式的测试策略为依赖反模式的测试策略,则通过所述依赖反模式的测试策略对所述测试对象的依赖关系进行测试,得到测试结果;
所述测试结果包括以下之一或者任意组合:所述测试对象的外部依赖程度;所述测试对象的环境隔离性程度;所述测试对象的环境依赖性程度。
7.根据权利要求4所述的方法,其特征在于,所述通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程,具体包括:
若所述反模式的测试策略为接口服务化反模式的测试策略,通过所述接口服务化反模式的测试策略对所述测试对象的服务接口进行测试,得到测试结果;
所述测试结果包括以下之一或者任意组合:所述测试对象的接口易用性;所述测试对象的接口暴漏方式是否合理;所述测试对象的接口服务化是否合理。
8.根据权利要求4所述的方法,其特征在于,所述通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程,具体包括:
若所述反模式的测试策略为业务流反模式的测试策略,则通过所述业务流反模式的测试策略对所述测试对象的业务流进行测试,得到测试结果;
所述测试结果包括以下之一或者任意组合:所述测试对象的业务数据构造是否合理;所述测试对象的业务数据深度是否合理;所述测试对象的依赖数据构造难易程度是否合理;所述测试对象是否存在易用的构造方式。
9.根据权利要求4所述的方法,其特征在于,所述通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程,具体包括:
若所述反模式的测试策略为安全反模式的测试策略,则通过所述安全反模式的测试策略对所述测试对象的安全情况进行测试,得到测试结果;
所述测试结果包括以下之一或者任意组合:所述测试对象的页面安全性是否存在漏洞;所述测试对象的数据库安全性是否存在漏洞。
10.一种测试装置,其特征在于,所述装置具体包括:
第一获取模块,用于获取测试对象;
第二获取模块,用于获取反模式测试方案,所述反模式测试方案包括反模式的测试策略;
测试模块,用于通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试。
11.根据权利要求10所述的装置,其特征在于,还包括:
判断模块,用于在所述测试模块通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试之后,判断是否满足测试终止策略;
处理模块,用于当判断结果为是时,则输出所述测试对象和所述反模式测试方案;当判断结果为否时,则利用测试结果调整所述测试对象和/或所述反模式测试方案,得到新的测试对象和/或新的反模式测试方案。
12.根据权利要求10或11所述的装置,其特征在于,
所述第二获取模块获取的所述反模式测试方案还包括正模式的测试策略;
所述测试模块,还用于通过所述反模式测试方案的正模式的测试策略对所述测试对象进行测试。
13.根据权利要求10或11所述的装置,其特征在于,所述第二获取模块获取的反模式测试方案中的反模式的测试策略包括以下之一或者任意组合:
分层反模式的测试策略;
依赖反模式的测试策略;
接口服务化反模式的测试策略;
业务流反模式的测试策略;
安全反模式的测试策略。
14.根据权利要求13所述的装置,其特征在于,
所述测试模块,具体用于在通过所述反模式测试方案的反模式的测试策略对所述测试对象进行测试的过程中:
若所述反模式的测试策略为分层反模式的测试策略,则通过所述分层反模式的测试策略对所述测试对象的不同层次进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象是否存在统一模型;所述测试对象的分层是否符合规范;所述测试对象的内部构建是否合理;
若所述反模式的测试策略为依赖反模式的测试策略,则通过所述依赖反模式的测试策略对所述测试对象的依赖关系进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象的外部依赖程度;所述测试对象的环境隔离性程度;所述测试对象的环境依赖性程度;
若所述反模式的测试策略为接口服务化反模式的测试策略,通过所述接口服务化反模式的测试策略对所述测试对象的服务接口进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象的接口易用性;所述测试对象的接口暴漏方式是否合理;所述测试对象的接口服务化是否合理
若所述反模式的测试策略为业务流反模式的测试策略,则通过所述业务流反模式的测试策略对所述测试对象的业务流进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象的业务数据构造是否合理;所述测试对象的业务数据深度是否合理;所述测试对象的依赖数据构造难易程度是否合理;所述测试对象是否存在易用的构造方式;
若所述反模式的测试策略为安全反模式的测试策略,则通过所述安全反模式的测试策略对所述测试对象的安全情况进行测试,得到测试结果;其中,所述测试结果包括以下之一或者任意组合:所述测试对象的页面安全性是否存在漏洞;所述测试对象的数据库安全性是否存在漏洞。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610839942.8A CN107844413A (zh) | 2016-09-21 | 2016-09-21 | 一种测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610839942.8A CN107844413A (zh) | 2016-09-21 | 2016-09-21 | 一种测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107844413A true CN107844413A (zh) | 2018-03-27 |
Family
ID=61657599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610839942.8A Pending CN107844413A (zh) | 2016-09-21 | 2016-09-21 | 一种测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107844413A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874317A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 一种生成、使用测试用例的方法及其服务器、终端 |
CN111949505A (zh) * | 2019-05-14 | 2020-11-17 | 阿里巴巴集团控股有限公司 | 一种测试方法、装置及设备 |
CN112035335A (zh) * | 2019-06-03 | 2020-12-04 | 北京字节跳动网络技术有限公司 | 自动化测试的方法、装置、设备、介质 |
CN112346989A (zh) * | 2020-11-26 | 2021-02-09 | 网易(杭州)网络有限公司 | 一种接口测试方法、装置、介质和计算设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5950004A (en) * | 1996-09-13 | 1999-09-07 | The United States Of America As Represented By The Secretary Of The Navy | Model-based process for translating test programs |
CN101859274A (zh) * | 2009-04-07 | 2010-10-13 | 西门子(中国)有限公司 | 一种进行模糊测试的方法及*** |
CN104679656A (zh) * | 2015-03-13 | 2015-06-03 | 哈尔滨工程大学 | 一种自适应调整缺陷检测率的组合测试方法 |
-
2016
- 2016-09-21 CN CN201610839942.8A patent/CN107844413A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5950004A (en) * | 1996-09-13 | 1999-09-07 | The United States Of America As Represented By The Secretary Of The Navy | Model-based process for translating test programs |
CN101859274A (zh) * | 2009-04-07 | 2010-10-13 | 西门子(中国)有限公司 | 一种进行模糊测试的方法及*** |
CN104679656A (zh) * | 2015-03-13 | 2015-06-03 | 哈尔滨工程大学 | 一种自适应调整缺陷检测率的组合测试方法 |
Non-Patent Citations (1)
Title |
---|
李新龙: ""软件性能反模式检测***的研究与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874317A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 一种生成、使用测试用例的方法及其服务器、终端 |
CN110874317B (zh) * | 2018-08-31 | 2023-06-20 | 创新先进技术有限公司 | 一种生成、使用测试用例的方法及其服务器、终端 |
CN111949505A (zh) * | 2019-05-14 | 2020-11-17 | 阿里巴巴集团控股有限公司 | 一种测试方法、装置及设备 |
CN111949505B (zh) * | 2019-05-14 | 2024-05-14 | 阿里云计算有限公司 | 一种测试方法、装置及设备 |
CN112035335A (zh) * | 2019-06-03 | 2020-12-04 | 北京字节跳动网络技术有限公司 | 自动化测试的方法、装置、设备、介质 |
CN112346989A (zh) * | 2020-11-26 | 2021-02-09 | 网易(杭州)网络有限公司 | 一种接口测试方法、装置、介质和计算设备 |
CN112346989B (zh) * | 2020-11-26 | 2023-06-20 | 网易(杭州)网络有限公司 | 一种接口测试方法、装置、介质和计算设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hapke et al. | Cell-aware test | |
CN107844413A (zh) | 一种测试方法和装置 | |
CN107957957A (zh) | 测试用例的获取方法和装置 | |
CN109426722A (zh) | Sql注入缺陷检测方法、***、设备及存储介质 | |
US8504968B2 (en) | Method to determine high level power distribution and interface problems in complex integrated circuits | |
CN107807878A (zh) | 基于关键字的自动化测试引擎 | |
CN106294120A (zh) | 测试代码的方法、设备和计算机程序产品 | |
CN102169846A (zh) | 一种在集成电路晶圆测试过程中实现多维变量密码并行写入的方法 | |
CN109298317A (zh) | 一种中低频电路的智能化测试装置及其测试方法 | |
Kaya et al. | E-Cosmic: A business process model based functional size estimation approach | |
US9864004B1 (en) | System and method for diagnosing failure locations in electronic circuits | |
US11216607B2 (en) | Double glitch capture mode power integrity analysis | |
Liu et al. | Improving time-efficiency of fault-coverage simulation for MOS analog circuit | |
KR20230002617A (ko) | 아날로그 결함 검출성 분석을 위한 빠르고 스케일러블한 방법론 | |
CN110457743A (zh) | 一种基于fpga的芯片检测方法 | |
Konrad et al. | Visualizing requirements in UML models | |
Tahoori et al. | Techniques and algorithms for fault grading of FPGA interconnect test configurations | |
CN105487035B (zh) | Fpga边界扫描***的验证方法及装置 | |
KR20230145329A (ko) | 안전 관련 로직에서 결함 타입들을 결정하기 위한 구조적분석 | |
Pomeranz et al. | Location of stuck-at faults and bridging faults based on circuit partitioning | |
Zhao et al. | A review of intelligent design for test based on machine learning | |
Weiß et al. | Towards establishing formal verification and inductive code synthesis in the PLC domain | |
CN105975386A (zh) | 地理信息***软件测试方法 | |
CN106339288B (zh) | 一种软件故障上下文定位的方法及装置 | |
CN103530479A (zh) | 基于Perl的EDIF网表级电路的部分可测性设计***及部分可测性设计方法 |
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 |
Application publication date: 20180327 |
|
RJ01 | Rejection of invention patent application after publication |