CN109669868A - 软件测试的方法及系统 - Google Patents
软件测试的方法及系统 Download PDFInfo
- Publication number
- CN109669868A CN109669868A CN201811543337.1A CN201811543337A CN109669868A CN 109669868 A CN109669868 A CN 109669868A CN 201811543337 A CN201811543337 A CN 201811543337A CN 109669868 A CN109669868 A CN 109669868A
- Authority
- CN
- China
- Prior art keywords
- test
- software
- keyword
- state
- tested
- 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.)
- Withdrawn
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/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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
技术领域:
在各种实现中,当软件测试器指定关键字并使用状态引擎模型来自动化软件测试时,改进的软件测试系统生成状态引擎模型。指定的关键字存储在关键字词汇表中。例如,指定的关键字可以存储在可扩展标记语言(XML)文档中。词汇表可以包含关键字和参数或有效输入的其他规范,例如与每个关键字相关联的先前或下一状态。词汇表还可以包含各种参数的默认值。然后,软件测试人员可以将一个或多个关键字与测试脚本相关联,以后可以选择该测试脚本来自动化测试改进的软件测试系统可以从软件测试器接收测试组件。作为示例,改进的软件测试系统可以提供向导界面,该界面使软件测试人员能够将关键字与测试组件相关联。当测试脚本引用关键字时,可以执行改进的软件测试系统。
技术背景
大型软件开发项目可以具有多个阶段,包括规划,开发和测试。各种软件开发方法包括多次重复这些阶段中的一些或全部,例如在大型或复杂的软件开发项目中。专业软件开发团队通常聘请测试人员在将软件发布给客户之前对其进行测试。测试人员可以测试软件以确保正确性,完整性,安全性和质量。当测试软件不符合测试人员的期望时,测试人员可能会识别出软件缺陷(“bug”)。测试者可以提供一系列步骤,以便软件开发者可以再现缺陷。然后,软件开发者可以解决该缺陷,例如通过修复源代码并生成软件的新“构建”。在本领域中众所周知,修复错误有时会引入其他错误。因此,测试人员经常进行回归测试,这可能涉及遵循先前确定为产生缺陷的步骤。存在各种软件测试技术。这些技术通常可分为手动测试和自动测试。手动测试需要人员执行大多数测试步骤。作为示例,人可以通过遵循详细描述潜在用户与软件的交互的各种场景或者通过采取诸如随机的各种步骤来识别缺陷来测试软件。在执行自动化测试时,软件测试人员使用测试自动化工具自动使测试软件采取各种步骤。例如,测试自动化工具可以记录测试人员与软件的交互作为步骤,然后回放步骤。一些测试自动化工具采用以编程方式与测试软件交互的框架,例如通过使用由测试软件提供的应用程序接口(API)。除了记录和重放步骤之外的自动测试技术可以进一步分为基于关键字的测试和基于模型的测试。在基于关键字的测试中,每个与测试软件的离散交互都会分配一个关键字,并且可以包含相关参数。作为示例,登录过程可以与关键字“登录”相关联,并且具有用户标识符和密码作为关联参数。为了自动测试软件,软件测试者可以指定一个或多个关键字,例如按顺序,以便测试自动化工具执行与每个指定关键字有关的步骤。在基于模型的测试中,软件测试器指定(或导致指定)测试软件的状态引擎模型。状态引擎模型可以识别与测试软件和交互相关的一组状态,这些状态使得测试软件从一种状态移动到另一种状态。然后,软件测试人员可以指定一个测试套件,用于将测试软件从通过或移动到各种软件。
发明内容
关联组件并提供与引用的关键字对应的词汇表中标识的参数。测试组件可以是在脚本语言或目标代码中指定的可执行逻辑。测试组件可以与要测试的软件交互,例如通过测试应用程序或框架。测试应用程序或框架可以通过由测试软件提供的API,由底层操作系统提供的API等与测试软件交互。改进的软件测试系统可以采用一个或多个角色。角色表示要执行的一个或多个测试脚本以及相关的权重。作为示例,角色可以指示一个测试脚本将在75%的时间执行而另一个测试脚本将在25%的时间执行。当软件测试人员开始自动测试并选择此角色时,改进的软件测试系统可以以指定的比例使用测试脚本。一旦改进的软件测试系统配置有关键字和测试组件,软件测试器就可以通过指定关键字来生成测试脚本,或者可以请求改进的软件测试系统自动生成测试脚本。改进的软件测试系统可以通过使测试的软件移动通过由生成的状态引擎模型识别的各种状态来自动生成测试脚本。因此,改进的软件测试系统可以自动生成“随机游走”测试和基于人的或加权路径测试。改进的软件测试系统还可以在手动指定测试脚本期间启用语法检查,转换检查和参数的自动生成。
当软件开发者指定一系列关键字时,改进的软件测试系统可以验证软件开发者是否提供了适当的,语法上正确的参数。如果软件开发人员未指定语法正确的参数,则改进的软件测试系统可以警告软件测试人员或进行适当的更正。改进的软件测试系统可以验证测试脚本是否经过适当设计,以使测试软件从一种状态转换到另一种状态。改进的软件测试系统可以验证状态引擎模型以进行此验证。改进的软件测试系统可以通过使用术语表中指定的参数在手动指定测试脚本期间自动生成参数。参数可以是值,值范围,选项选择等。因此,改进的软件测试系统实现了有效的测试自动化,同时减轻了软件测试者的错误输入的错误。当测试脚本执行时,改进的软件测试系统可以存储步骤和步骤的结果,例如存储在日志文件中。当软件开发人员需要重现测试脚本识别的缺陷时,软件开发人员可以查看存储的步骤和结果,以更容易地找到导致缺陷的软件代码。
改进了软件测试系统包括测试平台组件,词汇表组件,关键字引擎组件,测试脚本组件,应用组件和角色组件。
具体实施方式
测试平台组件可以包括测试应用程序和便于测试软件的其他组件。测试应用程序可以是测试平台的一部分,例如协调改进的软件测试系统的其他组件的应用程序。测试应用程序可以使用词汇表组件和测试脚本组件来执行测试脚本。测试平台组件还可以自动生成测试脚本,例如基于状态引擎模型。词汇表组件可以是与要测试的软件相关联的文档,文件或其他信息库。词汇表可以包括关键字和运行时状态。关键字是改进的软件测试系统在执行测试脚本时可以执行的命令或命令集。运行时状态是要测试的软件的状态。运行时状态可以包括与关键字相关的开始状态和结束状态。术语表还可以包括参数(例如,与测试软件的命令相关联的值),参数默认值,权重等。权重可以指定相应关键字的使用频率,例如通过测试脚本。当词汇表指示特定关键字需要参数时,测试应用程序可以向软件测试者提示值或者可以生成参数的值。
关键字引擎组件可以使用来自词汇表的关键字并识别软件开发者已经提供的与关键字相对应的测试组件。测试组件可以使测试软件调用命令,例如通过使用由测试软件或操作系统提供的API。一个或多个测试脚本可以识别步骤序列,例如通过从词汇表中识别关键字。可以手动或自动创建测试脚本。例如,软件测试人员可以通过指定一个或多个关键字来创建测试脚本。或者,测试应用程序可以自动创建测试脚本。
应用程序组件是要测试的软件应用程序。改进的软件测试系统可以测试各种应用程序。改进的软件测试系统可以与一个或多个角色组件一起工作。角色可以识别测试类型,持续时间,要执行的测试脚本,测试脚本的权重等。
改进的软件测试系统在其上运行的计算设备可以包括一个或多个中央处理单元,存储器,输入设备(例如,键盘和指示设备),输出设备(例如,显示设备),存储设备(例如,磁盘驱动器)和网络设备(例如,网络接口)。存储器和存储设备是计算机可读介质,其可以存储实现改进的软件测试系统的指令。此外,数据结构和消息结构可以通过数据传输介质存储或传输,例如通信链路上的信号。可以采用各种通信链路,例如因特网,局域网,广域网或点对点拨号连接。
改进的软件测试系统可以使用各种计算系统或设备,包括个人计算机,服务器计算机,手持或膝上型设备,多处理器系统,基于微处理器的系统,可编程消费电子产品,电子游戏控制台,网络PC,小型计算机。大型计算机,包括任何上述系统或设备的分布式计算环境等。改进的软件测试系统还可以向各种计算系统提供其服务,例如个人计算机,蜂窝电话,个人数字助理,消费电子产品,家庭自动化设备等。
可以在由一个或多个计算机或其他设备执行的计算机可执行指令(例如程序模块)的一般上下文中描述改进的软件测试系统。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程,程序,对象,组件,数据结构等。通常,程序模块的功能可以根据需要在各种实施例中组合或分布。
在一些实现中由改进的软件测试系统调用的配置例程的流程图。调用例程以配置改进的软件测试系统。例程接收程序状态信息,例如与要测试的软件相关联的状态信息。改进的软件测试系统可以使用程序状态信息来导出要测试的软件的状态引擎模型。例程产生关键词汇表。例程可以通过从接收的节目状态信息生成关键字来产生关键词的词汇表。或者,例程可以从用户接收关键字。词汇表可以包括与关键字相关的其他信息,例如参数。例程产生应用程序(例如,软件)行为的模型。例程返回。
在一些实现中由改进的软件测试系统调用的develop_test_script例程的流程图。调用例程以开发测试脚本,例如在软件测试器的指导下。例程基于待测试软件的当前状态提供一组关键字。当首次调用例程时,例程可以假定软件处于“未运行”状态。例程可以从词汇表中检索该信息并在用户界面中将其提供给用户。例程从用户接收关键字选择。例程确定所选关键字是否需要参数。如果是这种情况,则例程在接收参数。在各种实现中,改进的软件测试系统可以自动生成参数或者可以提示用户输入参数。在接收参数之后,如果所选关键字不需要参数,则例程也是如此。
在一些实现中由改进的软件测试系统调用的execute_test_script例程的流程图。改进的软件测试系统可以调用例程来执行测试脚本。例程加载测试脚本。测试脚本可以由软件测试器识别,或者可以随机识别,例如基于所选择的角色。例程执行测试脚本中指示的步骤。作为示例,例程可以加载由测试脚本中标识的关键字指示的测试组件。例程可以报告错误。例如,如果测试脚本无法执行或导致软件错误,则例程可能会记录此类错误。稍后,当软件开发人员想要确定软件无法执行的原因时,软件开发人员可以查看日志。日志可能包含已执行的关键字或步骤列表。
以上对改进的软件测试系统的实施例的详细描述并非旨在穷举或将改进的软件测试系统限制为上面公开的精确形式。虽然以上出于说明性目的描述了改进的软件测试系统的特定实施例和示例,但是如相关领域的技术人员将认识到的,在改进的软件测试系统的范围内可以进行各种等效修改。例如,虽然以给定顺序呈现过程或块,但是备选实施例可以以不同的顺序执行具有步骤的例程,或者使用具有块的系统,并且可以删除,移动,添加,细分一些过程或块,合并和/或修改。这些过程或块中的每一个可以以各种不同的方式实现。而且,虽然有时将过程或块示出为串行执行,但是这些过程或块可以替代地并行执行,或者可以在不同时间执行。在上下文允许的情况下,使用单数或复数的上述具体实施方式中的词语也可以分别包括复数或单数。
本文提供的改进的软件测试系统的教导可以应用于其他系统,不一定是本文描述的系统。可以组合上述各种实施例的元件和动作以提供进一步的实施例。
根据以上详细描述,可以对改进的软件测试系统进行这些和其他改变。虽然以上描述详细描述了改进的软件测试系统的某些实施例并且描述了预期的最佳模式,但无论上述内容如何详细地出现在文本中,改进的软件测试系统都可以以多种方式实施。如上所述,在描述改进的软件测试系统的某些特征或方面时使用的特定术语不应被视为暗示本文中重新定义术语以限制于改进的软件测试系统的任何特定特征,特征或方面。该术语与之相关。通常,以下权利要求中使用的术语不应被解释为将改进的软件测试系统限制于说明书中公开的特定实施例,除非上述具体实施方式部分明确地定义了这些术语。因此,改进的软件测试系统的实际范围不仅包括所公开的实施例,还包括在权利要求下实践或实现改进的软件测试系统的所有等效方式。
Claims (5)
1.一种用于测试软件的系统,包括:待测试的软件应用程序;包含关键字和规范的词汇表要测试的软件的第一和第二状态;包含对关键字的引用的测试脚本;和一个检索测试脚本的测试平台,识别一个测试脚本引用的关键字,并执行导致软件应用程序移动的步骤第一个州到第二个州。
2.如权利要求1所述的系统,其特征在于还包括识别对所述测试脚本执行频率的指示的角色。
3.如权利要求1所述的系统,还包括关键字引擎,其将关键字与测试组件相关联,所述测试组件包含用于使所述软件应用程序从所述第一状态移动到所述第二状态的指令。
4.一种测试软件的方法,包括:接收包含第一个的程序状态信息程序状态和第二程序状态,程序状态与软件应用程序相关联进行测试;识别导致软件应用程序的关键字被测试从第一个程序状态转移到第二个程序状态;并生成一个应用程序行为模型,该模型指定第一和第二状态。
5.如权利要求4所述的方法,还包括基于关键字和应用行为模型自动产生测试脚本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811543337.1A CN109669868A (zh) | 2018-12-17 | 2018-12-17 | 软件测试的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811543337.1A CN109669868A (zh) | 2018-12-17 | 2018-12-17 | 软件测试的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109669868A true CN109669868A (zh) | 2019-04-23 |
Family
ID=66144801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811543337.1A Withdrawn CN109669868A (zh) | 2018-12-17 | 2018-12-17 | 软件测试的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109669868A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113138914A (zh) * | 2020-01-19 | 2021-07-20 | 腾讯科技(深圳)有限公司 | 资源交互系统测试方法、装置、存储介质和计算机设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080010539A1 (en) * | 2006-05-16 | 2008-01-10 | Roth Rick R | Software testing |
CN102693183A (zh) * | 2012-05-30 | 2012-09-26 | 瑞斯康达科技发展股份有限公司 | 一种实现软件自动化测试的方法及系统 |
-
2018
- 2018-12-17 CN CN201811543337.1A patent/CN109669868A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080010539A1 (en) * | 2006-05-16 | 2008-01-10 | Roth Rick R | Software testing |
US20130326486A1 (en) * | 2006-05-16 | 2013-12-05 | Open Text S.A. | Keyword based software testing system and method |
CN102693183A (zh) * | 2012-05-30 | 2012-09-26 | 瑞斯康达科技发展股份有限公司 | 一种实现软件自动化测试的方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113138914A (zh) * | 2020-01-19 | 2021-07-20 | 腾讯科技(深圳)有限公司 | 资源交互系统测试方法、装置、存储介质和计算机设备 |
CN113138914B (zh) * | 2020-01-19 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 资源交互系统测试方法、装置、存储介质和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10572360B2 (en) | Functional behaviour test system and method | |
US9846638B2 (en) | Exposing method related data calls during testing in an event driven, multichannel architecture | |
CA2336608C (en) | Method for defining durable data for regression testing | |
US7895565B1 (en) | Integrated system and method for validating the functionality and performance of software applications | |
CA2391125C (en) | Method for computer-assisted testing of software application components | |
CN110309071B (zh) | 测试代码的生成方法及模块、测试方法及系统 | |
US8522214B2 (en) | Keyword based software testing system and method | |
US8881105B2 (en) | Test case manager | |
Memon | Automatically repairing event sequence-based GUI test suites for regression testing | |
US5754760A (en) | Automatic software testing tool | |
US6941546B2 (en) | Method and apparatus for testing a software component using an abstraction matrix | |
EP2705441B1 (en) | Automatic classification adjustment of recorded actions for automation script | |
CN108959068A (zh) | 软件界面测试方法、设备及存储介质 | |
CN109977012B (zh) | 系统的联调测试方法、装置、设备及计算机可读存储介质 | |
CN109669868A (zh) | 软件测试的方法及系统 | |
US20080195453A1 (en) | Organisational Representational System | |
Kent | Test automation: From record/playback to frameworks | |
Silva | Quality Assurance Framework for Low-Code Development Platforms | |
CN116932414B (zh) | 界面测试用例的生成方法、设备及计算机可读存储介质 | |
CN115543807A (zh) | 一种自动化回归测试方法、装置、计算机设备及存储介质 | |
CN117971702A (zh) | 业务平台的响应测试方法、装置、介质及电子设备 | |
CN115509923A (zh) | 单元测试案例生成方法、装置以及计算机存储介质 | |
CN115309653A (zh) | 用于工业控制软件测试的组态验证方法、装置和存储介质 | |
Seyoum | Automation of Test Cases for Web Applications: Automation of CRM Test Cases |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190423 |