CN102346709A - 软件开发辅助方法及系统 - Google Patents
软件开发辅助方法及系统 Download PDFInfo
- Publication number
- CN102346709A CN102346709A CN2010102444973A CN201010244497A CN102346709A CN 102346709 A CN102346709 A CN 102346709A CN 2010102444973 A CN2010102444973 A CN 2010102444973A CN 201010244497 A CN201010244497 A CN 201010244497A CN 102346709 A CN102346709 A CN 102346709A
- Authority
- CN
- China
- Prior art keywords
- software
- test case
- upgrading
- execution
- subscriber equipment
- 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
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
- 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
-
- 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
-
- 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/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种软件开发方法和系统。该方法包括:针对发布的软件或与该软件相关的软件更新,向用户设备提供相关的测试实例及其执行工具;从用户设备侧收集所述测试实例的执行信息;以及汇总分析所述测试实例的执行信息,以得出基于测试实例的软件使用分析结果。本发明通过使软件开发方随其软件或软件更新一同向用户提供共享的测试实例及执行工具,能够从用户设备直观地收集软件使用信息,从而尽早地发现其软件中的缺陷。
Description
技术领域
本发明涉及数据处理技术,具体地,涉及软件开发辅助方法和系统。
背景技术
现今,大量的软件被不断的开发出来,被应用于计算机和对人们的生活有至关重要影响的机器,这些机器诸如ATM、汽车等。对于这些机器而言,所应用的软件需要是安全可靠的。但是,软件在发布后被发现存在缺陷是普遍存在的现象。一旦软件被发现存在缺陷,软件开发方应该尽快进行修补。一般,软件开发方通过发布补丁来修补其软件中的缺陷。
此外,即使软件中不存在缺陷,也需要其不断地改进来适应不断涌现的新功能、新技术的进步。从而,许多软件开发方为了满足人们的不断增加的功能需求,也会在其软件发布之后通过发布补丁来对其软件进行升级,这些补丁或者用来提供新功能,或者用来提供改进的功能。
在软件的开发过程中,软件开发方通常利用自动的测试实例来测试其所开发的软件。所谓自动的测试实例,是利用脚本实现的、代表软件中的某种功能的程序,其可由相应的自动执行工具来执行,该自动执行工具识别测试实例的执行成功或失败,并记录用于揭示软件的缺陷和问题调试所需的信息。
虽然软件开发人员通过这样的测试能够在软件开发阶段发现软件中的大部分缺陷并进行改进,但是仍然可能会有未被发现的缺陷遗留在软件中。
相对于此,由于不同的用户对于软件的使用会侧重于不同的方面,所以通过用户的使用,更容易发现软件中所存在的缺陷。从而,一般地,软件开发方通过从不同用户收集在软件使用过程中所遇到的问题的反馈来确定软件中的缺陷,进而开发用于修补缺陷的补丁。但是,这样的收集是花费时间和人力的,并且软件开发方与用户之间的沟通方式通常并不直观,软件开发方需要根据用户的描述重建用户的使用环境及操作步骤来寻找问题所在,这导致软件开发方难以有效地根据用户的反馈来确定软件中的缺陷。
此外,用于修补或提供新功能的软件补丁也有可能包含缺陷。虽然软件开发方在发布软件补丁之前也会利用测试实例对其进行测试,但是测试力度相较于正式发布的软件来说,有可能是不及的。目前,利用软件补丁来升级软件的工作可以由用户手动来进行,也可以通过更新管理器自动进行,该更新管理器通过检查软件的版本和补丁信息来自动地将相应的软件补丁部署到用户设备上。由于软件逐渐变得复杂和数目众多,所以自动部署软件补丁的方式越来越普及。
但是,如果软件补丁包含未被测试出的缺陷,则将其一次自动部署到所有用户设备上来进行软件升级的自动部署方式,对于要求安全可靠性的机器而言将是非常危险的。
因此,希望有选择地将软件补丁自动部署到用户设备上,以避免所有用户设备都暴露于软件补丁所带来的潜在危险中。
发明内容
鉴于上述问题,本发明提供一种软件开发辅助方法和系统,以便根据从用户收集的基于共享的测试实例的软件使用情况,来辅助软件的开发、修补和完善以及软件更新的自动部署。在此,将软件开发方为修补其已发布的软件而开发的软件补丁或为提供新功能而开发的软件补丁统称为软件更新。
根据本发明的一个方面,提供了一种软件开发辅助方法,包括:针对发布的软件或与该软件相关的软件更新,向用户设备提供相关的测试实例及其执行工具,其中相关的测试实例及其执行工具用于测试所述软件或软件更新;从用户设备侧收集所述测试实例的执行信息;以及汇总分析所述测试实例的执行信息,以得出基于测试实例的软件使用分析结果。
根据本发明的另一个方面,提供了一种软件开发辅助方法,包括:针对发布的软件或与该软件相关的软件更新,从软件开发方获得相关的测试实例及其执行工具,其中相关的测试实例及其执行工具用于测试所述软件或软件更新;针对所述软件或软件更新,利用所述执行工具执行所述测试实例;收集所述测试实例的执行信息,以反馈给软件开发方。
根据本发明的再一个方面,提供了一种软件开发辅助系统,包括:测试实例管理单元,被配置为针对发布的软件或与该软件相关的软件更新,向用户设备提供相关的测试实例及其执行工具,其中相关的测试实例及其执行工具用于测试所述软件或软件更新;并且从用户设备侧收集所述测试实例的执行信息;以及分析单元,被配置为汇总分析从用户设备收集的所述测试实例的执行信息,以得出基于测试实例的软件使用分析结果。
根据本发明的再一个方面,提供了一种软件开发辅助系统,包括:测试实例及其执行工具,与软件或软件更新相关并在软件或与该软件相关的软件更新的发布时从软件开发方获得,其中相关的测试实例及其执行工具用于测试所述软件或软件更新;测试实例管理单元,被配置为调用所述执行工具执行所述测试实例,并收集所述测试实例的执行信息,以反馈给软件开发方。
采用本发明,通过随软件或软件更新一同向用户提供相关的测试实例及其执行工具,能够从用户设备直观有效地收集与测试实例相关的软件使用信息,从而帮助软件开发方尽早有效地发现其软件或软件更新中的缺陷。
附图说明
相信通过以下结合附图对本发明具体实施方式的说明,能够使人们更好地了解本发明上述的特点、优点和目的。
图1是根据本发明实施例1的软件开发辅助系统的方框图;
图2是与图1的系统相应的软件开发辅助方法的流程图;
图3是根据本发明实施例2的软件开发辅助系统的方框图;
图4是与图3的方法相应的软件开发辅助方法的流程图;
图5是根据本发明实施例3的软件开发辅助系统的方框图;以及
图6是与图5的系统相应的软件开发辅助方法的流程图。
具体实施方式
下面就结合附图对本发明的各个优选实施例进行详细说明。在以下的说明中,同样,将软件开发方为修补其已发布的软件而开发的软件补丁或为提供新功能而开发的软件补丁统称为软件更新。
(实施例1)
首先,说明本发明实施例1的软件开发辅助方法和系统。
图1是根据本发明实施例1的软件开发辅助系统的方框图。
如图1所示,该系统10包括用户设备侧的测试实例库11、测试实例创建单元12、测试实例执行单元13、测试实例管理单元14以及软件开发方设备侧的测试实例管理单元15、测试实例执行信息库16、分析单元17。
在用户设备侧,测试实例库11存储有大量用于测试软件18或其软件更新的功能的测试实例。这些测试实例的每一个利用脚本生成,代表软件18或其软件更新中的某种功能,可由自动执行工具来执行以测试该功能是否正常工作。
测试实例库11中的测试实例可以在软件18或其软件更新的发布时,由软件开发方向用户设备提供。在一个实施例中,这些测试实例随所述软件18或其软件更新一同被提供给用户设备,即与该软件18或其软件更新打包在一起。在另一个实施例中,这些测试实例被提供在用户设备能够访问的软件开发方站点,用户根据一定的条件获得之。
进而,该测试实例库11中的测试实例与软件开发方在开发软件18或其软件更新时所使用的测试实例完全相同,也可以是其中的一部分。
测试实例创建单元12用于在用户设备侧针对软件18或其软件更新创建新的测试实例。在此,利用测试实例创建单元13所创建出的新的测试实例也可以被添加到测试实例库11中。
由于软件开发人员所生成的测试实例是基于其自身的角度而生成的,可能是有限的而未涵盖所有的用户使用环境或操作步骤,利用这样的测试实例有可能使软件开发人员未测试到软件或软件更新的方方面面,使未发现的缺陷遗留在软件或软件更新中。
相对于此,由于不同的用户对于软件的使用会侧重于不同的方面,所以如果用户能够根据自身对软件的使用需求来创建与特定软件功能相关的测试实例,则将更容易帮助软件开发方发现软件或软件更新中的缺陷。因此,在用户设备侧具备能够创建测试实例的测试实例创建单元12,对于软件或软件更新的改进来说将是非常有利的。
该测试实例创建单元12可以由软件开发方随软件18或其软件更新一同发布的测试实例创建工具来实现。该测试实例创建工具既可以随所述软件18或其软件更新一同被提供给用户设备,也可以被提供在用户设备能够访问的软件开发方站点。
进而,该测试实例创建工具可以与软件开发方在开发软件18或其软件更新时所使用的测试实例创建工具相同,也可以是简化的创建工具。
测试实例执行单元13用于针对软件18或其软件更新,调用测试实例库11中的测试实例并在用户设备上执行,并记录执行结果。
具体地,该测试实例执行单元13识别测试实例的执行的成功或失败,如果测试实例执行成功,则生成表示测试实例执行成功的记录;如果执行失败,则生成表示测试实例执行失败的记录。此外,该失败记录可以包括多种信息,诸如具体的测试实例失败表现以及用户的具体操作等,以便能够详细描述测试实例的失败细节。
该测试实例执行单元13可以由软件开发方随软件18或其软件更新一同发布的测试实例执行工具来实现。同样,该测试实例执行工具既可以随软件18或其软件更新一同被提供给用户设备,也可以被提供在用户设备能够访问的软件开发方站点。
进而,该测试实例执行工具可以与软件开发方在开发软件18或其软件更新时所使用的测试实例执行工具相同,也可以是简化的执行工具。
测试实例管理单元14在用户设备侧调用测试实例执行工具13以执行测试实例库11中的测试实例,并收集测试实例的执行信息,以反馈给软件开发方。此外,在软件开发方通过其站点提供测试实例的情况下,该测试实例管理单元14还负责从该站点下载测试实例并存储到测试实例库11。
此外,在测试实例库11中的测试实例是利用测试实例创建单元12新创建的测试实例的情况下,该测试实例管理单元14将该新创建的测试实例与其执行信息一同反馈给软件开发方。
此外,测试实例管理单元14向软件开发方反馈上述执行信息以及新的测试实例(如果存在的话)的方式可以是多样的,其可以周期地上报所收集的执行信息以及新的测试实例(如果存在的话),并且在发生了测试实例执行失败的情况下,实时地在线向软件开发方发送关于该测试实例执行失败的通知并反馈执行信息。
此外,测试实例管理单元14可以将执行信息以及新的测试实例(如果存在的话)直接反馈给软件开发方设备。也可以在软件开发方通过站点的测试实例执行信息库来收集测试实例的执行信息的情况下,周期地将执行信息以及新的测试实例(如果存在的话)上传到该测试实例执行信息库。
测试实例管理单元14可以由软件开发方随软件18或其软件更新一同发布的测试实例管理工具来实现。同样,该测试实例管理工具既可以随软件18或其软件更新一同被提供给用户设备,也可以被提供在用户设备能够访问的软件开发方站点。
在软件开发方设备侧,测试实例管理单元15周期地或在从用户设备接收到测试实例执行失败的通知时,从用户设备收集测试实例的执行信息以及新的测试实例(如果存在的话),并存储到测试实例执行信息库16。在软件开发方通过站点的测试实例库来向用户设备提供测试实例的情况,该测试实例管理单元15还负责将软件开发方的测试实例上传到该站点的测试实例库。
分析单元17汇总分析测试实例执行信息库16中的执行信息,以得出基于测试实例的软件使用分析结果。具体地,该分析单元17通过分析,报告出软件功能使用、执行结果和/或功能出错统计等,这些统计诸如是某一功能被使用的频率、某一功能出错的频率等。
从而,在软件开发方侧,能够以该分析单元17所给出的软件使用分析结果为指导,开发或自动部署其下一版本的软件更新。
以上就是图1的软件开发辅助系统的详细描述。需要说明的是,虽然在图1所示出的系统中,在用户设备侧包括了测试实例创建单元12,但是可以理解,该测试实例创建单元12并不是必须的,在具体实现中,也可以在用户设备侧不包括该单元,而仅执行软件开发方所提供的测试实例。
此外,还需要说明的是,虽然在图1的系统中将用户设备侧和软件开发方侧结合在一起进行了图示和说明,但是可以理解,用户设备侧的系统部分和软件开发方设备侧的系统部分是可以分别作为单独的系统来实现和使用的。因此,在实际的实现中,也可以将图1的系统划分为与用户侧有关的软件开发辅助系统(包括上面图1中的测试实例库11、测试实例创建单元12、测试实例执行单元13、测试实例管理单元14)和与软件开发方侧有关的软件开发辅助系统(包括上面图1中的测试实例管理单元15、测试实例执行信息库16、分析单元17)来分别实现。
下面结合图2描述本实施例的与图1的系统相应的软件开发辅助方法。
如图2所示,在该方法中,首先在步骤205,针对软件开发方所发布的软件18或与软件18相关的软件更新,在用户设备侧从软件开发方获得相关的测试实例及其执行工具。
如上所述,在用户设备侧可以从软件开发方随软件18或其软件更新一同获得相关的测试实例及其执行工具,也可以通过能够访问的软件开发方站点来获得。
在此,在用户设备侧,将从软件开发方所获得的测试实例存储到测试实例库11中,并且安装软件开发方所提供的测试实例执行工具从而形成测试实例执行单元13。
在可选步骤210,在用户设备侧针对软件18或其软件更新创建新的测试实例。
本步骤利用软件开发方随软件18或软件更新一同提供或提供在用户设备能够访问的软件开发方站点的测试实例创建工具来实现。
在步骤215,在用户设备侧利用测试实例执行工具,针对软件18或其软件更新执行测试实例库11中的测试实例,以测试该软件18或其软件更新的功能。
在此,上述测试实例可以是软件开发方所提供的测试实例,也可以是用户新创建的测试实例。
在步骤220,在用户设备侧收集上述测试实例的执行信息,以反馈给软件开发方。
具体地,在本步骤中,收集测试实例执行工具所生成的测试实例执行记录,测试实例执行记录表示测试实例的执行成功或失败。并且如果测试实例执行失败,则测试实例执行记录包含更多的信息,诸如具体的测试实例失败表现以及用户的具体操作等。
此外,在测试实例是用户设备侧新创建的测试实例的情况下,在本步骤中将该新创建的测试实例与其执行信息一同反馈给软件开发方。
进而,在本步骤中,周期地向软件开发方反馈所收集的测试实例的执行信息以及新的测试实例(如果存在的话),并且在发生了测试实例执行失败的情况下,实时地在线向软件开发方发送关于该测试实例执行失败的通知并反馈执行信息。
本步骤利用软件开发方随软件18或软件更新一同提供或提供在用户设备能够访问的软件开发方站点的测试实例管理工具来实现。
在步骤225,在软件开发方侧汇总分析从用户设备反馈的测试实例的执行信息以及新的测试实例(如果存在的话),以得出基于测试实例的软件使用分析结果。
在该步骤中,在软件开发方侧,通过测试实例的执行信息以及新的测试实例(如果存在的话)的汇总分析,得出基于测试实例的功能使用、执行结果和/或功能出错统计等软件使用分析结果,这些统计诸如某一功能被使用的频率、某一功能出错的频率等。
从而,在软件开发方侧,能够以上述软件使用分析结果为指导,开发或自动部署其下一版本的软件更新。
以上就是图2的软件开发辅助方法的详细描述。需要说明的是,虽然在图2的方法中将用户设备侧和软件开发方侧结合在一起进行了图示和说明,但是可以理解,用户设备侧的方法步骤和软件开发方设备侧的方法步骤是可以分别作为单独的方法来实现和使用的。因此,在实际的实现中,也可以将图2的方法划分为与用户侧有关的软件开发辅助方法和与软件开发方侧有关的软件开发辅助方法来分别实现,其中与用户侧有关的软件开发辅助方法包括上面图2中的步骤205、可选步骤210、步骤215和220,与软件开发方侧有关的软件开发辅助方法包括上面图2中的步骤205(此时为软件开发方向用户设备提供相关的测试实例及其执行工具)、步骤220(此时为从用户设备侧收集测试实例的执行信息)以及步骤225。
以上,结合图1和图2对本实施例的软件开发辅助方法和系统进行了详细描述。本实施例通过使软件开发方随其软件或软件更新一同向用户提供共享的测试实例及执行工具,使用户能够以与软件开发方一致的方式利用在测试过程中所生成的信息更好地与软件开发方进行沟通,使软件开发方能够从用户设备直观有效地收集基于测试实例的软件使用信息,从而尽早地发现其软件或软件更新中的缺陷,或更好地有选择地自动部署其新开发的软件更新。
(实施例2)
在上面描述的实施例1的软件开发辅助方法和系统的基础上,下面描述本发明实施例2的软件开发辅助方法和系统。
图3是根据本发明实施例2的软件开发辅助系统的方框图。
如图3所示,该系统30在图1所示的系统10的基础上,还在软件开发方设备侧包括缺陷跟踪单元31。
具体地,在该系统30中,在软件开发方侧针对其已经发布的软件18或与该软件相关的软件更新,利用系统10获得用户设备侧的测试实例的执行信息以及基于测试实例的软件使用分析结果。
接着,软件开发方设备侧的缺陷跟踪单元31根据系统10的测试实例的执行信息以及软件使用分析结果,确定软件18或其软件更新中所存在的缺陷或经常使用的功能。
从而,在软件开发方侧,根据该缺陷跟踪单元18所确定的缺陷或经常使用的功能,确定新的软件更新的开发方向,开发用于修补软件18或其软件更新中所存在的缺陷的下一版本的软件更新,或开发用于提供新功能以增强软件18或其软件更新中经常使用的功能的下一版本的软件更新。
以上就是图3的软件开发辅助系统的详细描述。
下面结合图4描述本实施例的与图3的系统相应的软件开发辅助方法。
如图4所示,在该方法中,首先在步骤405,在软件开发方侧针对其已经发布的软件18或与该软件相关的软件更新,利用图2的方法,获得用户设备侧的测试实例的执行信息以及基于测试实例的软件使用分析结果。
接着,在步骤410,在软件开发方侧根据所述测试实例的执行信息以及软件使用分析结果,确定软件18或其软件更新中所存在的缺陷或经常使用的功能。
从而,在软件开发方侧开发用于修补软件18或其软件更新中所存在的缺陷或与经常使用的功能相关的下一版本的软件更新。
以上就是对本实施例的软件开发辅助方法和系统的详细描述。本实施例通过使软件开发方能够从用户设备直观有效地收集基于测试实例的软件使用信息,能够帮助软件开发方尽早地发现其软件或软件更新中的缺陷并通过开发软件更新来进行修补。此外,由于通常软件开发方没有有效的方式来获知用户对于其已发布的软件的进一步需求以及使用情况,所以难以确定下一次软件更新的开发方向。但是,利用本实施例,能够使软件开发方基于从用户设备收集的共享的测试实例的执行信息获知用户的功能需求,从而确定进一步的软件更新的开发方向,以提供更加符合用户需求的软件功能。
(实施例3)
在上面描述的实施例1和2的软件开发辅助方法和系统的基础上,下面描述本发明实施例3的软件开发辅助方法和系统。
图5是根据本发明实施例3的软件开发辅助系统的方框图。
如图5所示,该系统50在图1所示的系统10的基础上,还在软件开发方设备侧包括自动部署单元51和自动部署设置单元52。
具体地,在该系统50中,在软件开发方侧针对其已经发布的软件18或与该软件相关的软件更新,利用系统10获得用户设备侧的测试实例的执行信息以及基于测试实例的软件使用分析结果。
接着,软件开发方设备侧的自动部署单元51根据上述测试实例的执行信息以及软件使用分析结果,将在软件开发方侧针对软件18新开发的软件更新53选择性地自动部署到与该软件更新所涉及的功能密切相关的一部分用户设备。
在此,与新的软件更新53所涉及的功能密切相关的一部分用户设备,可以是根据上述测试实例的执行信息以及软件使用分析结果而确定的经常使用该功能的用户设备,也可以是所确定的先前通过执行与该功能相关的测试实例而出现了执行失败的用户设备。
此外,该自动部署单元51还将与新的软件更新53相关的测试实例与该新的软件更新一同自动部署到上述一部分用户设备。
进而,在软件开发方侧,利用系统10周期地或在接收到执行失败的通知时从该一部分用户设备获得与新的软件更新53相关的测试实例的执行信息以及软件使用分析结果,并且自动部署设置单元52根据从该一部分用户设备获得的测试实例的执行信息以及软件使用分析结果,对新的软件更新53确定自动部署设置,并将自动部署设置通知给自动部署单元51。
具体地,所述自动部署设置可以包括是否向除了已被部署新的软件更新53的用户设备之外的其他用户设备全面部署该新的软件更新的设置和/或向哪些用户设备自动部署该新的软件更新的设置等。例如,在自动部署设置单元52根据从该一部分用户设备获得的测试实例的执行信息及其分析结果发现新的软件更新53中存在缺陷时,进行暂时不全面部署该新的软件更新的自动部署设置,以待软件开发方对该软件更新53进行改进。又例如,对于根据从该一部分用户设备获得的测试实例的执行信息及其分析结果而确定了基本上不使用该新的软件更新所涉及的功能的用户设备,进行不部署该新的软件更新53的自动部署设置等。
可以理解,如果软件开发方根据所获得的测试实例的执行信息及其分析结果发现了新的软件更新53中所存在的缺陷,则将首先对该缺陷进行改进,然后再进行新的软件更新53的全面自动部署。
从而,自动部署单元51根据自动部署设置单元52的设置,进行新的软件更新53向其它用户设备的自动部署。
以上就是图5的软件开发辅助系统的详细描述。
下面结合图6描述本实施例的与图5的系统相应的软件开发辅助方法。
如图6所示,在该方法中,首先在步骤605,在软件开发方侧针对其已发布的软件或与该软件相关的软件更新,利用图2的方法,获得用户设备侧的测试实例的执行信息以及基于测试实例的软件使用分析结果。
接着,在步骤610,在软件开发方侧根据所述测试实例的执行信息以及软件使用分析结果,确定与针对软件18新开发的软件更新53所涉及的功能密切相关的一部分用户设备。
在本步骤中,可以根据上述测试实例的执行信息及其分析结果确定经常使用新的软件更新53所涉及的功能的用户设备,也可以确定先前通过执行与该功能相关的测试实例而出现了执行失败的用户设备,作为与该新的软件更新53所涉及的功能密切相关的一部分用户设备。
在步骤615,在软件开发方侧将新的软件更新53以及相关的测试实例选择性地自动部署到上述一部分用户设备。
在步骤620,在软件开发方侧利用图2的方法从所述一部分用户设备收集与新的软件更新53相关的测试实例的执行信息以及软件使用分析结果。
在步骤625,根据与新的软件更新53相关的测试实例的执行信息以及软件使用分析结果,对新的软件更新53确定自动部署设置。
在步骤630,在软件开发方侧根据所述自动部署设置进行新的软件更新53向其它用户设备的自动部署。
可以理解,在该步骤中,如果软件开发方根据所获得的测试实例的执行信息及其分析结果发现了新的软件更新53中所存在的缺陷,则将首先对该缺陷改进,然后再进行新的软件更新53的全面自动部署。
以上就是对本实施例的软件开发辅助方法和系统的详细描述。本实施例通过使软件开发方根据从用户设备直观有效地收集的基于测试实例的软件使用信息,选择性地将新开发的软件更新自动部署到与该软件更新的功能密切相关的一小部分用户设备处来进行检验,进而根据检验结果再确定是否全面部署该软件更新,能够避免因全面自动部署软件更新而同时在大批用户设备上引发问题的情况。
此外,需要说明的是,以上虽然对实施例2、3的软件开发辅助方法和系统分别进行了说明,但这仅是为了说明的方便而采用的描述形式。在实际实现中,也可以将实施例2、3相结合来实现,即在实施例3的软件开发辅助方法和系统中,所自动部署的软件更新是通过实施例2的软件开发辅助方法或系统开发出的用于修补软件18或其软件更新中所存在的缺陷或与经常使用的功能相关的下一版本的软件更新。
此外,还需要指出的是,上述图1的系统10、图3的系统30、图5的系统50及其各个组成部分,可以由专用的电路或芯片构成,也可以通过计算机(处理器)执行相应的程序来实现。
以上虽然通过一些示例性的实施例对本发明的软件开发辅助方法和系统进行了详细的描述,但是以上这些实施例并不是穷举的,本领域技术人员可以在本发明的精神和范围内实现各种变化和修改。因此,本发明并不限于这些实施例,本发明的范围仅以所附权利要求为准。
Claims (19)
1.一种软件开发辅助方法,包括:
针对发布的软件或与该软件相关的软件更新,向用户设备提供相关的测试实例及其执行工具,其中相关的测试实例及其执行工具用于测试所述软件或软件更新;
从用户设备侧收集所述测试实例的执行信息;以及
汇总分析所述测试实例的执行信息,以得出基于测试实例的软件使用分析结果。
2.根据权利要求1所述的方法,其中所述测试实例及其执行工具与所述软件或软件更新一同打包而提供给所述用户设备。
3.根据权利要求1所述的方法,其中所述测试实例及其执行工具通过所述用户设备能够访问的软件开发方站点提供给所述用户设备。
4.根据权利要求1所述的方法,其中所述基于测试实例的软件使用分析结果包括所述软件或软件更新的功能使用、执行结果和/或功能出错统计。
5.根据权利要求1-4中的任意一项所述的方法,包括:
根据所述测试实例的执行信息以及软件使用分析结果,确定所述软件或软件更新中所存在的缺陷或经常使用的功能。
6.根据权利要求5所述的方法,包括:
将针对所述软件或软件更新中所存在的缺陷或经常使用的功能开发的新的软件更新选择性地自动部署到与该新的软件更新所涉及的功能密切相关的一部分用户设备。
7.一种软件开发辅助方法,包括:
针对发布的软件或与该软件相关的软件更新,从软件开发方获得相关的测试实例及其执行工具,其中相关的测试实例及其执行工具用于测试所述软件或软件更新;
针对所述软件或软件更新,利用所述执行工具执行所述测试实例;
收集所述测试实例的执行信息,以反馈给软件开发方。
8.根据权利要求7所述的方法,还包括:
针对所述软件或软件更新创建新的测试实例;
利用所述执行工具,与从软件开发方获得的测试实例一同执行所述新的测试实例;
其中,将所述新的测试实例与其执行信息一同反馈给软件开发方。
9.根据权利要求8所述的方法,其中所述针对所述软件或软件更新创建新的测试实例通过软件开发方与所述软件或软件更新一同向用户设备提供的测试实例创建工具实现。
10.根据权利要求1或7所述的方法,其中所述测试实例的执行信息包括表示所述测试实例的执行成功或失败的记录。
11.一种软件开发辅助系统,包括:
测试实例管理单元,被配置为针对发布的软件或与该软件相关的软件更新,向用户设备提供相关的测试实例及其执行工具,其中相关的测试实例及其执行工具用于测试所述软件或软件更新,并且从用户设备侧收集所述测试实例的执行信息;以及
分析单元,被配置为汇总分析从用户设备收集的所述测试实例的执行信息,以得出基于测试实例的软件使用分析结果。
12.根据权利要求11所述的系统,其中所述测试实例及其执行工具与所述软件或软件更新一同打包而提供给所述用户设备。
13.根据权利要求11所述的系统,其中所述测试实例库及其执行工具通过所述用户设备能够访问的软件开发方站点提供给所述用户设备。
14.根据权利要求11所述的系统,其中所述基于测试实例的软件使用分析结果包括所述软件或软件更新的功能使用、执行结果和/或功能出错统计。
15.根据权利要求11-14中的任意一项所述的系统,包括:
缺陷跟踪单元,被配置为根据所述测试实例的执行信息以及软件使用分析结果,确定所述软件或软件更新中所存在的缺陷或经常使用的功能。
16.根据权利要求15所述的系统,包括:
自动部署单元,被配置为将针对所述软件或软件更新中所存在的缺陷或经常使用的功能开发的新的软件更新选择性地自动部署到与该新的软件更新所涉及的功能密切相关的一部分用户设备。
17.一种软件开发辅助系统,包括:
测试实例及其执行工具,与软件或软件更新相关并在软件或与该软件相关的软件更新的发布时从软件开发方获得,其中相关的测试实例及其执行工具用于测试所述软件或软件更新;
测试实例管理单元,被配置为调用所述执行工具执行所述测试实例,并收集所述测试实例的执行信息,以反馈给软件开发方。
18.根据权利要求17所述的系统,还包括:
测试实例创建单元,用于针对所述软件或软件更新创建新的测试实例;
其中所述测试实例管理单元调用所述执行工具与从软件开发方所获得的测试实例一同执行所述新的测试实例,并将所述新的测试实例与其执行信息一同反馈给软件开发方。
19.根据权利要求11或17所述的系统,其中所述测试实例的执行信息包括表示所述测试实例的执行成功或失败的记录。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102444973A CN102346709A (zh) | 2010-07-30 | 2010-07-30 | 软件开发辅助方法及系统 |
US13/191,429 US9064055B2 (en) | 2010-07-30 | 2011-07-26 | Software development assistant method and system |
US14/745,406 US9720816B2 (en) | 2010-07-30 | 2015-06-20 | Software development assistant method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102444973A CN102346709A (zh) | 2010-07-30 | 2010-07-30 | 软件开发辅助方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102346709A true CN102346709A (zh) | 2012-02-08 |
Family
ID=45528015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102444973A Pending CN102346709A (zh) | 2010-07-30 | 2010-07-30 | 软件开发辅助方法及系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9064055B2 (zh) |
CN (1) | CN102346709A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104112084A (zh) * | 2013-04-16 | 2014-10-22 | 国际商业机器公司 | 用于基于执行的许可发现和优化的方法和系统 |
CN105159623A (zh) * | 2015-10-28 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种存储管理系统的数据处理方法及装置 |
WO2018020338A1 (en) * | 2016-07-28 | 2018-02-01 | International Business Machines Corporation | System, method, and apparatus for crowd-sourced gathering of application execution events for automatic application testing and replay |
CN112925542A (zh) * | 2021-02-24 | 2021-06-08 | 深圳市吉祥腾达科技有限公司 | 一种无线路由器支持静默升级的测试方法 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130179798A1 (en) * | 2012-01-06 | 2013-07-11 | Microsoft Corporation | Application dissemination and feedback |
US9311066B1 (en) * | 2012-06-25 | 2016-04-12 | Amazon Technologies, Inc. | Managing update deployment |
US9626176B2 (en) | 2013-09-13 | 2017-04-18 | Microsoft Technology Licensing, Llc | Update installer with technical impact analysis |
US9665359B2 (en) * | 2013-09-13 | 2017-05-30 | Microsoft Technology Licensing, Llc | Automatically resolving conflicts after installation of selected updates in a computer system |
US9830142B2 (en) | 2013-09-13 | 2017-11-28 | Microsoft Technology Licensing, Llc | Automatic installation of selected updates in multiple environments |
US10026064B2 (en) | 2013-09-13 | 2018-07-17 | Microsoft Technology Licensing, Llc | Automatically recommending updates based on stored lifecycle information |
US10114627B2 (en) * | 2014-09-17 | 2018-10-30 | Salesforce.Com, Inc. | Direct build assistance |
CN106294120B (zh) * | 2015-06-26 | 2020-06-05 | 伊姆西Ip控股有限责任公司 | 测试代码的方法、设备和计算机程序产品 |
US10007594B2 (en) | 2015-07-21 | 2018-06-26 | International Business Machines Corporation | Proactive cognitive analysis for inferring test case dependencies |
US9983985B2 (en) * | 2015-08-06 | 2018-05-29 | Sap Se | System and method for software upgrade analysis |
JP6755158B2 (ja) * | 2016-09-30 | 2020-09-16 | 株式会社日立製作所 | 計算機システム、計算機システムによるソフトウェアの更新方法、及び、そのためのプログラム |
US10169200B2 (en) * | 2016-10-28 | 2019-01-01 | International Business Machines Corporation | Code component debugging in an application program |
US10235158B2 (en) | 2017-03-21 | 2019-03-19 | Microsoft Technology Licensing, Llc | Optimizing feature deployment based on usage pattern |
US10452528B2 (en) | 2017-03-22 | 2019-10-22 | Hcl Technologies Limited | System and method for assisting a user in an application development lifecycle |
US10467132B1 (en) * | 2017-05-16 | 2019-11-05 | Intuit, Inc. | Variability system and analytics for continuous reliability in cloud-based workflows |
US10725890B1 (en) | 2017-07-12 | 2020-07-28 | Amazon Technologies, Inc. | Program testing service |
US11074158B2 (en) * | 2017-12-01 | 2021-07-27 | International Business Machines Corporation | Gray-box testing based on concrete usages |
CN111078249B (zh) * | 2019-11-08 | 2023-06-02 | 泰康保险集团股份有限公司 | 软件更新方法、系统、设备及存储介质 |
CN112817870A (zh) * | 2021-02-26 | 2021-05-18 | 北京小米移动软件有限公司 | 软件测试方法、装置及介质 |
US20220374342A1 (en) * | 2021-05-24 | 2022-11-24 | Infor (Us), Llc | Techniques for decoupled management of software test execution planning and corresponding software test execution runs |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126880A1 (en) * | 2006-11-27 | 2008-05-29 | Orla Hegarty | Automatic generation of test cases from error data |
US20090199160A1 (en) * | 2008-01-31 | 2009-08-06 | Yahoo! Inc. | Centralized system for analyzing software performance metrics |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0955596A3 (en) * | 1998-04-16 | 2002-12-04 | Citibank, N.A. | Customer access solutions architecture |
US6907546B1 (en) * | 2000-03-27 | 2005-06-14 | Accenture Llp | Language-driven interface for an automated testing framework |
US20020087668A1 (en) | 2000-12-29 | 2002-07-04 | San Martin Raul S. | Automatic upgrade of live network devices |
US7302681B2 (en) | 2003-02-27 | 2007-11-27 | Dell Products L.P. | Method and system for customized information handling system support updates |
US20050114838A1 (en) * | 2003-11-26 | 2005-05-26 | Stobie Keith B. | Dynamically tunable software test verification |
US7814473B2 (en) | 2004-10-27 | 2010-10-12 | Oracle International Corporation | Feature usage based target patching |
US7334005B2 (en) | 2005-04-13 | 2008-02-19 | Symantec Corporation | Controllable deployment of software updates |
US8407685B2 (en) | 2008-02-15 | 2013-03-26 | Red Hat, Inc. | Systems and methods for generating ordered download selections based on usage information |
US8930930B2 (en) | 2008-09-04 | 2015-01-06 | International Business Machines Corporation | Updating a computer system |
US10558948B2 (en) | 2008-09-15 | 2020-02-11 | Oath Inc. | Targeted instant messenger behaviors employed for optimization of a client |
US20100083246A1 (en) | 2008-09-29 | 2010-04-01 | Synopsys, Inc. | System and method for verifying delivered software |
-
2010
- 2010-07-30 CN CN2010102444973A patent/CN102346709A/zh active Pending
-
2011
- 2011-07-26 US US13/191,429 patent/US9064055B2/en not_active Expired - Fee Related
-
2015
- 2015-06-20 US US14/745,406 patent/US9720816B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126880A1 (en) * | 2006-11-27 | 2008-05-29 | Orla Hegarty | Automatic generation of test cases from error data |
US20090199160A1 (en) * | 2008-01-31 | 2009-08-06 | Yahoo! Inc. | Centralized system for analyzing software performance metrics |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104112084A (zh) * | 2013-04-16 | 2014-10-22 | 国际商业机器公司 | 用于基于执行的许可发现和优化的方法和系统 |
CN104112084B (zh) * | 2013-04-16 | 2017-04-19 | 国际商业机器公司 | 用于基于执行的许可发现和优化的方法和系统 |
CN105159623A (zh) * | 2015-10-28 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种存储管理系统的数据处理方法及装置 |
CN105159623B (zh) * | 2015-10-28 | 2018-09-18 | 浪潮(北京)电子信息产业有限公司 | 一种存储管理系统的数据处理方法及装置 |
WO2018020338A1 (en) * | 2016-07-28 | 2018-02-01 | International Business Machines Corporation | System, method, and apparatus for crowd-sourced gathering of application execution events for automatic application testing and replay |
US10417116B2 (en) | 2016-07-28 | 2019-09-17 | International Business Machines Corporation | System, method, and apparatus for crowd-sourced gathering of application execution events for automatic application testing and replay |
CN112925542A (zh) * | 2021-02-24 | 2021-06-08 | 深圳市吉祥腾达科技有限公司 | 一种无线路由器支持静默升级的测试方法 |
CN112925542B (zh) * | 2021-02-24 | 2024-04-30 | 东莞市锐易电子科技有限公司 | 一种无线路由器支持静默升级的测试方法 |
Also Published As
Publication number | Publication date |
---|---|
US9720816B2 (en) | 2017-08-01 |
US20120030658A1 (en) | 2012-02-02 |
US9064055B2 (en) | 2015-06-23 |
US20150286559A1 (en) | 2015-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102346709A (zh) | 软件开发辅助方法及系统 | |
CN105302716B (zh) | 合流开发模式下的测试方法、装置 | |
CN108959059B (zh) | 一种测试方法以及测试平台 | |
CN103309768B (zh) | 系统文件修复方法和装置 | |
CN103365770A (zh) | 移动终端软件测试系统及软件测试方法 | |
US20140372989A1 (en) | Identification of a failed code change | |
CN111026601A (zh) | Java应用系统的监控方法、装置、电子设备及存储介质 | |
CN108228190B (zh) | 持续集成和交付方法、系统、设备及计算机可读存储介质 | |
CN101442688A (zh) | 智能网平台的升级方法和系统、控制器和智能网平台设备 | |
CN105446868A (zh) | 系统兼容性测试方法、测试用例管理方法及相关装置 | |
CN106648762B (zh) | 一种搭建开发环境的方法及装置 | |
CN102968371A (zh) | 测试java api单元组件的方法及装置 | |
CN106681783A (zh) | 一种svn代码检测方法及其系统 | |
US10846212B2 (en) | Evidence gathering system and method | |
CN110119348B (zh) | 一种软件升级测试的方法及终端 | |
CN110990289B (zh) | 一种自动提交bug的方法、装置、电子设备及存储介质 | |
CN104036193B (zh) | 一种应用程序的本地跨域漏洞检测方法及装置 | |
CN108170588B (zh) | 一种测试环境搭建方法及装置 | |
US20090031302A1 (en) | Method for minimizing risks of change in a physical system configuration | |
CN110780904A (zh) | 一种应用更新方法及装置 | |
CN107992420B (zh) | 提测项目的管理方法及系统 | |
CN109491679A (zh) | 一种cpld在线升级方法及装置 | |
KR102165747B1 (ko) | 보안성을 고려한 경량 크래시 리포트 기반 디버깅 방법 | |
CN105117311A (zh) | 一种系统部署环境检查方法及系统 | |
CN113282496B (zh) | 接口自动测试方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120208 |