【发明内容】
基于此,有必要提供一种能提高测试效率的测试用例筛选方法。
一种测试用例筛选方法,包括以下步骤:
获取功能节点被触发的次数;
根据功能节点被触发的次数计算功能节点的权重;
根据功能节点的权重筛选与功能节点相关的测试用例。
在其中一个实施例中,所述根据功能节点被触发的次数计算功能节点的权重的步骤为:
计算功能节点的权重为所述功能节点被触发的次数与功能节点被触发的总次数的比值。
在其中一个实施例中,所述方法还包括:
获取与所述功能节点关联的用户界面组件被访问的次数;
所述根据功能节点被触发的次数计算功能节点的权重的步骤为:根据所述功能节点被触发的次数以及与所述功能节点关联的用户界面组件被访问的次数计算所述功能节点的权重。
在其中一个实施例中,所述根据所述功能节点被触发的次数以及与所述功能节点关联的用户界面组件被访问的次数计算所述功能节点的权重的步骤为:
计算所述功能节点被触发的次数与功能节点被触发的总次数的第一比值,计算与所述功能节点关联的用户界面组件被访问的次数与用户界面组件被访问的总次数的第二比值,并计算所述功能节点的权重为第一比值与第二比值的平均值。
在其中一个实施例中,所述根据功能节点的权重筛选与功能节点相关的测试用例的步骤为:
获取按照所述权重排序靠前的预设数量个功能节点,选取与所述获取的功能节点相关的测试用例。
在其中一个实施例中,所述根据功能节点的权重筛选与功能节点相关的测试用例的步骤为:
计算功能节点的平均权重,获取权重大于平均权重的功能节点,选取与所述获取的功能节点相关的测试用例。
基于此,还有必要提供一种能提高测试效率的测试用例筛选系统。
一种测试用例筛选系统,包括:
触发次数获取模块,用于获取功能节点被触发的次数;
权重计算模块,用于根据功能节点被触发的次数计算功能节点的权重;
用例筛选模块,用于根据功能节点的权重筛选与功能节点相关的测试用例。
在其中一个实施例中,所述权重计算模块用于计算功能节点的权重为所述功能节点被触发的次数与功能节点被触发的总次数的比值。
在其中一个实施例中,所述触发次数获取模块还用于获取与所述功能节点关联的用户界面组件被访问的次数;
所述权重计算模块用于根据所述功能节点被触发的次数以及与所述功能节点关联的用户界面组件被访问的次数计算所述功能节点的权重。
在其中一个实施例中,所述权重计算模块用于计算所述功能节点被触发的次数与功能节点被触发的总次数的第一比值,计算与所述功能节点关联的用户界面组件被访问的次数与用户界面组件被访问的总次数的第二比值,并计算所述功能节点的权重为第一比值与第二比值的平均值。
在其中一个实施例中,所述用例筛选模块用于获取按照所述权重排序靠前的预设数量个功能节点,选取与所述获取的功能节点相关的测试用例。
在其中一个实施例中,所述用例筛选模块用于计算功能节点的平均权重,获取权重大于平均权重的功能节点,选取与所述获取的功能节点相关的测试用例。
上述测试用例筛选方法和系统,可在软件系统运行一段时间后,获取功能节点被触发的次数,根据功能节点被触发的次数计算功能节点的权重,并根据功能节点的权重筛选与功能节点相关的测试用例。上述方式可筛选出在实际运行中被触发次数多的功能节点相关的测试用例,功能节点被触发次数多,说明功能节点被使用的频率高,被使用频率高的功能节点的重要性也高,因此上述方式可筛选出实际运行中重要性高的功能节点相关的测试用例,筛选出的测试用例针对性强,根据筛选出的测试用例进行测试可提高软件系统的测试效率。
【具体实施方式】
如图1所示,在一个实施例中,一种测试用例筛选方法,包括以下步骤:
步骤S101,获取功能节点被触发的次数。
在一个实施例中,可预先在功能节点相关的程序代码中添加统计代码,当功能节点被触发时,功能节点相关的程序代码中的统计代码也被执行,统计代码可将功能节点被触发的日志写入指定的文件或数据库中。进一步的,当系统稳定运行预设时间后,可在该指定的文件或数据库中获取功能节点被触发的次数。
步骤S102,根据功能节点被触发的次数计算功能节点的权重。
在一个实施例中,可计算功能节点的权重为功能节点被触发的次数与功能节点被触发的总次数的比值。
具体的,可根据以下公式计算功能节点的权重:功能节点的权重=该功能节点被触发的次数/所有功能节点被触发的总次数。
功能节点被触发的次数多,则根据上述公式计算出的该功能节点的权重也相应的越高。
步骤S103,根据功能节点的权重筛选与功能节点相关的测试用例。
在一个实施例中,可获取按照权重排序靠前的预设数量个功能节点,选取与获取的功能节点相关的测试用例。
具体的,可将功能节点按照权重由大到小进行排序,并选取其中前预设个功能节点,进一步在用例库中选取与前预设个功能节点相关的测试用例。
权重排序靠前的功能节点为重要的功能节点,本实施例中,选取权重排序靠前的功能节点相关的测试用例,筛选出了重要性及针对性强的测试用例。
在另一个实施例中,步骤S103的具体过程为:计算功能节点的平均权重,获取权重大于平均权重的功能节点,选取与获取的功能节点相关的测试用例。
具体的,可计算功能节点的平均权重为所有功能节点的权重的和与功能节点的总数。具体的,所有功能节点的权重的和可为1。进一步的,获取权重大于平均权重的功能节点,在用例库中选取与获取的功能节点相关的测试用例。
权重高于平均权重的功能节点也为重要的功能节点,因此,本实施例也可筛选出重要性强的测试用例。
在又一个实施例中,步骤S103可根据功能节点的权重选取功能节点相关的测试用例,使得功能节点相关的测试用例占选取的总的测试用例的比重等于功能节点的权重。例如功能节点1、功能节点2、功能节点3的权重分别为:5/10、3/10、2/10,则可首先在用例库中查找出功能节点1相关的部分或所有的测试用例,设从用例库中获取功能节点1相关的测试用例500个,由于功能节点1、功能节点2、功能节点3的权重比为5∶3∶2,所以选取的功能节点1、功能节点2、功能节点3的测试用例的个数比也应该是5∶3∶2,则可进一步从用例库中选取300个与功能节点2相关的测试用例,并选取200个与功能节点3相关的测试用例。
本实施例中,按照功能节点的权重来分配选取的各功能节点的测试用例的数量,使得选取的权重大的功能节点的测试用例也多,而权重小的功能节点的测试用例也少,选取的测试用例的数量合理的反映了与之相关的功能节点的重要性。因此,上述方式既能选取覆盖较广范围的功能节点的测试用例,又能为重要性高的功能节点选取较多的测试用例,因此上述方式可筛选出数量根据功能节点的重要性进行合理分配的测试用例,根据上述方式选取出的测试用例进行测试,可提高测试效率。
在一个实施例中,上述测试用例筛选方法还包括步骤:获取与功能节点关联的用户界面组件被访问的次数。
本实施例中,步骤S102的具体过程为:根据功能节点被触发的次数以及与功能节点关联的用户界面组件被访问的次数计算功能节点的权重。
在一个实施例中,用户界面组件包括在前端与用户交互的页面、按钮等,访问前端的用户界面组件可触发与用户界面组件关联的后端的功能节点,前端的用户界面组件与后端的功能节点的对应关系为一对多的关系或多对多的关系。
具体的,在一个实施例中,可在与功能节点关联的用户界面组件的程序代码中添加统计代码。当用户访问用户界面组件时,用户界面组件的程序代码即被执行,程序代码中的统计代码也被执行,统计代码可将用户界面组件被访问的日志写入指定的文件或数据库。在系统稳定运行预设时间后,可在该指定的文件或数据库中获取用户界面组件被访问的次数。
进一步的,步骤S102可计算功能节点被触发的次数与功能节点被触发的总次数的第一比值,计算与功能节点关联的用户界面组件被访问的次数与用户界面组件被访问的总次数的第二比值,计算功能节点的权重为第一比值与第二比值的平均值。
具体的,步骤S102可根据以下公式计算功能节点的权重:功能节点的权重=(该功能节点被触发的次数/所有功能节点被触发的总次数+与该功能节点关联的用户界面组件被访问的次数/所有用户界面组件被访问的总次数)/2。
本实施例中,步骤S103中计算功能节点的平均权重的具体过程为:计算所有功能节点的权重的和与所有功能节点的总数的第三比值,再计算所有用户界面组件被访问的平均次数与所有用户界面组件被访问的总次数的第四比值,并计算功能节点的平均权重为该第三比值与第四比值的平均值。
本实施例中,根据功能节点被触发的次数占所有功能节点被触发的总次数的比重以及与该功能节点关联的用户界面组件被访问的次数占所有用户界面组件被访问的总次数的比重来计算该功能节点的权重,当功能节点被触发的次数多或功能节点关联的用户界面组件被访问的次数多时,该功能节点的权重也大。软件系统实际运行中,功能节点被触发的次数多或功能节点关联的用户界面组件被访问的次数多,说明该功能节点的重要性高。本实施例中,重要性高的功能节点的权重也高,可根据功能节点的权重选择出重要性高的功能节点的测试用例,从而选取的测试用例有较强的针对性,根据选取的测试用例进行测试,可提高测试效率。
在一个实施例中,上述方法还包括步骤:根据筛选出的测试用例进行测试。
具体的,可根据传统的自动化测试方法将测试用例的输入数据按照测试步骤输入软件系统,并将软件系统输出的结果与测试用例中的预期的输出数据进行比较,如二者匹配,则测试用例通过,否则,可输出错误报告。
本实施例中,筛选出重要性高的功能节点的测试用例,并根据筛选出的测试用例进行测试,可提高软件系统的测试效率。
如图2所示,在一个实施例中,一种测试用例筛选系统,包括触发次数获取模块201、权重计算模块202、用例筛选模块203,其中:
触发次数获取模块201用于获取功能节点被触发的次数。
在一个实施例中,可预先在功能节点相关的程序代码中添加统计代码,当功能节点被触发时,功能节点相关的程序代码中的统计代码也被执行,统计代码可将功能节点被触发的日志写入指定的文件或数据库中。进一步的,当系统稳定运行预设时间后,触发次数获取模块201可在该指定的文件或数据库中获取功能节点被触发的次数。
权重计算模块202用于根据功能节点被触发的次数计算功能节点的权重。
在一个实施例中,权重计算模块202可计算功能节点的权重为功能节点被触发的次数与功能节点被触发的总次数的比值。
具体的,权重计算模块202可根据以下公式计算功能节点的权重:功能节点的权重=该功能节点被触发的次数/所有功能节点被触发的总次数。
功能节点被触发的次数多,则根据上述公式计算出的该功能节点的权重也相应的越高。
用例筛选模块203用于根据功能节点的权重筛选与功能节点相关的测试用例。
在一个实施例中,用例筛选模块203可获取按照权重排序靠前的预设数量个功能节点,选取与获取的功能节点相关的测试用例。
具体的,用例筛选模块203可将功能节点按照权重由大到小进行排序,并选取其中前预设个功能节点,进一步在用例库中选取与前预设个功能节点相关的测试用例。
权重排序靠前的功能节点为重要的功能节点,本实施例中,选取权重排序靠前的功能节点相关的测试用例,筛选出了重要性及针对性强的测试用例。
在另一个实施例中,权重计算模块202还用于计算功能节点的平均权重,用例筛选模块203用于获取权重大于平均权重的功能节点,选取与获取的功能节点相关的测试用例。
具体的,权重计算模块202可计算功能节点的平均权重为所有功能节点的权重的和与功能节点的总数。进一步的,用例筛选模块203可获取权重大于平均权重的功能节点,在用例库中选取与获取的功能节点相关的测试用例。
权重大于平均权重的功能节点也为重要的功能节点,因此,本实施例也可筛选出重要性强的测试用例。
在又一个实施例中,用例筛选模块203可根据功能节点的权重选取功能节点相关的测试用例,使得功能节点相关的测试用例占选取的总的测试用例的比重等于功能节点的权重。例如功能节点1、功能节点2、功能节点3的权重分别为:5/10、3/10、2/10,则可首先在用例库中查找出功能节点1相关的部分或所有的测试用例,设从用例库中获取功能节点1相关的测试用例500个,由于功能节点1、功能节点2、功能节点3的权重比为5∶3∶2,所以选取的功能节点1、功能节点2、功能节点3的测试用例的个数比也应该是5∶3∶2,则可进一步从用例库中选取300个与功能节点2相关的测试用例,并选取200个与功能节点3相关的测试用例。
本实施例中,按照功能节点的权重来分配选取的各功能节点的测试用例的数量,使得选取的权重大的功能节点的测试用例也多,而权重小的功能节点的测试用例也少,选取的测试用例的数量合理的反映了与之相关的功能节点的重要性。因此,上述方式既能选取覆盖较广范围的功能节点的测试用例,又能为重要性高的功能节点选取较多的测试用例,因此上述方式可筛选出数量根据功能节点的重要性进行合理分配的测试用例,根据上述方式选取出的测试用例进行测试,可提高测试效率。
在一个实施例中,触发次数获取模块201还用于获取与功能节点关联的用户界面组件被访问的次数。
本实施例中,权重计算模块202用于根据功能节点被触发的次数以及与功能节点关联的用户界面组件被访问的次数计算功能节点的权重。
在一个实施例中,用户界面组件包括在前端与用户交互的页面、按钮等,访问前端的用户界面组件可触发与用户界面组件关联的后端的功能节点,前端的用户界面组件与后端的功能节点的对应关系为一对多的关系或多对多的关系。
具体的,在一个实施例中,可在与功能节点关联的用户界面组件的程序代码中添加统计代码。当用户访问用户界面组件时,用户界面组件的程序代码即被执行,程序代码中的统计代码也被执行,统计代码可将用户界面组件被访问的日志写入指定的文件或数据库。在系统稳定运行预设时间后,权重计算模块202可在该指定的文件或数据库中获取用户界面组件被访问的次数。
进一步的,权重计算模块202可计算所述功能节点被触发的次数与功能节点被触发的总次数的第一比值,计算与所述功能节点关联的用户界面组件被访问的次数与用户界面组件被访问的总次数的第二比值,计算功能节点的权重为第一比值与第二比值的平均值。
具体的,权重计算模块202可根据以下公式计算功能节点的权重:功能节点的权重=(该功能节点被触发的次数/所有功能节点被触发的总次数+与该功能节点关联的用户界面组件被访问的次数/所有用户界面组件被访问的总次数)/2。
本实施例中,权重计算模块202可计算所有功能节点的权重的和与所有功能节点的总数的第三比值,再计算所有用户界面组件被访问的平均次数与所有用户界面组件被访问的总次数的第四比值,并计算功能节点的平均权重为该第三比值与第四比值的平均值。
本实施例中,根据功能节点被触发的次数占所有功能节点被触发的总次数的比重以及与该功能节点关联的用户界面组件被访问的次数占所有用户界面组件被访问的总次数的比重来计算该功能节点的权重,当功能节点被触发的次数多或功能节点关联的用户界面组件被访问的次数多时,该功能节点的权重也大。软件系统实际运行中,功能节点被触发的次数多或功能节点关联的用户界面组件被访问的次数多,说明该功能节点的重要性高。本实施例中,重要性高的功能节点的权重也高,可根据功能节点的权重选择出重要性高的功能节点的测试用例,从而选取的测试用例有较强的针对性,根据选取的测试用例进行测试,可提高测试效率。
在一个实施例中,上述测试用例筛选系统还包括测试模块(图中未示出),用于根据筛选出的测试用例进行测试。
具体的,测试模块可根据传统的自动化测试方法将测试用例的输入数据按照测试步骤输入软件系统,并将软件系统输出的结果与测试用例中的预期的输出数据进行比较,如二者匹配,则测试用例通过,否则,可输出错误报告。
本实施例中,筛选出重要性高的功能节点的测试用例,并根据筛选出的测试用例进行测试,可提高软件系统的测试效率。
上述测试用例筛选方法和系统,可在软件系统运行一段时间后,获取功能节点被触发的次数,根据功能节点被触发的次数计算功能节点的权重,并根据功能节点的权重筛选与功能节点相关的测试用例。上述方式可筛选出在实际运行中被触发次数多的功能节点相关的测试用例,功能节点被触发次数多,说明功能节点被使用的频率高,被使用频率高的功能节点的重要性也高,因此上述方式可筛选出实际运行中重要性高的功能节点相关的测试用例,筛选出的测试用例针对性强,根据筛选出的测试用例进行测试可提高软件系统的测试效率。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。