软件测试方法及系统与流程

文档序号:12824634阅读:843来源:国知局
软件测试方法及系统与流程

本发明涉及软件测试领域,具体地,涉及一种软件测试方法及系统。



背景技术:

许多web应用系统会通过加载activex的方式来实现用户体验或者调用windows程序、驱动硬件等目的。对于这类系统的软件测试,一直以来都是通过模拟用户的真实情况来运行的。但是这样的方式存在若干缺点:(1)对于存在硬件交互的系统需要人手一套硬件设备,成本开支很大;(2)activex插件频繁加载程序对测试效率的影响很大;(3)异常场景的模拟比较复杂,很难做到所有场景的全覆盖。



技术实现要素:

本发明的目的是提供一种软件测试方法及系统,以解决现有技术中的问题。

为了实现上述目的,本发明提供一种软件测试方法,其中,该方法包括:通过web应用程序调用操作系统注册表中的activex控件改写后的键值对的值,并基于所述改写后的键值对的值与所述mock程序进行通信;所述mock程序获取用户对所述web应用程序的输入值,根据预先存储的输入值与输出值映射关系确定与输入值对应的输出值,并向用户呈现所确定的输出值;以及所述mock程序输出所述用户选择的输出值至web应用程序。

本发明还提供了一种软件测试系统,该系统包括web应用程序单元和mock程序单元,其中:所述web应用程序单元用于调用操作系统注册表中的activex控件改写后的键值对的值,并基于所述改写后的键值对的值与所 述mock程序单元进行通信;所述mock程序单元用于获取用户对所述web应用程序单元的输入值,根据预先存储的输入值与输出值映射关系确定与输入值对应的输出值,并向用户呈现所确定的输出值;以及所述mock程序单元还用于输出所述用户选择的输出值至web应用程序单元。

通过上述技术方案,在用户(例如,测试人员)想要对web应用程序进行测试时,web应用程序会调用操作系统注册表中的activex控件改写后的键值对的值,并基于所述改写后的键值对的值与所述mock程序进行通信,然后所述mock程序可以获取用户对所述web应用程序的输入值,根据预先存储的输入值与输出值映射关系可以确定与输入值对应的输出值,并向用户呈现所确定的输出值(用户可以选择期望的输出值),以及所述mock程序输出所述用户选择的输出值至web应用程序。由此,无需使用真实硬件设备就可以模拟各种用户的真实场景进行对应用软件的测试,且可以绕过原有的activex控件,提高了应用软件测试效率。并且,由于测试过程无真实硬件设备参与,所以避免了真实硬件设备出现问题影响软件测试结果的情况,提高了软件测试的准确性。

本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1是根据本发明一种实施方式的软件测试方法的流程图;以及

图2是根据本发明一种实施方式的软件测试系统的方框图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

图1是根据本发明一种实施方式的软件测试方法的流程图

如图1所示,本发明一种实施方式提供的软件测试方法包括:

s100,通过web应用程序调用操作系统注册表中的activex控件改写后的键值对的值,并基于所述改写后的键值对的值与所述mock程序进行通信;

s102,所述mock程序获取用户对所述web应用程序的输入值,根据预先存储的输入值与输出值映射关系确定与输入值对应的输出值,并向用户呈现所确定的输出值;以及

s104,所述mock程序输出所述用户选择的输出值至web应用程序。

在用户(例如,测试人员)想要对web应用程序进行测试时,web应用程序会调用操作系统注册表中的activex控件改写后的键值对的值,并基于所述改写后的键值对的值与所述mock程序进行通信,然后所述mock程序可以获取用户对所述web应用程序的输入值,根据预先存储的输入值与输出值映射关系可以确定与输入值对应的输出值,并向用户呈现所确定的输出值(用户可以选择期望的输出值),以及所述mock程序输出所述用户选择的输出值至web应用程序。由此,无需使用真实硬件设备就可以模拟各种用户的真实场景进行对应用软件的测试,且可以绕过原有的activex控件(即,完全脱离原有activex控制的限制进行软件进行测试),避免了控件的频繁加载,从而提高了应用软件测试效率且降低了成本。并且,由于测试过程无真实硬件设备参与,所以避免了硬件设备出现问题影响软件测试结果的情况,提高了软件测试的准确性。

