软件测试方法、装置、设备及存储介质
技术领域
本发明涉及软件测试
技术领域
,尤其涉及一种软件测试方法、装置、设备及存储介质。背景技术
目前常用的测试工具分为10类:测试管理工具、接口测试工具、性能测试工具、C/S自动化工具、白盒测试工具、代码扫描工具、持续集成工具、网络测试工具、app自动化工具、web安全测试工具。
但各个行业单打独斗,自立门户,每个行业、每个企业都不得不投入大量的软件开发人员实现特定功能的测试。软件缺乏平台化,不同类别的产品需要开发不同的软件,造成软件种类繁多,版本繁多,增加了软件管理的难度和使用的不确定度。软件缺乏扩展性,每个软件都是为特定用户需求实现,软件的功能相对单一,增加新的功能需要对软件进行重新技术升级,开发周期长。软件基本都是闭源的系统,缺乏软件生态,随着软件网络化、服务化、智能化的发展,软件系统复杂性不断增长,缺乏健康的生态化发展的软件,其生命周期大大缩短。软件开发仍属于研发人员的专有职能,测试人员无法主动深度地将测试专业技能应用到系统设计上,只能先根据测试任务给软件开发人员提出需求,在软件开发人员提供的软件基础上按预期应用,操作局限性较大。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种软件测试方法、装置、设备及存储介质,旨在解决现有技术中没有统一的软件测试平台且测试工具缺乏扩展性的技术问题。
为实现上述目的,本发明提供了一种软件测试方法,所述方法包括以下步骤:
获取测试元件逻辑关系以及从预设测试用例中选取目标测试用例;
根据所述测试元件逻辑关系以及目标测试用例生成测试用例集合;
从预设测试用例集合中选取目标测试用例集合;
根据所述测试用例集合与目标测试用例集合中的测试用例对目标软件进行测试。
可选地,所述根据所述测试元件逻辑关系以及目标测试用例生成测试用例集合的步骤,包括:
根据所述测试元件逻辑关系确定各测试元件以及各测试元件的元件逻辑顺序;
确定各测试元件对应的测试动作;
根据所述元件逻辑顺序确定所述测试动作的测试逻辑顺序;
根据所述测试动作以及所述测试逻辑顺序生成测试用例;
根据所述测试用例以及目标测试用例生成测试用例集合。
可选地,所述根据所述测试用例集合与目标测试用例集合中的测试用例对目标软件进行测试的步骤,包括:
调用所述测试用例集合以及目标测试用例集合;
根据所述目标软件确定对应的测试方式;
根据所述测试用例集合和所述目标测试用例集合中的测试用例以及所述测试方式对目标软件进行测试。
可选地,所述获取测试元件逻辑关系以及从预设测试用例中选取目标测试用例的步骤之前,还包括:
获取目标软件的测试需求;
根据所述测试需求创建测试元件逻辑关系;
获取预设测试元件以及各软件行业测试需求;
根据各软件行业测试需求以及所述预设测试元件确定预设元件逻辑顺序;
根据所述预设元件逻辑顺序以及所述预设测试元件生成行业预设测试用例;
获取所述目标软件对应的软件行业类型;
根据所述软件行业类型从所述行业预设测试用例中选取预设测试用例。
可选地,所述获取预设测试元件的步骤之前,还包括:
获取预设元件属性、预设元件动作以及预设元件类;
根据各软件行业测试需求以及所述预设元件属性、所述预设元件动作以及所述预设元件类生成预设测试元件。
可选地,所述从预设测试用例集合中选取目标测试用例集合的步骤之前,还包括:
根据各软件行业测试需求选取所述行业预设测试用例,生成行业预设测试用例集合;
根据所述软件行业类型从所述行业预设测试用例集合中选取预设测试用例集合。
可选地,所述根据所述测试用例集合与目标测试用例集合中的测试用例对目标软件进行测试的步骤之后,还包括:
获取测试结果;
获取所述目标软件对应软件行业类型的测试报告模板;
根据所述测试结果以及所述测试报告模板生成测试报告。
此外,为实现上述目的,本发明还提出一种软件测试装置,所述软件测试装置包括:
元件获取模块,用于获取测试元件逻辑关系以及从预设测试用例中选取目标测试用例;
集合生成模块,用于根据所述测试元件逻辑关系以及目标测试用例生成测试用例集合;
集合选取模块,用于从预设测试用例集合中选取目标测试用例集合;
软件测试模块,用于根据所述测试用例集合与目标测试用例集合中的测试用例对目标软件进行测试。
此外,为实现上述目的,本发明还提出一种软件测试设备,所述软件测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件测试程序,所述软件测试程序配置为实现如上文所述的软件测试方法。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有软件测试程序,所述软件测试程序被处理器执行时实现如上文所述的软件测试方法。
本发明通过获取测试元件逻辑关系以及从预设测试用例中选取目标测试用例;根据所述测试元件逻辑关系以及目标测试用例生成测试用例集合;从预设测试用例集合中选取目标测试用例集合;根据所述测试用例集合与目标测试用例集合中的测试用例对目标软件进行测试。通过上述方式,用户可以根据可视化的元件设计测试元件逻辑关系,软件测试平台根据测试元件逻辑关系生成用户设计的测试用例,用户也可以选取预设测试用例,根据用户设计及选取的测试用例生成测试用例集合,并使用该测试用例集合对目标软件进行测试,使用者为各行业的测试人员,使用者无需掌握高深的计算机应用技巧,只需通过可视化的元件形状拖放即可实现测试用例、测试方案、测试任务等的设计和制作;使用者无需高深的编程技巧和方法,只需利用其自身具备的专业测试能力,将测试逻辑转化为以形状展示的测试元件;使用者不必受到自身能力的局限,可以通过众多其他专业人员提供的测试元件库、测试用例库、测试方案库等资源简单而快速地掌握更多的测试方法。因此,本发明大大减轻了测试人员个体的工作量和工作难度,使他们有更多的精力集中到测试用例和测试方案的设计。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的软件测试设备的结构示意图;
图2为本发明软件测试方法第一实施例的流程示意图;
图3为本发明软件测试方法一实施例的测试元件逻辑关系图;
图4为本发明软件测试方法第二实施例的流程示意图;
图5为本发明软件测试方法第三实施例的流程示意图;
图6为本发明软件测试方法一实施例的测试系统软件平台框架图;
图7为本发明软件测试方法一实施例的行业测试系统扩展图;
图8为本发明软件测试装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的软件测试设备结构示意图。
如图1所示,该软件测试设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对软件测试设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及软件测试程序。
在图1所示的软件测试设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明软件测试设备中的处理器1001、存储器1005可以设置在软件测试设备中,所述软件测试设备通过处理器1001调用存储器1005中存储的软件测试程序,并执行本发明实施例提供的软件测试方法。
本发明实施例提供了一种软件测试方法,参照图2,图2为本发明一种软件测试方法第一实施例的流程示意图。
本实施例中,所述软件测试方法包括以下步骤:
步骤S10:获取测试元件逻辑关系以及从预设测试用例中选取目标测试用例。
需要说明的是,本实施例的执行主体可为终端设备,例如电脑等。本实施例软件测试平台的用户为各行业的测试人员,用户无需掌握高深的计算机应用技巧,只需通过可视化的元件形状拖放即可实现测试用例、测试方案、测试任务等的设计和制作;用户无需高深的编程技巧和方法,只需利用其自身具备的专业测试能力,将测试逻辑转化为以形状展示的测试元件;用户不必受到自身能力的局限,可以通过众多其他专业人员提供的测试元件库、测试用例库、测试方案库等资源简单而快速地掌握更多的测试方法。
可以理解的是,用户可以自己创建测试元件,也可以根据软件测试平台提供的测试元件创建测试元件逻辑,测试元件逻辑为各测试元件之间的逻辑顺序,如图3所示,测试元件为可视化的元件形状,测试元件之间存在逻辑关系。
应理解的是,用户在需要进行软件测试时,软件测试平台根据用户输入的需要测试的软件的软件行业类型,推送此软件行业类型对应的预设测试元件、预设测试用例等,用户可从预设测试用例中选取目标测试用例。
需要说明的是,软件行业类型是指待测试的软件所述的行业,例如金融行业、设计行业等。
步骤S20:根据所述测试元件逻辑关系以及目标测试用例生成测试用例集合。
需要说明的是,软件测试平台会根据用户创建的元件逻辑关系生成测试用例,测试用例与用户选取的测试用例共同生成测试用例集,测试用例集共同组成一测试方案。
进一步地,为了生成用户所需的测试用例,步骤S20包括:根据所述测试元件逻辑关系确定各测试元件以及各测试元件的元件逻辑顺序;确定各测试元件对应的测试动作;根据所述元件逻辑顺序确定所述测试动作的测试逻辑顺序;根据所述测试动作以及所述测试逻辑顺序生成测试用例;根据所述测试用例以及目标测试用例生成测试用例集合。
能够理解的是,测试动作可为测试输入、执行条件等,每一个测试元件对应一个测试动作,测试元件之间为用户创建的元件逻辑顺序,根据元件逻辑顺序确定每个测试动作之间执行逻辑以及执行顺序。
需要说明的是,根据各测试动作之间的执行逻辑以及执行顺序生成测试用例。并根据用户从预设测试用例中选取的目标测试用例生成测试用例集,测试用例集为一个完整的测试方案,测试方案中包括对目标软件中需要测试的功能、模块的测试用例。
步骤S30:从预设测试用例集合中选取目标测试用例集合。
应理解的是,软件测试平台根据用户输入的软件行业类型推送该软件行业类型对应的预设测试用例集合,用户可根据需求从预设测试用例集合中选取目标测试用例集合。预设测试用例集合可为其它专业用户自行创建的测试用例集合,所有用户创建的测试用例集合、测试用例、测试元件等都会被存储并分类,然后推送至需要的用户。
步骤S40:根据所述测试用例集合与目标测试用例集合中的测试用例对目标软件进行测试。
需要说明的是,在用户最终确定测试用例集合以及目标测试集合后,软件测试平台调用测试用例集合以及目标测试集合中的测试用例,从而对目标软件进行测试,目标软件可上传至软件测试平台上,或者软件测试平台根据目标软件在用户设备上的存储路径查找目标软件,并对目标软件进行测试。
进一步地,步骤S40包括:调用所述测试用例集合以及目标测试用例集合;根据所述目标软件确定对应的测试方式;根据所述测试用例集合和所述目标测试用例集合中的测试用例以及所述测试方式对目标软件进行测试。
能够理解的是,测试方式可为实物测试还是虚拟测试,可根据目标软件的提供情况选择测试方式,当目标软件的某一功能处于规划中,目标软件暂未实现此功能,对此功能进行测试时,可使用虚拟测试;当待测试的功能或模块已在软件中实现,则对此功能以及模块进行测试时则可以选择实物测试。
在具体实现中,调用测试用例集合以及目标测试用例集合中的测试用例,并使用对应的测试方式对目标软件进行测试,从而获得测试结果。
进一步地,为了提升用户体验,更好的展示测试结果,步骤S40之后,还包括:获取测试结果;获取所述目标软件对应软件行业类型的测试报告模板;根据所述测试结果以及所述测试报告模板生成测试报告。
需要说明的是,不同软件行业类型有不同的测试重点内容,因此不同软件行业类型的测试结果有不同的预设测试报告模板,并根据该预设测试报告模板从测试结果中选取重点测试结果并展示在测试报告中,输出每项测试的分项和总的测试结论,用户可导出pdf、html等格式的测试报告。
本实施例通过通过获取测试元件逻辑关系以及从预设测试用例中选取目标测试用例;根据所述测试元件逻辑关系以及目标测试用例生成测试用例集合;从预设测试用例集合中选取目标测试用例集合;根据所述测试用例集合与目标测试用例集合中的测试用例对目标软件进行测试。通过上述方式,用户可以根据可视化的元件设计测试元件逻辑关系,软件测试平台根据测试元件逻辑关系生成用户设计的测试用例,用户也可以选取预设测试用例,根据用户设计及选取的测试用例生成测试用例集合,并使用该测试用例集合对目标软件进行测试,使用者为各行业的测试人员,使用者无需掌握高深的计算机应用技巧,只需通过可视化的元件形状拖放即可实现测试用例、测试方案、测试任务等的设计和制作;使用者无需高深的编程技巧和方法,只需利用其自身具备的专业测试能力,将测试逻辑转化为以形状展示的测试元件;使用者不必受到自身能力的局限,可以通过众多其他专业人员提供的测试元件库、测试用例库、测试方案库等资源简单而快速地掌握更多的测试方法。因此,本发明大大减轻了测试人员个体的工作量和工作难度,使他们有更多的精力集中到测试用例和测试方案的设计。
参考图4,图4为本发明一种软件测试方法第二实施例的流程示意图。
基于上述第一实施例,本实施例软件测试方法在所述步骤S10之前,还包括:
步骤S01:获取目标软件的测试需求。
需要说明的是,软件测试平台可根据用户上传的目标软件检测该目标软件的功能以及模块,从而获取目标软件的测试需求。用户也可以在软件测试平台上选取该目标软件的测试需求。
步骤S02:根据所述测试需求创建测试元件逻辑关系。
在具体实现中,测试需求为目标软件中的待测试的模块以及功能,软件测试平台会根据待测试的模块以及功能选取测试元件,并建立这些测试元件的逻辑关系,从而为用户建立测试软件必需的测试元件逻辑关系,并根据元件逻辑关系创建测试用例。
步骤S03:获取预设测试元件以及各软件行业测试需求。
能够理解的是,预设测试元件可为用户自行创建的,也可为软件测试平台生成的。软件测试平台根据各软件行业中的待测试软件的测试需求(即软件行业测试需求)选取预设测试元件。
进一步地,所述步骤S03之前,还包括:获取预设元件属性、预设元件动作以及预设元件类;根据各软件行业测试需求以及所述预设元件属性、所述预设元件动作以及所述预设元件类生成预设测试元件。
需要说明的是,预设元件属性、预设元件动作以及预设元件类为组成一个预设测试元件的必需元素,元件设计采用面向对象设计,以名称作为对象唯一识别标识,包括预设元件属性、预设元件动作以及预设元件类。
步骤S04:根据各软件行业测试需求以及所述预设测试元件确定预设元件逻辑顺序。
需要说明的是,因为每种行业的软件需要测试的模块以及功能可能均不相同,因此,每种软件行业测试需求可能均不相同。需要根据各软件行业测试需求制定测试不同功能预设测试逻辑,以及预设元件逻辑顺序。例如:软件行业类型为视频播放时,软件行业测试需求中包括该软件播放视频时需对视频的字幕功能进行测试,测试逻辑包括预先设置、开始播放、内置字幕测试、外置字幕测试等,预先设置中包括视频导入、字幕导入、屏幕亮度调节、视频进行调节等基本功能和功能测试顺序,每种功能测试对应有预设测试元件。
步骤S05:根据所述预设元件逻辑顺序以及所述预设测试元件生成行业预设测试用例。
能够理解的是,在根据各软件行业测试需求生成测试用例时,该测试用例会存在该软件行业类型的标签,例如当前生成视频播放的测试用例时,该测试用例存在视频播放行业标签。
在具体实现中,根据预设测试元件确定预设测试动作,根据预设元件逻辑顺序确定预设测试动作的执行顺序,从而生成各软件行业的行业预设测试用例。
步骤S06:获取所述目标软件对应的软件行业类型。
能够理解的是,在对目标软件进行测试前,需要获知该软件的软件行业类型,例如视频播放行业,图片设计行业等。
步骤S07:根据所述软件行业类型从所述行业预设测试用例中选取预设测试用例。
在具体实现中,根据目标软件的软件行业类型,从行业预设测试用例库选取标签为该软件行业类型的测试用例,并推送至用户界面,用户可以根据需求从预设测试用例中选取目标测试用例。
本实施例通过获取目标软件的测试需求;根据所述测试需求创建测试元件逻辑关系;获取预设测试元件以及各软件行业测试需求;根据各软件行业测试需求以及所述预设测试元件确定预设元件逻辑顺序;根据所述预设元件逻辑顺序以及所述预设测试元件生成行业预设测试用例;获取所述目标软件对应的软件行业类型;根据所述软件行业类型从所述行业预设测试用例中选取预设测试用例。通过上述方式,软件测试平台根据各软件行业的测试需求生成测试用例库、测试用例集合库等供用户进行选择,从而提升了用户的测试效率,提升了用户的用户体验。
参考图5,图5为本发明一种软件测试方法第三实施例的流程示意图。
基于上述第一实施例,本实施例软件测试方法在所述步骤S30之前,还包括:
步骤S21:根据各软件行业测试需求选取所述行业预设测试用例,生成行业预设测试用例集合。
需要说明的是,行业预设测试用例集合包括该软件行业类型中的软件的各测试用例,测试用例集合为测试软件某一功能模块的测试方案,根据各软件行业测试需求生成各类的测试方案供用户进行选择。
步骤S22:根据所述软件行业类型从所述行业预设测试用例集合中选取预设测试用例集合。
在具体实现中,根据用户需要测试的目标软件的软件行业类型,从行业预设测试用例集合中选取属于该软件行业类型的预设测试用例集合,并将该预设测试用例集合展示在用户界面上供用户选择。
在具体实现中,如图6所示,测试元件库中选取测试元件生成测试用例,测试用例生成测试方案,测试方案生成测试系统,如图7所示,测试元件、测试用例等均可由用户根据行业需求进行创建形成测试库,以供其他用户进行选择。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有软件测试程序,所述软件测试程序被处理器执行时实现如上文所述的软件测试方法的步骤。
参照图8,图8为本发明软件测试装置第一实施例的结构框图。
如图8所示,本发明实施例提出的软件测试装置包括:
元件获取模块10,用于获取测试元件逻辑关系以及从预设测试用例中选取目标测试用例。
集合生成模块20,用于根据所述测试元件逻辑关系以及目标测试用例生成测试用例集合。
集合选取模块30,用于从预设测试用例集合中选取目标测试用例集合。
软件测试模块40,用于根据所述测试用例集合与目标测试用例集合中的测试用例对目标软件进行测试。
在一实施例中,所述集合生成模块20,还用于根据所述测试元件逻辑关系确定各测试元件以及各测试元件的元件逻辑顺序;确定各测试元件对应的测试动作;根据所述元件逻辑顺序确定所述测试动作的测试逻辑顺序;根据所述测试动作以及所述测试逻辑顺序生成测试用例;根据所述测试用例以及目标测试用例生成测试用例集合。
在一实施例中,所述软件测试模块40,还用于调用所述测试用例集合以及目标测试用例集合;根据所述目标软件确定对应的测试方式;根据所述测试用例集合和所述目标测试用例集合中的测试用例以及所述测试方式对目标软件进行测试。
在一实施例中,所述元件获取模块10,还用于获取目标软件的测试需求;根据所述测试需求创建测试元件逻辑关系;获取预设测试元件以及各软件行业测试需求;根据各软件行业测试需求以及所述预设测试元件确定预设元件逻辑顺序;根据所述预设元件逻辑顺序以及所述预设测试元件生成行业预设测试用例;获取所述目标软件对应的软件行业类型;根据所述软件行业类型从所述行业预设测试用例中选取预设测试用例。
在一实施例中,所述元件获取模块10,还用于获取预设元件属性、预设元件动作以及预设元件类;根据各软件行业测试需求以及所述预设元件属性、所述预设元件动作以及所述预设元件类生成预设测试元件。
在一实施例中,所述集合选取模块30,还用于根据各软件行业测试需求选取所述行业预设测试用例,生成行业预设测试用例集合;根据所述软件行业类型从所述行业预设测试用例集合中选取预设测试用例集合。
在一实施例中,所述软件测试模块40,还用于获取测试结果;获取所述目标软件对应软件行业类型的测试报告模板;根据所述测试结果以及所述测试报告模板生成测试报告。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
本实施例通过获取测试元件逻辑关系以及从预设测试用例中选取目标测试用例;根据所述测试元件逻辑关系以及目标测试用例生成测试用例集合;从预设测试用例集合中选取目标测试用例集合;根据所述测试用例集合与目标测试用例集合中的测试用例对目标软件进行测试。通过上述方式,用户可以根据可视化的元件设计测试元件逻辑关系,软件测试平台根据测试元件逻辑关系生成用户设计的测试用例,用户也可以选取预设测试用例,根据用户设计及选取的测试用例生成测试用例集合,并使用该测试用例集合对目标软件进行测试,使用者为各行业的测试人员,使用者无需掌握高深的计算机应用技巧,只需通过可视化的元件形状拖放即可实现测试用例、测试方案、测试任务等的设计和制作;使用者无需高深的编程技巧和方法,只需利用其自身具备的专业测试能力,将测试逻辑转化为以形状展示的测试元件;使用者不必受到自身能力的局限,可以通过众多其他专业人员提供的测试元件库、测试用例库、测试方案库等资源简单而快速地掌握更多的测试方法。因此,本发明大大减轻了测试人员个体的工作量和工作难度,使他们有更多的精力集中到测试用例和测试方案的设计。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的软件测试方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。