输入法测试方法、生成测试用例的方法及电子装置的制作方法

文档序号:6381326阅读:147来源:国知局
专利名称:输入法测试方法、生成测试用例的方法及电子装置的制作方法
技术领域
本发明涉及输入法领域,特别是涉及输入法测试方法、生成测试用例的方法及电
子装置。
背景技术
输入法是指为了将各种符号输入计算机或其他设备(如手机)而采用的编码方法。输入法性能的评价通常采用输入法测试方法来完成。目前一般的输入法测试都是采用输入输出测试用例来进行校验。比如输入一个字符串,查看根据输入的字符串所产生的候选内容是否正确等。由此可见,测试用例是输入法测试的核心所在。设置合理的测试用例能够有效地提高输入法测试的效率和保证输入法测试结果的准确性。本发明申请人在长期的研究中发现,现有的测试用例的获取至少存在以下不足采用随机的按键得到的测试用例无法完全覆盖输入法中所有的按键产生的情况;而如果根据功能设计有限的测试用例,同样也面临设计不全的问题。而且采用这些测试用例进行输入法测试时,往往是基于候选项来进行对比,单纯的通过候选项的校验来评价输入法的性能,对输入法测试结果不够准确。

发明内容
本发明主要解决的技术问题是提供一种输入法测试方法、生成测试用例的方法及电子装置,获取的测试用例的覆盖率大,既能够提高后续输入法测试的准确性,同时也能提高测试用例的稳定性。为解决上述技术问题,本发明采用的一个技术方案是提供一种生成输入法测试用例的方法,包括在所述输入法的预定状态下,对所述输入法所能响应的动作进行分类;获取分类后的每个所述动作对应的触发条件以及所述输入法的预定状态跟随所述动作的变化而变化的情况;根据所述动作对应的触发条件和/或所述输入法的预定状态跟随所述动作的变化而变化的情况生成不同动作相应的测试用例。其中,所述在输入法的预定状态下,对所述输入法所能响应的动作进行分类的步骤包括在所述输入法的预定状态下,对所述输入法所能响应的动作以及由所述动作产生的结果进行分类。其中,所述在输入法的预定状态下,对所述输入法所能响应的动作进行分类的步骤包括在所述输入法的预输入状态、正常输入状态以及转换状态中的至少一种预定状态下,对所述输入法所能响应的动作进行分类。为解决上述技术问题,本发明采用的另一个技术方案是提供一种输入法测试方法,包括抽取测试用例,所述测试用例是基于输入法的预定状态下动作的触发条件和/或输入法的预定状态跟随所述动作变化而变化的情况而产生的;利用所述输入法对所述测试用例对应的字符进行输入;对所述输入的过程进行校验,完成所述输入法测试。其中,所述对输入的过程进行校验,完成输入法测试的步骤包括所述输入的过程中输入法的预定状态进行校验;若对所述输入法状态的校验通过,则对所述输入法的预定状态下的动作进行校验;若对所述动作的校验通过,则对所述动作的触发条件进行校验;若对所述触发条件的校验通过,则采用自定义规则对输入所述测试用例对应的字符所产生的候选项进行校验;若对所述候选项的校验通过,则判断为所述输入法测试成功,完成所述输入法测试。其中,所述对输入过程中输入法的预定状态进行校验的步骤包括判断所述输入过程的输入法的预定状态跟所述测试用例对应的输入法状态是否一致;若所述输入过程中输入法的预定状态跟所述测试用例对应的输入法的预定状态一致,则判断为所述输入法的预定状态通过校验,否则,判断为所述输入法测试失败,结束输入法测试。其中,所述对输入法的预定状态下的动作进行校验的步骤包括判断所述输入法的预定状态下的动作与所述测试用例对应的动作是否一致;若所述输入法的预定状态下的动作与所述测试用例对应的动作一致,则判断为所述动作的校验通过,否则,判断为所述输入法测试失败,结束输入法测试。其中,所述对动作的触发条件进行校验的步骤包括判断所述动作的触发条件与所述测试用例对应的动作的触发条件是否一致;若所述动作的触发条件与所述测试用例对应的动作的触发条件一致,则判断为动作的触发条件的校验通过,否则,判断为所述输入法测试失败,结束所述输入法测试。其中,所述采用自定义规则对候选项进行校验的步骤包括抽取预定的上下文,对所述预定的上下文对应的指定字符串进行输入,判断每输入一个指定字符串所产生的候选项的第四位是否为颜文字;若所述每输入一个指定字符串所产生的候选项的第四位不是颜文字,则判断为所述输入法测试失败,结束所述输入法测试;若所述每输入一个指定字符串所产生的候选项的第四位是颜文字,则判断为输入法测试成功,完成输入法测试。其中,所述采用自定义规则对候选项进行校验的步骤包括抽取预定的上下文;对所述预定的上下文对应的指定字符串进行输入,判断当完成上文的候选输出后接着输入下文对应的指定字符串时,所产生的候选项的首选是否是所述指定的下文;如果所述接着输入下文对应的指定字符串所产生的候选项的首选是所述指定的下文,则判断为所述输入法测试成功,完成所述输入法测试,否则,则判断为所述输入法测试失败,结束所述输入法测试。其中,所述利用输入法对所述测试用例对应的字符进行输入的步骤包括利用所述输入法,通过虚拟的客户端对所述测试用例对应的字符进行输入,并发送给输入法服务器。为解决上述技术问题,本发明采用的另一个技术方案是包括分类模块、获取模块以及测试用例生成模块,其中所述分类模块用于在所述输入法的预定状态下,对所述输入法所能响应的动作进行分类,并将分类后的所述动作输出给所述获取模块;所述获取模块用于根据来自分类模块的分类后的所述动作,获取分类后的每个所述动作对应的触发条件和/或所述输入法的预定状态跟随所述动作的变化而变化的情况并输出给所述测试用例生成模块;所述测试用例生成模块用于根据来自所述获取模块的所述动作对应的触发条件以及所述输入法的预定状态跟随所述动作的变化而变化的情况生成不同动作相应的测试用例。
其中,所述分类模块具体用于在所述输入法的预输入状态、正常输入状态以及转换状态中的至少一种预定状态下,对所述输入法所能响应的动作进行分类,并将分类后的所述动作输出给所述获取模块。为解决上述技术问题,本发明采用的另一个技术方案是包括抽取模块、输入模块以及校验模块,其中所述抽取模块用于抽取测试用例,所述测试用例是基于输入法的预定状态下动作的触发条件以及输入法的预定状态跟随所述动作变化而变化的情况而产生的;所述输入模块用于利用输入法对所述抽取模块抽取的所述测试用例对应的字符进行输入;所述校验模块用于对所述输入模块的所述输入的过程进行校验,完成输入法测试。其中,所述校验模块包括第一校验单元、第二校验单元、第三校验单元以及第四校验单元,其中所述第一校验单元用于对所述输入的过程中输入法的预定状态进行校验,当输入法的预定状态通过校验时,发送对所述输入法的预定状态下的动作进行校验的指令给所述第二校验单元;所述第二校验单元用于对所述输入法的预定状态下的动作进行校验,当输入的状态下的动作通过校验时,发送对所述动作的触发条件进行校验的指令给所述第三校验单元;所述第三校验单元用于对所述动作的触发条件进行校验,当动作的触发条件通过校验时,发送对候选项进行校验的指令给所述第四校验单元;所述第四校验单元用于采用自定义规则对所述候选项进行校验。其中,所述第一校验单元具体用于通过判断所述输入的过程中输入法的预定状态与所述测试用例对应的输入法的预定状态是否一致来对所述输入法的预定状态进行校验,当所述输入的过程中输入法的预定状态与所述测试用例对应的输入法的预定状态一致时,判断为所述输入法的预定状态通过校验时,发送对输入法的预定状态下的动作进行校验的指令给所述第二校验单元,否则,不发送所述对输入法的预定状态下的动作进行校验的指令;所述第二校验单元具体用于响应来自第一校验单元的所述对输入法的预定状态下的动作进行校验的指令,通过判断所述输入法的预定状态下的动作与所述测试用例相应的动作是否一致来对所述输入法的预定状态下的动作进行校验,当所述输入法的预定状态下的动作与所述测试用例相应的动作一致,判断为所述输入法的预定状态下的动作通过校验,则发送对动作的触发条件进行校验的指令给所述第三校验单元,否则,不发送所述对动作的触发条件进行校验的指令;所述第三校验单元具体用于响应来自第二校验单元的所述对动作的触发条件进行校验的指令,通过判断所述动作的触发条件与所述测试用例中相应的动作的触发条件是否一致来对所述动作的触发条件进行校验,当所述动作的触发条件与所述测试用例中相应的动作的触发条件一致,判断为所述动作的触发条件通过校验,则发送对候选项进行校验的指令给第四校验单元,否则,不发送所述对候选项进行校验的指令;所述第四校验单元具体用于响应来自所述第三校验单元的对候选项进行校验的指令,通过判断所述候选项是否满足预定的要求来对所述候选项进行校验,当候选项满足预订的要求,判断为候选项通过校验,输入法测试成功,完成输入法测试,否则,输入法测试失败,结束输入法测试。其中,所述输入模块具体用于利用所述输入法,通过虚拟的客户端对所述抽取模块抽取的测试用例对应的字符进行输入,并将所述测试用例对应的字符发送给所述输入法服务器。本发明的有益效果是区别于现有技术的情况,本发明通过输入法的预定状态下动作的触发条件以及输入法的预定状态跟随所述动作变化而变化的情况设计对应的测试用例。由于是将用户的输入过程拆分为基本的多种输入法的预定状态,通过收集输入法预定状态下的动作和/或动作的触发条件来生成动作相应的测试用例,用较少的测试用例来大范围地覆盖用户实际按键输入的情况,提高测试用例的覆盖率;同时由于测试用例量少而准确,能够提高后续输入法测试的准确度。此外,利用获取的测试用例进行输入法测试中,通过对输入过程进行校验来完成输入法测试。而输入过程既包含输入法的预定状态、在预定状态下的动作、产生动作的触发条件以及候选项的产生等,对输入过程进行校验通过对过程中的各个部分进行校验,不完全依赖于候选项的校验来评价输入法性能,提高输入法测试的准确性,同时也提高测试用例的稳定性。