也就是,在现有情况下,web应用程序对windows应用程序、硬件设 备的调用是通过activex控件来完成的,具体而言,activex控件在windows系统中的注册表中存有唯一的一个键值对,web应用程序根据这个键值对的值找到硬件设备的接口函数包,进而进行消息通讯。而在本发明中,由于注册表中真实activex控件的键值对的值已被改写,这样,当web应用程序再次访问activex时,便通过注册表找到了mock程序,进而与mock程序通信,由此mock程序可以轻松地截获来自web应用程序的消息,从而实现对原activex控件的接管。

并且,由于所述mock程序输出的输出值是可控的(即,用户选择的期望输出值),且响应迅速,因此可以快速全面地进行web应用程序的自动化测试。

其中,所述改写后的键值对的值对应于mock程序。由此,web应用程序通过调用该改写后的键值对的值就可以实现与mock程序的通信。

此外,可以以对话框/窗口的形式为用户呈现所确定的输出值,进而用户可以在对话框/窗口中选择期望的输出值。所选择的输出值返回至web应用程序,该web应用程序就可以按照该输出值执行相应操作。其中,web应用程序按照输出值执行相应操作的过程与现有技术并无不同,本发明在此不再赘述。

对于预先存储的输入值与输出值映射关系,本领域技术人员可以根据实际情况进行设定,本发明不对此进行限定。

根据本发明一种实施方式,可以通过下述步骤得到所述改写后的键值对的值:

向所述操作系统注册表注册所述mock程序,注册后的mock程序改写与activex控件对应的键值对的值,得到所述改写后的键值对的值。

由此,通过修改操作系统注册表中与activex控件对应的键值对的值的方式,可以实现mock程序对硬件设备接口函数包的接管。

根据本发明一种实施方式,所确定的输出值的数量为一个或多个。也就是,输入值与输出值映射关系中输入值与输出值可以为一一对应,也可以为一多对应。当所确定的输出值的数量为一个时,用户直接选择这一个输出值,然后mock程序将该输出值输出至web应用程序。类似地,当所确定的输出值的数量为多个时,用户从多个输出值中任意选择一个或选择期望的输出值,然后mock程序将该用户选择的输出值输出至web应用程序。

图2是根据本发明一种实施方式的软件测试系统的方框图。

如图2所示,本发明一种实施方式提供的软件测试系统包括web应用程序单元20和mock程序单元22,其中:所述web应用程序单元20用于调用操作系统注册表中的activex控件改写后的键值对的值,并基于所述改写后的键值对的值与所述mock程序单元22进行通信;所述mock程序单元22用于获取用户对所述web应用程序单元20的输入值,根据预先存储的输入值与输出值映射关系确定与输入值对应的输出值,并向用户呈现所确定的输出值;以及所述mock程序单元22还用于输出所述用户选择的输出值至web应用程序单元20。

由此,无需使用真实硬件设备就可以模拟各种用户的真实场景进行对应用软件的测试,且可以绕过原有的activex控件(即,完全脱离原有activex控制的限制进行软件进行测试),避免了控件的频繁加载,从而提高了应用软件测试效率且降低了成本。并且,由于测试过程无真实硬件设备参与,所以避免了硬件设备出现问题影响软件测试结果的情况,提高了软件测试的准确性。

根据本发明一种实施方式,该系统还包括注册单元,用于向所述操作系统注册表注册所述mock程序单元22,其中注册后的mock程序单元22改写与activex控件对应的键值对的值,得到所述改写后的键值对的值。

由此,通过修改操作系统注册表中与activex控件对应的键值对的值的 方式,可以实现mock程序单元对硬件设备接口函数包的接管。

根据本发明一种实施方式,所确定的输出值的数量为一个或多个。也就是,输入值与输出值映射关系中输入值与输出值可以为一一对应,也可以为一多对应。当所确定的输出值的数量为一个时,用户直接选择这一个输出值,然后mock程序单元22将该输出值输出至web应用程序单元20。类似地,当所确定的输出值的数量为多个时,用户从多个输出值中任意选择一个或选择期望的输出值,然后mock程序单元22将该用户选择的输出值输出至web应用程序单元20。

以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1