发明内容
本申请所要解决的技术问题是提供一种测试方法及装置,用以解决现有技术中对软件项目的后端webservice进行测试时,需要将前端界面与后端webservice进行集成后才能进行测试,使得测试效率较低的技术问题。
本申请提供了一种测试方法,包括:
依据待生成前端界面的界面设计需求数据,生成每个待测试的应用程序之间的流转关系,所述流转关系包括每个所述应用程序与所述前端界面之间的数据交互顺序及交互参数;
依据所述数据交互顺序,以每个所述应用程序的交互参数作为其测试参数依次对每个所述应用程序进行测试。
上述方法,优选的,依据所述数据交互顺序,以每个所述应用程序的交互参数作为其测试参数依次对每个所述应用程序进行测试,包括:
依据所述数据交互顺序,确定当前应用程序;
确定所述当前应用程序对应的当前交互参数;
以所述当前交互参数作为测试参数,运行所述当前应用程序,得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据;
依据所述数据交互顺序,确定所述当前应用程序的下一个应用程序作为当前应用程序;
依据所述当前测试结果数据确定所述当前应用程序对应的当前交互参数;
以所述当前交互参数作为测试参数,运行所述当前应用程序,得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据,返回执行所述依据所述数据交互顺序,确定所述当前应用程序的下一个应用程序作为当前应用程序,直到所述当前应用程序的下一个应用程序为空。
上述方法,优选的,在所述得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据之后,在所述依据所述数据交互顺序,确定所述当前应用程序的下一个应用程序作为当前应用程序之前,所述方法可以包括:
对所述当前测试结果数据进行数据结构验证及数据内容验证操作,得到当前验证结果;
判断所述当前验证结果是否表明所述当前应用程序中有缺陷存在,如果是,依据所述当前验证结果获取当前修复指令,依据所述当前修复指令对所述当前应用程序进行修复,将修复后的应用程序作为当前应用程序,返回执行所述以所述当前交互参数作为测试参数,运行所述当前应用程序,得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据,直到所述当前验证结果表明所述当前应用程序测试成功,执行所述依据所述数据交互顺序,确定所述当前应用程序的下一个应用程序作为当前应用程序;
若判断出所述当前验证结果未表明所述当前应用程序中有缺陷存在,返回执行所述依据所述数据交互顺序,确定所述当前应用程序的下一个应用程序作为当前应用程序。
上述方法,优选的,所述对所述当前测试结果数据进行数据结构验证及数据内容验证操作,得到当前验证结果,包括:
确定所述当前测试结果数据中的每个数据项;
对每个所述数据项的类型进行结构验证,得到第一验证结果;
对每个所述数据项的值进行内容验证,得到第二验证结果;
将所述第一验证结果及所述第二验证结果组合,得到所述当前测试结果数据的当前验证结果。
本申请还提供了一种测试装置,包括:
流转关系生成单元,用于依据待生成前端界面的界面设计需求数据,生成每个待测试的应用程序之间的流转关系,所述流转关系包括每个所述应用程序与所述前端界面之间的数据交互顺序及交互参数;
应用程序测试单元,用于依据所述数据交互顺序,以每个所述应用程序的交互参数作为其测试参数依次对每个所述应用程序进行测试。
上述装置,优选的,所述应用程序测试单元包括:
当前程序确定子单元,用于依据所述数据交互顺序,确定当前应用程序;
当前参数确定子单元,用于确定所述当前应用程序对应的当前交互参数;
当前程序运行子单元,用于以所述当前交互参数为测试参数,运行所述当前应用程序,得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据;
当前程序更新子单元,用于依据所述数据交互顺序,确定所述当前应用程序的下一个应用程序作为当前应用程序;
当前参数更新子单元,用于依据所述当前测试结果数据确定所述当前应用程序对应的当前交互参数;
更新程序运行子单元,用于以所述当前交互参数作为测试参数,运行所述当前应用程序,得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据,触发所述当前程序更新子单元,直到所述当前应用程序的下一个应用程序为空。
上述装置,优选的,所述应用程序测试单元还包括:
测试数据验证子单元,用于在所述当前程序运行子单元或所述更新程序运行子单元得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据之后,在所述当前程序更新子单元确定所述当前应用程序的下一个应用程序作为当前应用程序之前,对所述当前测试结果数据进行数据结果验证及数据内容验证操作,得到当前验证结果;
验证结果判定子单元,用于判断所述当前验证结果是否表明所述当前应用程序中有缺陷存在,如果是,触发当前程序修复子单元,否则,触发所述更新程序运行子单元;
当前程序修复子单元,用于依据所述当前验证结果获取当前修复指令,依据所述当前修复指令对所述当前应用程序进行修复,将修复后的应用程序作为当前应用程序,触发与所述测试数据验证子单元对应的所述当前程序运行子单元或所述更新程序运行子单元,直到所述当前验证结果表明所述当前应用程序测试成功,触发所述更新程序运行子单元。
上述装置,优选的,所述测试数据验证子单元包括:
数据项确定模块,用于确定所述当前测试结果数据中的每个数据项;
结构验证模块,用于对每个所述数据项的类型进行结构验证,得到第一验证结果;
内容验证模块,用于对每个所述数据项的值进行内容验证,得到第二验证结果;
验证组合模块,用于将所述第一验证结果及所述第二验证结果组合,得到所述当前测试结果数据的当前验证结果。
由上述方案可知,本申请提供的一种测试方法及装置,通过依据待生成前端界面的界面设计需求数据生成每个待测试的应用程序之间的流转关系,该流转关系包含有每个应用程序与前端界面之间的数据交互顺序及交互参数,进而依据该数据交互顺序,以每个应用程序的交互参数作为其测试参数依次对每个应用程序进行测试,即为本申请通过模拟前端界面与每个应用程序的交互流程,实现对每个应用程序以其各自对应的测试参数进行测试的目的。本申请无需等待前端界面开发完成,只需利用其界面设计需求数据得到每个应用程序之间的数据交互顺序及交互参数,进而模拟前端界面与每个应用程序的交互过程,实现对每个应用程序的测试,相对于现有技术中需要等待应用程序对应软件项目的前端界面开发完成之后方能进行应用程序测试,导致测试效率较低的情况,本申请明显节省了等待前端界面开发完成的时间,提高了对应用程序的测试效率。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,为本申请提供的一种测试方法实施例一的流程图,所述方法适用于对软件项目中后端应用程序webservice的测试,所述方法可以包括:
步骤101:依据待生成前端界面的界面设计需求数据,生成每个待测试的应用程序之间的流转关系。
其中,所述流转关系包括每个所述应用程序与所述前端界面之间的数据交互顺序及交互参数。
所述数据交互顺序是指,前端界面与应用程序进行数据交互时的运行顺序,例如,某一软件项目中,用户在其前端界面输入键入数据,前端界面子接收到该键入数据之后,由该键入数据生成第一指令,由第一指令作为第一交互参数触发对应的应用程序执行其功能,在该应用程序执行完其功能之后可能生成一返回参数,触发另一个应用程序接收该返回参数并执行其功能,进而得到另一返回参数,由该另一个应用程序将其返回参数返回至前端界面,由前端界面依据其接收到的返回参数和/或其他用户输入或点击的数据,触发其他应用程序,以此类推,前述中应用程序的执行顺序即前述的数据交互顺序,而每个应用程序在被触发运行时的触发指令均作为其交互参数,而每个应用程序在其运行结束后生成的返回参数即可作为该应用程序的下一个应用程序的交互参数。
步骤102:依据所述数据交互顺序,以每个所述应用程序的交互参数作为其测试参数依次对每个所述应用程序进行测试。
其中,所述步骤102中以每个所述应用程序的交互参数作为其测试参数依次对每个所述应用程序进行测试,即为:以每个所述应用程序的交互参数作为其运行参数依次运行每个所述应用程序,实现对每个所述应用程序的测试。
由上述方案可知,本申请提供的一种测试方法实施例一,通过依据待生成前端界面的界面设计需求数据生成每个待测试的应用程序之间的流转关系,该流转关系包含有每个应用程序与前端界面之间的数据交互顺序及交互参数,进而依据该数据交互顺序,以每个应用程序的交互参数作为其测试参数依次对每个应用程序进行测试,即为本申请通过模拟前端界面与每个应用程序的交互流程,实现对每个应用程序以其各自对应的测试参数进行测试的目的。本申请实施例无需等待前端界面开发完成,只需利用其界面设计需求数据得到每个应用程序之间的数据交互顺序及交互参数,进而模拟前端界面与每个应用程序的交互过程,实现对每个应用程序的测试,相对于现有技术中需要等待应用程序对应软件项目的前端界面开发完成之后方能进行应用程序测试,导致测试效率较低的情况,本申请明显节省了等待前端界面开发完成的时间,提高了对应用程序的测试效率。
参考图2,为本申请提供的一种测试方法实施例二中所述步骤102的流程图,所述步骤102可以包括:
步骤201:依据所述数据交互顺序,确定当前应用程序。
其中,所述步骤201可以理解为,确定所述数据交互顺序中的第一个应用程序作为当前应用程序。
步骤202:确定所述当前应用程序的当前交互参数。
其中,所述步骤202可以通过以下方式实现:在所述步骤101中生成的交互参数中,确定与该当前应用程序相对应的交互参数作为当前交互参数。
步骤203:以所述当前交互参数作为测试参数,运行所述当前应用程序,得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据。
所述当前测试结果数据可以理解为前文中示例中应用程序运行生成的返回参数等。
步骤204:依据所述数据交互顺序,确定所述当前应用程序的下一个应用程序作为当前应用程序。
步骤205:依据所述当前测试结果数据确定所述当前应用程序对应的当前交互参数。
其中,所述步骤205可以理解为:在所述步骤101生成的交互参数中,依据所述当前测试结果数据确定当前应用户程序的当前交互参数,其中,所述当前测试结果数据为所述当前应用程序的前一个应用程序的运行结果,也就是说,依据所述数据交互顺序,从第二个应用程序开始,每个应用程序的当前交互参数均由其前一个应用程序的运行结果决定。
步骤206:以所述当前交互参数作为测试参数,运行所述当前运行程序,得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据,返回执行所述步骤204,直到所述当前应用程序的下一个应用程序为空。
由上述步骤102的实现方案可知,本申请实施例二通过将软件项目中的每个待测试的应用程序以流程图的形式串联,在不需要前端界面开发完成的情况下,以图形的方式依据前端界面的界面设计需求数据及应用程序的交互参数设置条件转移,实现模拟前端界面与应用程序之间数据交互测试的目的。
其中,在对每个应用程序进行测试即每个应用程序运行完成之后,需要对每个应用程序的运行结果即测试结果进行验证,进而对出现缺陷的应用程序进行修复,由此,参考图3,为本申请提供的一种测试方法实施例三中所述步骤102的流程图,所述步骤102在实现时,在所述步骤203或所述步骤206得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据之后,在所述步骤204之前,所述步骤102还可以包括以下步骤:
步骤207:对所述当前测试结果数据进行数据结构验证及数据内容验证操作,得到当前验证结果。
其中,如图4中所示,所述步骤207可以通过以下步骤实现:
步骤401:确定所述当前测试结果数据中的每个数据项。
步骤402:对每个所述数据项的类型进行结构验证,得到第一验证结果。
其中,所述第一验证结果即为对所述当前测试结果数据的数据项类型进行验证的结果,即验证该当前测试结果数据中包含哪些信息,而非其信息值。
步骤403:对每个所述数据项的值进行内容验证,得到第二验证结果。
其中,所述第二验证结果即为对当前测试结果数据进行值内容进行验证的结果。
步骤404:将所述第一验证结果及所述第二验证结果组合,得到所述当前测试结果数据的当前验证结果。
步骤208:判断所述当前验证结果是否表明所述当前应用程序中有缺陷存在,如果是,执行步骤209,否则,执行所述步骤204;
步骤209:依据所述当前验证结果获取当前修复指令,依据所述当前修复指令对所述当前应用程序进行修复,将修复后的应用程序作为当前应用程序,返回执行所述当前应用程序对应的所述步骤203或步骤206,直到所述当前验证结果表明所述当前应用程序测试成功,执行所述依据所述数据交互顺序,确定所述当前应用程序的下一个应用程序作为当前应用程序,执行步骤204。
其中,所述当前修复指令可以为程序开发人员根据当前验证结果进行编制,由本申请在所述步骤209中依据所述当前验证结果进行获取。所述当前修复指令中包含有能够对出现缺陷的当前应用程序进行修复的代码内容。
如图3中,若所述步骤207只在所述步骤203后被触发执行时,在所述步骤209将修复后的应用程序作为当前应用程序时,返回执行所述步骤203(线路1),若所述步骤207在所述步骤203被触发执行并在当前验证结果表明当前应用程序中无缺陷存在后,在所述步骤206后被触发再次执行时,所述步骤209中将修复后的应用程序作为当前应用程序返回执行所述步骤206,完成第二个或之后的某一应用程序的测试(线路2),之后再执行所述步骤204(线路3),继续下一个应用程序的测试。
由上述方案可知,本申请提供的一种测试方法实施例三,在对每个应用程序进行测试之后,对其各自的测试结果数据进行验证,进而对出现缺陷的应用程序进行修复,直到其验证结果表明该应用程序不存在缺陷为止,继续对下一个应用程序的测试及验证修复过程,完成对整个软件项目中后端应用程序webservice的测试。
参考图5,为本申请提供的一种测试装置实施例四的结构示意图,所述装置适用于对软件项目中后端应用程序webservice的测试,所述装置包括:
流转关系生成单元501,用于依据待生成前端界面的界面设计需求数据,生成每个待测试的应用程序之间的流转关系。
其中,所述流转关系包括每个所述应用程序与所述前端界面之间的数据交互顺序及交互参数。
所述数据交互顺序是指,前端界面与应用程序进行数据交互时的运行顺序,例如,某一软件项目中,用户在其前端界面输入键入数据,前端界面子接收到该键入数据之后,由该键入数据生成第一指令,由第一指令作为第一交互参数触发对应的应用程序执行其功能,在该应用程序执行完其功能之后可能生成一返回参数,触发另一个应用程序接收该返回参数并执行其功能,进而得到另一返回参数,由该另一个应用程序将其返回参数返回至前端界面,由前端界面依据其接收到的返回参数和/或其他用户输入或点击的数据,触发其他应用程序,以此类推,前述中应用程序的执行顺序即前述的数据交互顺序,而每个应用程序在被触发运行时的触发指令均作为其交互参数,而每个应用程序在其运行结束后生成的返回参数即可作为该应用程序的下一个应用程序的交互参数。
应用程序测试单元502,用于依据所述数据交互顺序,以每个所述应用程序的交互参数作为其测试参数依次对每个所述应用程序进行测试。
其中,所述应用程序测试单元502中以每个所述应用程序的交互参数作为其测试参数依次对每个所述应用程序进行测试,即为:以每个所述应用程序的交互参数作为其运行参数依次运行每个所述应用程序,实现对每个所述应用程序的测试。
由上述方案可知,本申请提供的一种测试装置实施例四,通过依据待生成前端界面的界面设计需求数据生成每个待测试的应用程序之间的流转关系,该流转关系包含有每个应用程序与前端界面之间的数据交互顺序及交互参数,进而依据该数据交互顺序,以每个应用程序的交互参数作为其测试参数依次对每个应用程序进行测试,即为本申请通过模拟前端界面与每个应用程序的交互流程,实现对每个应用程序以其各自对应的测试参数进行测试的目的。本申请实施例无需等待前端界面开发完成,只需利用其界面设计需求数据得到每个应用程序之间的数据交互顺序及交互参数,进而模拟前端界面与每个应用程序的交互过程,实现对每个应用程序的测试,相对于现有技术中需要等待应用程序对应软件项目的前端界面开发完成之后方能进行应用程序测试,导致测试效率较低的情况,本申请明显节省了等待前端界面开发完成的时间,提高了对应用程序的测试效率。
参考图6,为本申请提供的一种测试装置实施例五中应用程序测试单元502的结构示意图,其中,所述应用程序测试单元502可以包括:
当前程序确定子单元521,用于依据所述数据交互顺序,确定当前应用程序。
其中,所述当前程序确定子单元521可以理解为,确定所述数据交互顺序中的第一个应用程序作为当前应用程序。
当前参数确定子单元522,用于确定所述当前应用程序对应的当前交互参数。
其中,所述当前参数确定子单元522可以通过以下方式实现:在所述流转关系生成单元501中生成的交互参数中,确定与该当前应用程序相对应的交互参数作为当前交互参数。
当前程序运行子单元523,用于以所述当前交互参数为测试参数,运行所述当前应用程序,得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据。
所述当前测试结果数据可以理解为前文中示例中应用程序运行生成的返回参数等。
当前程序更新子单元524,用于依据所述数据交互顺序,确定所述当前应用程序的下一个应用程序作为当前应用程序。
当前参数更新子单元525,用于依据所述当前测试结果数据确定所述当前应用程序对应的当前交互参数。
其中,所述当前参数更新子单元525可以理解为:在所述流转关系生成单元501生成的交互参数中,依据所述当前测试结果数据确定当前应用户程序的当前交互参数,其中,所述当前测试结果数据为所述当前应用程序的前一个应用程序的运行结果,也就是说,依据所述数据交互顺序,从第二个应用程序开始,每个应用程序的当前交互参数均由其前一个应用程序的运行结果决定。
更新程序运行子单元526,用于以所述当前交互参数作为测试参数,运行所述当前应用程序,得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据,触发所述当前程序更新子单元524,直到所述当前应用程序的下一个应用程序为空。
由上述应用程序测试单元502的实现方案可知,本申请实施例五通过将软件项目中的每个待测试的应用程序以流程图的形式串联,在不需要前端界面开发完成的情况下,以图形的方式依据前端界面的界面设计需求数据及应用程序的交互参数设置条件转移,实现模拟前端界面与应用程序之间数据交互测试的目的。
其中,在对每个应用程序进行测试即每个应用程序运行完成之后,需要对每个应用程序的运行结果即测试结果进行验证,进而对出现缺陷的应用程序进行修复,由此,参考图7,为本申请提供的一种测试装置实施例六中所述应用程序测试单元502的结构示意图,其中,基于如图6中所示的结构,所述应用程序测试单元502还可以包括:
测试数据验证子单元527,用于在所述当前程序运行子单元523或所述更新程序运行子单元526得到所述当前应用程序的运行结果作为所述当前应用程序的当前测试结果数据之后,在所述当前程序更新子单元524确定所述当前应用程序的下一个应用程序作为当前应用程序之前,对所述当前测试结果数据进行数据结果验证及数据内容验证操作,得到当前验证结果。
其中,如图8中所示,所述测试数据验证子单元527可以包括:
数据项确定模块5271,用于确定所述当前测试结果数据中的每个数据项。
结构验证模块5272,用于对每个所述数据项的类型进行结构验证,得到第一验证结果。
其中,所述第一验证结果即为对所述当前测试结果数据的数据项类型进行验证的结果,即验证该当前测试结果数据中包含哪些信息,而非其信息值。
内容验证模块5273,用于对每个所述数据项的值进行内容验证,得到第二验证结果。
其中,所述第二验证结果即为对当前测试结果数据进行值内容进行验证的结果。
验证组合模块5274,用于将所述第一验证结果及所述第二验证结果组合,得到所述当前测试结果数据的当前验证结果。
验证结果判定子单元528,用于判断所述当前验证结果是否表明所述当前应用程序中有缺陷存在,如果是,触发当前程序修复子单元529,否则,触发所述更新程序运行子单元524。
当前程序修复子单元529,用于依据所述当前验证结果获取当前修复指令,依据所述当前修复指令对所述当前应用程序进行修复,将修复后的应用程序作为当前应用程序,触发与所述测试数据验证子单元527对应的所述当前程序运行子单元523或所述更新程序运行子单元526,直到所述当前验证结果表明所述当前应用程序测试成功,触发所述更新程序运行子单元524。
其中,所述当前修复指令可以为程序开发人员根据当前验证结果进行编制,由本申请在所述当前程序修复子单元529中依据所述当前验证结果进行获取。所述当前修复指令中包含有能够对出现缺陷的当前应用程序进行修复的代码内容。
需要说明的是,若所述测试数据验证子单元527只被所述当前程序运行子单元523触发运行时,在所述当前程序修复子单元529将修复后的应用程序作为当前应用程序时,触发所述当前程序运行子单元(线路1),若所述测试数据验证子单元527在所述当前程序运行子单元523被触发运行并在所述验证结果判定子单元528中当前验证结果表明当前应用程序中无缺陷存在后,被所述更新程序运行子单元526被触发再次运行时,所述当前程序修复子单元529将修复后的应用程序作为当前应用程序后触发所述更新程序运行子单元526,完成第二个或之后的某一应用程序的测试(线路2),之后再执行所述步骤204(线路3),继续下一个应用程序的测试。由上述方案可知,本申请提供的一种测试装置实施例六,在对每个应用程序进行测试之后,对其各自的测试结果数据进行验证,进而对出现缺陷的应用程序进行修复,直到其验证结果表明该应用程序不存在缺陷为止,继续对下一个应用程序的测试及验证修复过程,完成对整个软件项目中后端应用程序webservice的测试。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种测试方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。