图I是本发明生成输入法测试用例的方法一实施方式的流程图;图2是本发明生成输入法测试用例的方法一实施方式中状态迁移图的示意图;图3是本发明输入法测试方法一实施方式的流程图;图4是本发明输入法测试方法一实施方式中对输入的过程进行校验的流程图;图5是某一输入法下候选界面的示意图;图6是本发明电子装置第一实施方式的结构示意图;图7是本发明电子装置第二实施方式的结构示意图;图8是本发明电子装置第三实施方式中校验模块的结构示意图。
具体实施例方式参阅图1,本发明生成输入法测试用例的方法一实施方式包括步骤SlOl :在输入法的预定状态下,对输入法所能响应的动作进行分类;在输入法的预定状态下,对输入法所能响应的动作进行分类,同时也可以包括对动作产生的结果进行分类。输入法的预定状态可以是一种或两种以上的预定状态。比如但不限于是预输入状态、正常输入状态以及转换状态中的任意一种或者两种以上的状态。动作是指在输入法的预定状态下所能响应的用户的某些操作行为。通常在某个预定的输入法的预定状态下,仅能响应指定的某些动作。比如在预输入状态下或输入变换状态下,仅能响应如翻页、文节移动等动作。又比如在正常输入状态下,仅能响应如“Backspace”,“Cancel”,“Commit”,“Convert To Half Width” 等 33 种动作。而动作产生的结果是指输入法响应动作而产生的结果。比如响应动作“cancel”产生删除的结果,响应动作“convert To Full Alphanumeric”而产生转换到全字母的结果。其中,对输入法所能响应的动作进行分类是指针对输入法的预定状态下的动作按照动作的类型来进行分类。比如输入字符行为、选词行为、翻页行为、文节移动行为等等。步骤S102 :获取分类后的每个动作对应的触发条件及输入法的预定状态跟随动作的变化而变化的情况;获取分类后的每个动作对应的触发条件和/或输入法的预定状态跟随动作的变化而发生变化的情况。针对某一动作,可能不止一种触发条件,这时需要获取动作的所有触发条件。比如针对翻页这一动作,有“pgDn”、“ctrl+l”两种触发条件,则获取这两种触发条件。输入法的预定状态跟随动作的变化而变化的情况,是指某些动作导致输入法的预定状态发生变化的情况。比如转换状态下按esc能回到正常输入状态,正常输入状态下按下esc能回到预输入状态等等。步骤S103 :根据动作对应的触发条件和/或输入法的预定状态跟随动作的变化而变化的情况,生成不同动作相应的测试用例;根据动作对应的触发条件和输入法的预定状态跟随动作的变化而变化的情况,生成状态迁移图(即输入法的预定状态跟随动作变化而变化的情况)。可参阅图2,为本发明生成输入法测试用例的方法一实施方式中的其中一个状态迁移图的示意图。对不同的动作生成对应的不同的测试用例。比如翻页这一动作对应“pgDn”、“ctrl+l”两种触发条件,原始输入串为“a”、“ska”,则生成的测试用例分别为“(a{pgDn}, a{Ctrl+l}, ska{pgDn},ska{Ctrl+l})”。这里的原始输入串是指在预输入状态下产生的输入串。在设计输入法测试用例的时候,可以找到预输入状态下的一些特殊的输入串,与不同的状态设计不同的测试用例。通过上述实施方式的阐述,可以理解,本发明生成输入法测试用例的方法,通过收集输入法的预定状态下动作的触发条件和/或输入法的预定状态跟随所述动作变化而变化的情况,针对不同的动作设计对应的测试用例,能够用较少的测试用例来大范围地覆盖用户实际按键输入的情况,提高测试用例的覆盖率;同时由于测试用例量少而准确,能够提高后续输入法测试的准确度。请参阅图3,本发明输入法测试方法一实施方式包括步骤S201 :抽取测试用例;抽取测试用例,这里的测试用例是基于输入法的预定状态下动作的触发条件和/或输入法的预定状态跟随所述动作变化而变化的情况而产生的。其中,上述的测试用例是通过以下方式来得到在输入法的预定状态下,对输入法所能响应的动作进行分类,然后获取分类后的每个动作对应的触发条件和/或输入法的预定状态跟随动作的变化而变化的情况,再根据动作对应的触发条件和/或输入法的预定状态跟随动作的变化而变化的情况,生成不同动作相应的测试用例。步骤S202 :利用输入法对测试用例对应的字符进行输入;通常情况下,用户界面上显示的所有内容信息,比如候选项、候选项有多少页、输入法在什么状态等,在输入法测试的时候会有对应的xml文件生成。因此,通常情况下为了实现输入法测试的自动化,通常有两种方式1、模拟键盘输入,这种方式看起来就像有人在打字一样,以此来进行输入法测试,该过程有用户界面参与;2、将输入法处理的逻辑程序打包成压缩文件,通过提供一些字符串来触发,这样,虽然界面上没有输入,但是也产生相应的xml文件,也可以进行输入法测试。对于抽取的测试用例,利用输入法进行输入时可以采用上述两种方式的任意一种。在本发明实施方式中,通过模拟(mock) —个虚拟的客户端(client)和输入法的服务器(server)进行进程间的通信,通过虚拟的客户端对测试用例对应的字符进行输入,并发送给输入法服务器。这样既可以实现输入法测试的自动化,又能解决输入法测试过程中用户界面展示带来的效率低下的问题。
步骤S203 :对输入的过程进行校验,完成输入法测试;对输入测试用例的过程进行校验,包括对输入过程的输入法的预定状态、输入法的预定状态下的动作、动作的触发条件以及候选项一一进行校验,所有的校验通过,则判断为输入法测试成功,完成输入法测试。具体地,请参阅图4,对输入的过程进行校验包括以下子步骤子步骤S301 :对输入的过程中输入法的预定状态进行校验;在输入测试用例的过程中,对输入法的预定状态进行校验,如果校验结果为输入法的预定状态通过校验,则进行子步骤S302 ;否则,进行子步骤S306。对输入法的预定状态进行校验,是通过判断输入过程的输入法的预定状态跟测试用例对应的输入法状态是否一致来实现的。若输入过程的输入法状态跟测试用例对应的输入法状态一致,则判断为输入法的预定状态通过校验,进行子步骤S302。否则,判断为输入法的预定状态没通过校验,进行子步骤S306。子步骤S302 :对输入法的预定状态下的动作进行校验;如果输入过程的输入法的预定状态通过校验,则对输入法的预定状态下的动作进行校验。如果校验结果为输入法的预定状态下的动作通过校验,则进行子步骤S303,否则,进行子步骤S306。对输入法的预定状态下的动作进行校验是通过判断输入法的预定状态下的动作与测试用例对应的动作是否一致,若输入法状态下的动作与测试用例对应的动作一致,则判断为动作通过校验,进行子步骤S303。否则,判断为动作没通过校验,进行子步骤S306。子步骤S303 :对动作的触发条件进行校验;如果动作通过校验,则对动作相应的触发条件进行校验,如果校验结果为动作的触发条件通过校验,则进行子步骤S304,否则,进行子步骤S306。对动作的触发条件进行校验是通过判断动作的触发条件与测试用例对应的动作的触发条件是否一致,若动作的触发条件与测试用例对应的动作的触发条件一致,则判断为动作的触发条件通过校验,进行子步骤S304。否则,判断为动作没通过校验,进行子步骤S306。子步骤S304 :采用自定义规则对候选项进行校验;如果动作通过校验,则采用自定义规则对候选项进行校验,如果校验结果为候选项通过校验,则进行子步骤S305,否则,进行子步骤S306。在本发明实施方式中,采用自定义规则对候选项进行校验可以有两种方式第一种方式通过抽取预定的上下文,对该抽取的预定的上下文对应的指定字符串进行输入,判断每输入一个指定字符串,候选项的第四位是否为颜文字,若候选项的第四位不是颜文字,则判断为候选项没通过校验,进行子步骤S306 ;指定字符串是指抽取的上下文对应的相应的字符串。比如抽取的是“大家”,则指定的字符串即为“dajia”。这里的颜文字是指用文字或各种线条、符号等组成的图画,它是ASCII Art的一部分。比如如图5所述的为某一输入法下输入“him”后对应的界面示意图,其对应的第五位和第九位的候选即为颜文字。若候选项的第四位是颜文字,则判断为候选项通过校验,进行子步骤S305,否则,则判断为候选项没通过校验,进行子步骤S306。第二种方式通过抽取预定的上下文,对该抽取的预定的上下文对应的指定字符串进行输入,判断当完成上文的候选输出后接着输入下文对应的字符时,所产生的候选项的首选是否是指定的下文,如果接着输入下文对应的字符时,所产生的候选项的首选是指定的下文,则判断为候选项通过校验,进行子步骤S305。否则,则判断为候选项没通过校验,进行子步骤S306。比如成语“一石二鸟”,判断完成“一石”的输出之后,接着输入字符“erniao”所产生的候选项中“二鸟”是否为首位。在实际应用过程中,可以根据实际需要选择上述两种方式的任意一种方式来对候选项进行校验。子步骤S305 :输入法测试成功,完成输入法测试;当输入过程中输入法的预定状态、动作、动作的触发条件以及候选项都通过校验,则输入法测试成功,完成输入法测试。子步骤S306 :输入法测试失败,结束输入法测试;当输入过程中输入法的预定状态、动作、动作的触发条件以及候选项任何一项没通过校验,则输入法测试失败,结束输入法测试。通过上述实施方式的描述,可以理解,本发明的输入法测试方法,通过收集输入法的预定状态下动作的触发条件和/或输入法的预定状态跟随动作变化而变化的情况,生成动作相应的测试用例。利用生成的动作相应的测试用例对输入法进行测试,由于测试用例量少而准确,能够提高输入法测试的准确度。此外,利用生成的动作相应的测试用例对输入法进行测试中,通过对输入过程进行校验来完成输入法测试。而输入过程既包含输入法的预定状态、在预定状态下的动作、产生动作的触发条件以及候选项的产生等,输入法测试通过对输入过程中的各个部分进行校验,不完全依赖于候选项的校验来评价输入法性能,提高输入法测试的准确性,同时也提高测试用例的稳定性。同时,测试过程中通过虚拟的客户端对测试用例进行输入,并发送给输入法服务器。既可以实现输入法测试的自动化,又能解决输入法测试过程中用户界面展示带来的效率低下的问题。请参阅图6,本发明电子装置第一实施方式包括分类模块11、获取模块12以及测试用例生成模块13,其中分类模块11用于在输入法的预定状态下,对输入法所能响应的动作进行分类,并将分类后的动作输出给获取模块12 ;分类模块11对输入法预定状态下,输入法能响应的动作和/或由动作而产生的结果进行分类,并将分类后的动作和/或由动作而产生的结果输出给获取模块12。在输入法的预定状态下,对输入法所能响应的动作进行分类,同时也可以包括对动作产生的结果进行分类。输入法的预定状态可以是一种或两种以上的预定状态。比如但不限于是预输入状态、正常输入状态以及转换状态中的任意一种或者两种以上的状态。动作是指在输入法的预定状态下所能响应的用户的某些操作行为。通常在某个预定的输入法的预定状态下,仅能响应指定的某些动作。比如在预输入状态下或输入变换状态下,仅能响应如翻页、文节移动等动作。又比如在正常输入状态下,仅能响应如“Backspace”,“Cancel”,“Commit”,“Convert To Half Width” 等 33 种动作。而动作产生的结果是指输入法响应动作而产生的结果。比如响应动作“cancel”产生删除的结果,响应动作“convert To Full Alphanumeric”而产生转换到全字母的结果。其中,对输入法所能响应的动作进行分类是指针对输入法的预定状态下的动作按照动作的类型来进行分类。比如输入字符行为、选词行为、翻页行为、文节移动行为等等。获取模块12用于根据来自分类模块11的分类后的动作,获取分类后的每个动作对应的触发条件和/或输入法的预定状态跟随动作的变化而变化的情况,并输出给测试用例生成模块13 ;获取模块12获取经分类模块11分类后的每个动作对应的触发条件和/或输入的状态跟随动作的变化而变化的情况,将获取的每个动作对应的触发条件和/或输入法的预定状态跟随动作的变化而变化的情况输出给测试用例生成模块13。针对某一动作,可能不止一种触发条件,这时需要获取动作的所有触发条件。比如针对翻页这一动作,有“pgDn”、“ctrl+l”两种触发条件,则获取这两种触发条件。输入法的预定状态跟随动作的变化而变化的情况,是指某些动作导致输入法的预定状态发生变化的情况。比如转换状态下按esc能回到正常输入状态,正常输入状态下按下esc能回到预输入状态等等。测试用例生成模块13用于根据来自获取模块12的动作对应的触发条件和/或输入法的预定状态跟随动作的变化而变化的情况生成不同动作相应的测试用例。测试用例生成模块13根据动作对应的触发条件和/或输入法的预定状态跟随动作的变化而变化的情况生成不同动作对应的测试用例。根据动作对应的触发条件和输入法的预定状态跟随动作的变化而变化的情况,生成状态迁移图(即输入法的预定状态跟随动作变化而变化的情况)。可参阅图2,为本发明生成输入法测试用例的方法一实施方式中的其中一个状态迁移图的示意图。对不同的动作生成对应的不同的测试用例。比如翻页这一动作对应“pgDn”、“ctrl+l”两种触发条件,原始输入串为“a”、“ska”,则生成的测试用例分别为“(a{pgDn}, a{Ctrl+l}, ska {pgDn},ska{Ctrl+l})”。这里的原始输入串是指在预输入状态下产生的输入串。在设计输入法测试用例的时候,可以找到预输入状态下的一些特殊的输入串,与不同的状态设计不同的测试用例。请参阅图7,本发明电子装置第二实施方式包括抽取模块21、输入模块22以及校验模块23,其中抽取模块21用于抽取测试用例,测试用例是基于输入法的预定状态下动作的触发条件和/或输入法的预定状态跟随动作变化而变化的情况而产生的;抽取模块21抽取用于输入法测试的测试用例,抽取的测试用例是基于输入法的预定状态下动作的触发条件和/或输入法的预定状态跟随动作的变化而变化的情况而产生的。这里的测试用例是基于输入法的预定状态下动作的触发条件和/或输入法的预定状态跟随所述动作变化而变化的情况而产生的。其中,上述的测试用例是通过以下方式来得到在输入法的预定状态下,对输入法所能响应的动作进行分类,然后获取分类后的每个动作对应的触发条件和/或输入法的预定状态跟随动作的变化而变化的情况,再根据动作对应的触发条件和/或输入法的预定状态跟随动作的变化而变化的情况,生成不同动作相应的测试用例。输入模块22用于利用输入法对抽取模块21抽取的测试用例对应的字符进行输A ;输入模块22对抽取的测试用例对应的字符进行输入。输入模块22可以通过虚拟的客户端对抽取模块21抽取的测试用例对应的字符进行输入,并发送给输入法服务器。通常情况下,用户界面上显示的所有内容信息,比如候选项、候选项有多少页、输入法在什么状态等,在输入法测试的时候会有对应的xml文件生成。因此,通常情况下为了实现输入法测试的自动化,通常有两种方式1、模拟键盘输入,这种方式看起来就像有人在打字一样,以此来进行输入法测试,该过程有用户界面参与;2、将输入法处理的逻辑程序打包成压缩文件,通过提供一些字符串来触发,这样,虽然界面上没有输入,但是也产生相应的xml文件,也可以进行输入法测试。对于抽取的测试用例,利用输入法进行输入时可以采用上述两种方式的任意一种。在本发明实施方式中,输入模块22通过模拟(mock) —个虚拟的客户端(client)和输入法的服务器(server)进行进程间的通信,通过虚拟的客户端对测试用例对应的字符进行输入,并发送给输入法服务器。这样既可以实现输入法测试的自动化,又能解决输入法测试过程中用户界面展示带来的效率低下的问题。校验模块23用于对输入模块22的输入的过程进行校验,完成输入法测试。校验模块23对输入测试用例的过程进行校验,包括对输入过程的输入法的预定状态、输入法的预定状态下的动作、动作的触发条件以及候选项一一进行校验,所有的校验通过,则判断为输入法测试成功,完成输入法测试。请参阅图8,本发明电子装置第三实施方式中,校验模块包括第一校验单元111、第二校验单元112、第三校验单元113以及第四校验单元114,其中第一校验单元111用于对输入的过程中输入法的预定状态进行校验,输入法的预定状态通过校验时,发送对输入法的预定状态下的动作进行校验的指令给第二校验单元112 ;第一校验单元111通过判断输入的过程中输入法的预定状态与测试用例对应的输入法的预定状态是否一致来对输入法的预定状态进行校验。当输入法的预定状态与测试用例对应的输入法的预定状态一致时,判断为输入法的预定状态通过校验时,发送对输入法的预定状态下的动作进行校验的指令给第二校验单元112。否则,不发送对输入法的预定状态下的动作进行校验的指令。第二校验单元112用于对输入法的预定状态下的动作进行校验,当输入的状态下的动作通过校验时,发送对动作的触发条件进行校验的指令给第三校验单元113 ;第二校验单元112当第一校验单元111中的输入法的预定状态通过校验时,通过判断输入法的预定状态下的动作与测试用例相应的动作是否一致来对输入法的预定状态下的动作进行校验。当输入法的预定状态下的动作与测试用例相应的动作一致时,判断为输入法的预定状态下的动作通过校验,则发送对动作的触发条件进行校验的指令给第三校验单元113。否则,不发送对动作的触发条件进行校验的指令。第三校验单元113用于对动作的触发条件进行校验;
第三校验单元113当第二校验单元112中的输入法的预定状态下的动作通过校验时,通过判断动作的触发条件是否与测试用例中相应的动作的触发条件是否一致来对动作的触发条件进行校验。当动作的触发条件是否与测试用例中相应的动作的触发条件一致时,判断为动作的触发条件通过校验,则发送对候选项进行校验的指令给第四校验单元114。否则,不发送对候选项进行校验的指令。第四校验单元114用于采用自定义规则对候选项进行校验。第四校验单元114当第三校验单元113中对动作的触发条件通过校验时,通过判断候选项是否满足预定的要求来对候选项进行校验。当候选项满足预定的要求时,判断为候选项通过校验,输入法测试成功,完成输入法测试。否则,输入法测试失败,结束输入法测试。本发明的有益效果是区别于现有技术的情况,本发明生成输入法测试用例的方法,通过收集输入法的预定状态下动作的触发条件和/或输入法的预定状态跟随所述动作变化而变化的情况,针对不同的动作设计对应的测试用例,能够用较少的测试用例来大范围地覆盖用户实际按键输入的情况,提高测试用例的覆盖率;同时由于测试用例量少而准确,能够提高后续输入法测试的准确度。另一方面,利用生成的动作相应的测试用例对输入法进行测试中,通过对输入过程进行校验来完成输入法测试。而输入过程既包含输入法的预定状态、在预定状态下的动作、产生动作的触发条件以及候选项的产生等,输入法测试通过对输入过程中的各个部分进行校验,不完全依赖于候选项的校验来评价输入法性能,提高输入法测试的准确性,同时也提高测试用例的稳定性。同时,测试过程中通过虚拟的客户端对测试用例进行输入,并发送给输入法服务器。既可以实现输入法测试的自动化,又能解决输入法测试过程中用户界面展示带来的效率低下的问题。在本发明所提供的几个实施方式中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的功能模块可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明方案的目的。另外,在本发明各个实施方式中的各功能模块可以集成在一个处理单元中,也可以是各个功能模块单独物理存在,也可以两个或两个以上功能模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种生成输入法测试用例的方法,其特征在于,包括 在所述输入法的预定状态下,对所述输入法所能响应的动作进行分类; 获取分类后的每个所述动作对应的触发条件以及所述输入法的预定状态跟随所述动作的变化而变化的情况; 根据所述动作对应的触发条件和/或所述输入法的预定状态跟随所述动作的变化而变化的情况生成不同动作相应的测试用例。
2.根据权利要求I所述的方法,其特征在于,所述在输入法的预定状态下,对所述输入法所能响应的动作进行分类的步骤包括 在所述输入法的预定状态下,对所述输入法所能响应的动作以及由所述动作产生的结果进行分类。
3.根据权利要求I所述的方法,其特征在于,所述在输入法的预定状态下,对所述输入法所能响应的动作进行分类的步骤包括 在所述输入法的预输入状态、正常输入状态以及转换状态中的至少一种预定状态下,对所述输入法所能响应的动作进行分类。
4.一种输入法测试方法,其特征在于,包括 抽取测试用例,所述测试用例是基于输入法的预定状态下动作的触发条件和/或输入法的预定状态跟随所述动作变化而变化的情况而产生的; 利用所述输入法对所述测试用例对应的字符进行输入; 对所述输入的过程进行校验,完成所述输入法测试。
5.根据权利要求4所述的方法,其特征在于,所述对输入的过程进行校验,完成输入法测试的步骤包括 对所述输入的过程中输入法的预定状态进行校验; 若对所述输入法状态的校验通过,则对所述输入法的预定状态下的动作进行校验; 若对所述动作的校验通过,则对所述动作的触发条件进行校验; 若对所述触发条件的校验通过,则采用自定义规则对输入所述测试用例对应的字符所产生的候选项进行校验; 若对所述候选项的校验通过,则判断为所述输入法测试成功,完成所述输入法测试。
6.根据权利要求5所述的方法,其特征在于,所述对输入过程中输入法的预定状态进行校验的步骤包括 判断所述输入过程的输入法的预定状态跟所述测试用例对应的输入法状态是否一致; 若所述输入过程中输入法的预定状态跟所述测试用例对应的输入法的预定状态一致,则判断为所述输入法的预定状态通过校验,否则,判断为所述输入法测试失败,结束输入法测试。
7.根据权利要求5所述的方法,其特征在于,所述对输入法的预定状态下的动作进行校验的步骤包括 判断所述输入法的预定状态下的动作与所述测试用例对应的动作是否一致; 若所述输入法的预定状态下的动作与所述测试用例对应的动作一致,则判断为所述动作的校验通过,否则,判断为所述输入法测试失败,结束输入法测试。
8.根据权利要求5所述的方法,其特征在于,所述对动作的触发条件进行校验的步骤包括 判断所述动作的触发条件与所述测试用例对应的动作的触发条件是否一致; 若所述动作的触发条件与所述测试用例对应的动作的触发条件一致,则判断为动作的触发条件的校验通过,否则,判断为所述输入法测试失败,结束所述输入法测试。
9.根据权利要求5所述的方法,其特征在于,所述采用自定义规则对候选项进行校验的步骤包括 抽取预定的上下文,对所述预定的上下文对应的指定字符串进行输入,判断每输入一个指定字符串所产生的候选项的第四位是否为颜文字; 若所述每输入一个指定字符串所产生的候选项的第四位不是颜文字,则判断为所述输入法测试失败,结束所述输入法测试;若所述每输入一个指定字符串所产生的候选项的第四位是颜文字,则判断为所述输入法测试成功,完成所述输入法测试。
10.根据权利要求5所述的方法,其特征在于,所述采用自定义规则对候选项进行校验的步骤包括 抽取预定的上下文; 对所述预定的上下文对应的指定字符串进行输入,判断当完成上文的候选输出后接着输入下文对应的指定字符串时,所产生的候选项的首选是否是所述指定的下文; 如果所述接着输入下文对应的指定字符串所产生的候选项的首选是所述指定的下文,则判断为所述输入法测试成功,完成所述输入法测试,否则,则判断为所述输入法测试失败,结束所述输入法测试。
11.根据权利要求5-10任一项所述的方法,其特征在于,所述利用输入法对所述测试用例对应的字符进行输入的步骤包括 利用所述输入法,通过虚拟的客户端对所述测试用例对应的字符进行输入,并发送给输入法服务器。
12.一种电子装置,其特征在于,包括分类模块、获取模块以及测试用例生成模块,其中 所述分类模块用于在所述输入法的预定状态下,对所述输入法所能响应的动作进行分类,并将分类后的所述动作输出给所述获取模块; 所述获取模块用于根据来自分类模块的分类后的所述动作,获取分类后的每个所述动作对应的触发条件和/或所述输入法的预定状态跟随所述动作的变化而变化的情况并输出给所述测试用例生成模块; 所述测试用例生成模块用于根据来自所述获取模块的所述动作对应的触发条件以及所述输入法的预定状态跟随所述动作的变化而变化的情况生成不同动作相应的测试用例。
13.根据权利要求12所述的装置,其特征在于,所述分类模块具体用于在所述输入法的预输入状态、正常输入状态以及转换状态中的至少一种预定状态下,对所述输入法所能响应的动作进行分类,并将分类后的所述动作输出给所述获取模块。
14.一种电子装置,其特征在于,包括抽取模块、输入模块以及校验模块,其中 所述抽取模块用于抽取测试用例,所述测试用例是基于输入法的预定状态下动作的触发条件以及输入法的预定状态跟随所述动作变化而变化的情况而产生的;所述输入模块用于利用输入法对所述抽取模块抽取的所述测试用例对应的字符进行输入; 所述校验模块用于对所述输入模块的所述输入的过程进行校验,完成输入法测试。
15.根据权利要求14所述的装置,其特征在于,所述校验模块包括第一校验单元、第二校验单元、第三校验单元以及第四校验单元,其中 所述第一校验单元用于对所述输入的过程中输入法的预定状态进行校验,当输入法的预定状态通过校验时,发送对所述输入法的预定状态下的动作进行校验的指令给所述第二校验单元; 所述第二校验单元用于对所述输入法的预定状态下的动作进行校验,当输入的状态下的动作通过校验时,发送对所述动作的触发条件进行校验的指令给所述第三校验单元; 所述第三校验单元用于对所述动作的触发条件进行校验,当动作的触发条件通过校验时,发送对候选项进行校验的指令给所述第四校验单元; 所述第四校验单元用于采用自定义规则对所述候选项进行校验。
16.根据权利要求15所述的装置,其特征在于, 所述第一校验单元具体用于通过判断所述输入的过程中输入法的预定状态与所述测试用例对应的输入法的预定状态是否一致来对所述输入法的预定状态进行校验,当所述输入的过程中输入法的预定状态与所述测试用例对应的输入法的预定状态一致时,判断为所述输入法的预定状态通过校验时,发送对输入法的预定状态下的动作进行校验的指令给所述第二校验单元,否则,不发送所述对输入法的预定状态下的动作进行校验的指令; 所述第二校验单元具体用于响应来自第一校验单元的所述对输入法的预定状态下的动作进行校验的指令,通过判断所述输入法的预定状态下的动作与所述测试用例相应的动作是否一致来对所述输入法的预定状态下的动作进行校验,当所述输入法的预定状态下的动作与所述测试用例相应的动作一致,判断为所述输入法的预定状态下的动作通过校验,则发送对动作的触发条件进行校验的指令给所述第三校验单元,否则,不发送所述对动作的触发条件进行校验的指令; 所述第三校验单元具体用于响应来自第二校验单元的所述对动作的触发条件进行校验的指令,通过判断所述动作的触发条件与所述测试用例中相应的动作的触发条件是否一致来对所述动作的触发条件进行校验,当所述动作的触发条件与所述测试用例中相应的动作的触发条件一致,判断为所述动作的触发条件通过校验,则发送对候选项进行校验的指令给第四校验单元,否则,不发送所述对候选项进行校验的指令; 所述第四校验单元具体用于响应来自所述第三校验单元的对候选项进行校验的指令,通过判断所述候选项是否满足预定的要求来对所述候选项进行校验,当候选项满足预订的要求,判断为候选项通过校验,输入法测试成功,完成输入法测试,否则,输入法测试失败,结束输入法测试。
17.根据权利要求14所述的装置,其特征在于,所述输入模块具体用于利用所述输入法,通过虚拟的客户端对所述抽取模块抽取的测试用例对应的字符进行输入,并将所述测试用例对应的字符发送给所述输入法服务器。
全文摘要
本发明公开了一种输入法测试方法、生成测试用例的方法及装置。其中,生成测试用例的方法包括在输入法的预定状态下,对输入法所能响应的动作进行分类,输入法的预定状态的状态数量至少为两个;获取分类后的每个动作对应的触发条件和/或输入法的预定状态跟随动作的变化而变化的情况;根据动作对应的触发条件和/或输入法的预定状态跟随动作的变化而变化的情况生成不同动作相应的测试用例。通过上述方式,本发明能够使获取的测试用例大范围的覆盖用户实际按键输入,提高测试用例的覆盖率。
文档编号G06F11/263GK102981938SQ20121045860
公开日2013年3月20日 申请日期2012年11月15日 优先权日2012年11月15日
发明者江桂华 申请人:百度国际科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1