一种基于权限操作的软件测试系统和方法技术方案

技术编号:12394747 阅读:119 留言:0更新日期:2015-11-26 01:51
本发明专利技术涉及一种基于权限操作的软件测试系统,所述系统包括:终端,终端用于获取当前登录用户的用户信息;获取模块,用于获取第一配置文件;代码插入模块,用于根据所述第一配置文件,在被测软件的插桩点处插入对应的所述插桩代码,生成插桩后的被测软件;代码运行模块,用于运行所述插桩后的被测软件。本发明专利技术由于能够在被测软件的插桩点处插入对应的插桩代码,使得插桩后的被测软件在运行过程中,其中的插桩点被触发时能自动执行与插桩点对应的插桩代码,从而模拟出各种测试场景,不需要人工模拟场景或者手动修改数据或临时修改代码,因此既能模拟出各种异常场景又能降低测试时间成本,同时,通过终端授权,能够分配软件测试的内容。

【技术实现步骤摘要】

本专利技术涉及软件测试
,尤其是涉及。
技术介绍
软件在发布之前为确保软件的稳定性,需要对软件进行测试。在软件测试中,为保证软件质量,需要对各种软件可能面临的场景进行覆盖测试。传统技术中,通常会采用基于功能的黑盒测试方法和基于代码的白盒测试方法这两种方案来实现软件测试。但是,如果要覆盖各种异常场景,比如,对于机器内存不足的异常场景,需要开启大量的程序将系统的内存耗尽;对于磁盘空间不足的异常场景,则需要通过拷贝文件等方式将本地磁盘空间占满。因此基于功能的黑盒测试方法实现起来比较困难,且需要一定的测试时间成本。并且,对于一些程序内部的异常分支,如某个函数异常返回,基于功能的黑盒测试方法更加难以模拟。基于代码的白盒测试方法,虽然能够在程序运行时设置断点,通过手动修改程序运行时数据或者临时修改代码来模拟这类异常场景,但是这种方式的测试时间成本同样很高,特别是对于一些涉及到较多代码模块修改的特定场景的模拟,比如,所有new函数调用均要返回NULL的特定场景,这种测试方法的时间成本会更加高。同时,一款软件的测试有时会需要多人同时进行分工测试,现实中大多是口头分工,未进行系统化的整理,有时会出现重复测试或者漏测现象的发生,给正常工作带来不便。
技术实现思路
鉴于上述问题,提供能模拟出各种异常场景且能降低测试时间成本的。为了实现本专利技术的目的所采用的技术方案是一种基于权限操作的软件测试系统,所述系统包括:终端,终端用于获取当前登录用户的用户信息,根据当前登录用户的用户信息获取当前登录用户所对应的权限控制策略;获取模块,用于获取第一配置文件,所述第一配置文件中设有插粧点和对应的用于产生测试场景的插粧代码;代码插入模块,用于根据所述第一配置文件,在被测软件的插粧点处插入对应的所述插粧代码,生成插粧后的被测软件;代码运行模块,用于运行所述插粧后的被测软件,当所述插粧后的被测软件中的所述插粧点被触发时,执行与触发的所述插粧点对应的所述插粧代码。在一些实施方式中,上述终端接收当前登录用户对任意一个或多个应用软件进行操作的操作信息,将任意一个或多个应用软件的软件信息和/或对应的操作信息与对应的权限控制策略进行匹配,确定当前登录用户对任意一个或多个应用软件进行操作的操作结果O一种基于权限操作的软件测试方法,所述方法包括:A、终端获取当前登录用户的用户信息,根据当前登录用户的用户信息获取当前登录用户所对应的权限控制策略;B、获取第一配置文件,所述第一配置文件中设有插粧点和对应的用于产生测试场景的插粧代码;C、根据所述第一配置文件,在被测软件的插粧点处插入对应的所述插粧代码,生成插粧后的被测软件;D、运行所述插粧后的被测软件,当所述插粧后的被测软件中的所述插粧点被触发时,执行与触发的所述插粧点对应的所述插粧代码。本专利技术所提供的,由于能够在被测软件的插粧点处插入对应的插粧代码,使得插粧后的被测软件在运行过程中,其中的插粧点被触发时能自动执行与插粧点对应的插粧代码,从而模拟出各种测试场景,不需要人工模拟场景或者手动修改数据或临时修改代码,因此既能模拟出各种异常场景又能降低测试时间成本,同时,通过终端授权,能够分配软件测试的内容。【附图说明】图1为一种基于权限操作的软件测试系统的结构示意图;图2为一种基于权限操作的软件测试方法的流程示意图;【具体实施方式】下面结合附图和【具体实施方式】对本专利技术作进一步说明。如图1所示,一种基于权限操作的软件测试系统,所述系统包括:终端,终端用于获取当前登录用户的用户信息,根据当前登录用户的用户信息获取当前登录用户所对应的权限控制策略;终端接收当前登录用户对任意一个或多个应用软件进行操作的操作信息,将任意一个或多个应用软件的软件信息和/或对应的操作信息与对应的权限控制策略进行匹配,确定当前登录用户对任意一个或多个应用软件进行操作的操作结果获取模块,用于获取第一配置文件,所述第一配置文件中设有插粧点和对应的用于产生测试场景的插粧代码;代码插入模块,用于根据所述第一配置文件,在被测软件的插粧点处插入对应的所述插粧代码,生成插粧后的被测软件;代码运行模块,用于运行所述插粧后的被测软件,当所述插粧后的被测软件中的所述插粧点被触发时,执行与触发的所述插粧点对应的所述插粧代码。本实施例中,插粧点包括系统函数、自定义函数和指定操作中的至少一种。本实施例中,代码运行模块包括:插粧代码执行模块,用于通过插粧代码读取第二配置文件,该第二配置文件中设有插粧点和对应的行为程序。程序执行模块用于执行与触发的插粧点对应的行为程序,产生测试场景。本实施例中,代码插入模块为插粧编译器,用于在被测软件的编译阶段,根据第一配置文件在被测软件的插粧点处插入对应的插粧代码,生成插粧后的被测软件。本实施例中,代码插入模块为运行插粧器,用于在被测软件的运行阶段,根据第一配置文件在被测软件的插粧点处插入对应的插粧代码,生成插粧后的被测软件。如图2所示,还提供了一种基于权限操作的软件测试方法,该方法包括:步骤S100,终端用于获取当前登录用户的用户信息。在用户在服务器上被成功激活之后,服务器会在间隔固定时间发送当前的系统时间和更新后的权限控制策略至终端的权限管理客户端,然后终端在接收到当前的系统时间和更新后的权限控制策略之后,使用更新后的权限控制策略更新本地保存的权限控制策略,使用当前的系统时间更新终端的本地系统时间;其中,间隔固定时间可以由操作人员进行设置,例如可以设置为5分钟或10分钟;通过更新当前时间,使得服务器和终端的时间保持同步,通过更新权限控制策略,使得终端可以获取到最新的权限控制策略,使用最新的权限控制策略控制每一个已经注册用户的操作行为。步骤S200,获取第一配置文件。第一配置文件也可称为插粧规则文件,其中设有插粧点和对应的用于产生测试场景的插粧代码。所谓插粧点,是指要插入插粧代码的代码点,可设为在调用系统函数或自定义函数时或者执行某类操作(如创建对象new)时插入预设的插粧代码。依据AOP (Aspect Oriented Programming,面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术)技术的不同,对于不同语言,可以采用不同的形式来实现第一配置文件。比如,对于Java语言,可使用AspectJ (基于Java平台的AOP工具)源代码文件或者编译后的jar包(Java Archive, Java归档文件),或者执行时的xml (可扩展标记语言)规则文件来实现第一配置文件。对于c/c++语言,则可使用AspectC (基于C/C++语言的AOP工具)来描述第一配置文件。采用哪种文件实现第一配置文件,由对被测软件插入插粧代码的时机(在被测软件编译阶段插入还是在被测软件运行阶段插入),以及被测软件的开发语言和平台决定。第一配置文件实际上设置了可以对哪些函数或操作进行插粧以及对应的插粧代码,也就是插粧点和对应的插粧代码。插粧点包括系统函数、自定义函数和指定操作的至少一种。例如,第一配置文件中可设置有系统函数名和/或自定义函数名。以AspectJ源代码文件为例,其中记录的函数名有:[003当前第1页1 2 本文档来自技高网...

【技术保护点】
一种基于权限操作的软件测试系统,所述系统包括:终端,终端用于获取当前登录用户的用户信息,根据当前登录用户的用户信息获取当前登录用户所对应的权限控制策略;获取模块,用于获取第一配置文件,所述第一配置文件中设有插桩点和对应的用于产生测试场景的插桩代码;代码插入模块,用于根据所述第一配置文件,在被测软件的插桩点处插入对应的所述插桩代码,生成插桩后的被测软件;代码运行模块,用于运行所述插桩后的被测软件,当所述插桩后的被测软件中的所述插桩点被触发时,执行与触发的所述插桩点对应的所述插桩代码。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡智
申请(专利权)人:武汉启明联创信息科技有限公司
类型:发明
国别省市:湖北;42

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1