欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

輸入法測(cè)試方法、生成測(cè)試用例的方法及電子裝置的制作方法

文檔序號(hào):6381326閱讀:166來源:國知局
專利名稱:輸入法測(cè)試方法、生成測(cè)試用例的方法及電子裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及輸入法領(lǐng)域,特別是涉及輸入法測(cè)試方法、生成測(cè)試用例的方法及電
子裝置。
背景技術(shù)
輸入法是指為了將各種符號(hào)輸入計(jì)算機(jī)或其他設(shè)備(如手機(jī))而采用的編碼方法。輸入法性能的評(píng)價(jià)通常采用輸入法測(cè)試方法來完成。目前一般的輸入法測(cè)試都是采用輸入輸出測(cè)試用例來進(jìn)行校驗(yàn)。比如輸入一個(gè)字符串,查看根據(jù)輸入的字符串所產(chǎn)生的候選內(nèi)容是否正確等。由此可見,測(cè)試用例是輸入法測(cè)試的核心所在。設(shè)置合理的測(cè)試用例能夠有效地提高輸入法測(cè)試的效率和保證輸入法測(cè)試結(jié)果的準(zhǔn)確性。本發(fā)明申請(qǐng)人在長(zhǎng)期的研究中發(fā)現(xiàn),現(xiàn)有的測(cè)試用例的獲取至少存在以下不足采用隨機(jī)的按鍵得到的測(cè)試用例無法完全覆蓋輸入法中所有的按鍵產(chǎn)生的情況;而如果根據(jù)功能設(shè)計(jì)有限的測(cè)試用例,同樣也面臨設(shè)計(jì)不全的問題。而且采用這些測(cè)試用例進(jìn)行輸入法測(cè)試時(shí),往往是基于候選項(xiàng)來進(jìn)行對(duì)比,單純的通過候選項(xiàng)的校驗(yàn)來評(píng)價(jià)輸入法的性能,對(duì)輸入法測(cè)試結(jié)果不夠準(zhǔn)確。

發(fā)明內(nèi)容
本發(fā)明主要解決的技術(shù)問題是提供一種輸入法測(cè)試方法、生成測(cè)試用例的方法及電子裝置,獲取的測(cè)試用例的覆蓋率大,既能夠提高后續(xù)輸入法測(cè)試的準(zhǔn)確性,同時(shí)也能提高測(cè)試用例的穩(wěn)定性。為解決上述技術(shù)問題,本發(fā)明采用的一個(gè)技術(shù)方案是提供一種生成輸入法測(cè)試用例的方法,包括在所述輸入法的預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類;獲取分類后的每個(gè)所述動(dòng)作對(duì)應(yīng)的觸發(fā)條件以及所述輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作的變化而變化的情況;根據(jù)所述動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或所述輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作的變化而變化的情況生成不同動(dòng)作相應(yīng)的測(cè)試用例。其中,所述在輸入法的預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類的步驟包括在所述輸入法的預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作以及由所述動(dòng)作產(chǎn)生的結(jié)果進(jìn)行分類。其中,所述在輸入法的預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類的步驟包括在所述輸入法的預(yù)輸入狀態(tài)、正常輸入狀態(tài)以及轉(zhuǎn)換狀態(tài)中的至少一種預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類。為解決上述技術(shù)問題,本發(fā)明采用的另一個(gè)技術(shù)方案是提供一種輸入法測(cè)試方法,包括抽取測(cè)試用例,所述測(cè)試用例是基于輸入法的預(yù)定狀態(tài)下動(dòng)作的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作變化而變化的情況而產(chǎn)生的;利用所述輸入法對(duì)所述測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入;對(duì)所述輸入的過程進(jìn)行校驗(yàn),完成所述輸入法測(cè)試。其中,所述對(duì)輸入的過程進(jìn)行校驗(yàn),完成輸入法測(cè)試的步驟包括所述輸入的過程中輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn);若對(duì)所述輸入法狀態(tài)的校驗(yàn)通過,則對(duì)所述輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn);若對(duì)所述動(dòng)作的校驗(yàn)通過,則對(duì)所述動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn);若對(duì)所述觸發(fā)條件的校驗(yàn)通過,則采用自定義規(guī)則對(duì)輸入所述測(cè)試用例對(duì)應(yīng)的字符所產(chǎn)生的候選項(xiàng)進(jìn)行校驗(yàn);若對(duì)所述候選項(xiàng)的校驗(yàn)通過,則判斷為所述輸入法測(cè)試成功,完成所述輸入法測(cè)試。其中,所述對(duì)輸入過程中輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn)的步驟包括判斷所述輸入過程的輸入法的預(yù)定狀態(tài)跟所述測(cè)試用例對(duì)應(yīng)的輸入法狀態(tài)是否一致;若所述輸入過程中輸入法的預(yù)定狀態(tài)跟所述測(cè)試用例對(duì)應(yīng)的輸入法的預(yù)定狀態(tài)一致,則判斷為所述輸入法的預(yù)定狀態(tài)通過校驗(yàn),否則,判斷為所述輸入法測(cè)試失敗,結(jié)束輸入法測(cè)試。其中,所述對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的步驟包括判斷所述輸入法的預(yù)定狀態(tài)下的動(dòng)作與所述測(cè)試用例對(duì)應(yīng)的動(dòng)作是否一致;若所述輸入法的預(yù)定狀態(tài)下的動(dòng)作與所述測(cè)試用例對(duì)應(yīng)的動(dòng)作一致,則判斷為所述動(dòng)作的校驗(yàn)通過,否則,判斷為所述輸入法測(cè)試失敗,結(jié)束輸入法測(cè)試。其中,所述對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的步驟包括判斷所述動(dòng)作的觸發(fā)條件與所述測(cè)試用例對(duì)應(yīng)的動(dòng)作的觸發(fā)條件是否一致;若所述動(dòng)作的觸發(fā)條件與所述測(cè)試用例對(duì)應(yīng)的動(dòng)作的觸發(fā)條件一致,則判斷為動(dòng)作的觸發(fā)條件的校驗(yàn)通過,否則,判斷為所述輸入法測(cè)試失敗,結(jié)束所述輸入法測(cè)試。其中,所述采用自定義規(guī)則對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的步驟包括抽取預(yù)定的上下文,對(duì)所述預(yù)定的上下文對(duì)應(yīng)的指定字符串進(jìn)行輸入,判斷每輸入一個(gè)指定字符串所產(chǎn)生的候選項(xiàng)的第四位是否為顏文字;若所述每輸入一個(gè)指定字符串所產(chǎn)生的候選項(xiàng)的第四位不是顏文字,則判斷為所述輸入法測(cè)試失敗,結(jié)束所述輸入法測(cè)試;若所述每輸入一個(gè)指定字符串所產(chǎn)生的候選項(xiàng)的第四位是顏文字,則判斷為輸入法測(cè)試成功,完成輸入法測(cè)試。其中,所述采用自定義規(guī)則對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的步驟包括抽取預(yù)定的上下文;對(duì)所述預(yù)定的上下文對(duì)應(yīng)的指定字符串進(jìn)行輸入,判斷當(dāng)完成上文的候選輸出后接著輸入下文對(duì)應(yīng)的指定字符串時(shí),所產(chǎn)生的候選項(xiàng)的首選是否是所述指定的下文;如果所述接著輸入下文對(duì)應(yīng)的指定字符串所產(chǎn)生的候選項(xiàng)的首選是所述指定的下文,則判斷為所述輸入法測(cè)試成功,完成所述輸入法測(cè)試,否則,則判斷為所述輸入法測(cè)試失敗,結(jié)束所述輸入法測(cè)試。其中,所述利用輸入法對(duì)所述測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入的步驟包括利用所述輸入法,通過虛擬的客戶端對(duì)所述測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入,并發(fā)送給輸入法服務(wù)器。為解決上述技術(shù)問題,本發(fā)明采用的另一個(gè)技術(shù)方案是包括分類模塊、獲取模塊以及測(cè)試用例生成模塊,其中所述分類模塊用于在所述輸入法的預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類,并將分類后的所述動(dòng)作輸出給所述獲取模塊;所述獲取模塊用于根據(jù)來自分類模塊的分類后的所述動(dòng)作,獲取分類后的每個(gè)所述動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或所述輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作的變化而變化的情況并輸出給所述測(cè)試用例生成模塊;所述測(cè)試用例生成模塊用于根據(jù)來自所述獲取模塊的所述動(dòng)作對(duì)應(yīng)的觸發(fā)條件以及所述輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作的變化而變化的情況生成不同動(dòng)作相應(yīng)的測(cè)試用例。
其中,所述分類模塊具體用于在所述輸入法的預(yù)輸入狀態(tài)、正常輸入狀態(tài)以及轉(zhuǎn)換狀態(tài)中的至少一種預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類,并將分類后的所述動(dòng)作輸出給所述獲取模塊。為解決上述技術(shù)問題,本發(fā)明采用的另一個(gè)技術(shù)方案是包括抽取模塊、輸入模塊以及校驗(yàn)?zāi)K,其中所述抽取模塊用于抽取測(cè)試用例,所述測(cè)試用例是基于輸入法的預(yù)定狀態(tài)下動(dòng)作的觸發(fā)條件以及輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作變化而變化的情況而產(chǎn)生的;所述輸入模塊用于利用輸入法對(duì)所述抽取模塊抽取的所述測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入;所述校驗(yàn)?zāi)K用于對(duì)所述輸入模塊的所述輸入的過程進(jìn)行校驗(yàn),完成輸入法測(cè)試。其中,所述校驗(yàn)?zāi)K包括第一校驗(yàn)單元、第二校驗(yàn)單元、第三校驗(yàn)單元以及第四校驗(yàn)單元,其中所述第一校驗(yàn)單元用于對(duì)所述輸入的過程中輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn),當(dāng)輸入法的預(yù)定狀態(tài)通過校驗(yàn)時(shí),發(fā)送對(duì)所述輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的指令給所述第二校驗(yàn)單元;所述第二校驗(yàn)單元用于對(duì)所述輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn),當(dāng)輸入的狀態(tài)下的動(dòng)作通過校驗(yàn)時(shí),發(fā)送對(duì)所述動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的指令給所述第三校驗(yàn)單元;所述第三校驗(yàn)單元用于對(duì)所述動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn),當(dāng)動(dòng)作的觸發(fā)條件通過校驗(yàn)時(shí),發(fā)送對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的指令給所述第四校驗(yàn)單元;所述第四校驗(yàn)單元用于采用自定義規(guī)則對(duì)所述候選項(xiàng)進(jìn)行校驗(yàn)。其中,所述第一校驗(yàn)單元具體用于通過判斷所述輸入的過程中輸入法的預(yù)定狀態(tài)與所述測(cè)試用例對(duì)應(yīng)的輸入法的預(yù)定狀態(tài)是否一致來對(duì)所述輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn),當(dāng)所述輸入的過程中輸入法的預(yù)定狀態(tài)與所述測(cè)試用例對(duì)應(yīng)的輸入法的預(yù)定狀態(tài)一致時(shí),判斷為所述輸入法的預(yù)定狀態(tài)通過校驗(yàn)時(shí),發(fā)送對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的指令給所述第二校驗(yàn)單元,否則,不發(fā)送所述對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的指令;所述第二校驗(yàn)單元具體用于響應(yīng)來自第一校驗(yàn)單元的所述對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的指令,通過判斷所述輸入法的預(yù)定狀態(tài)下的動(dòng)作與所述測(cè)試用例相應(yīng)的動(dòng)作是否一致來對(duì)所述輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn),當(dāng)所述輸入法的預(yù)定狀態(tài)下的動(dòng)作與所述測(cè)試用例相應(yīng)的動(dòng)作一致,判斷為所述輸入法的預(yù)定狀態(tài)下的動(dòng)作通過校驗(yàn),則發(fā)送對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的指令給所述第三校驗(yàn)單元,否則,不發(fā)送所述對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的指令;所述第三校驗(yàn)單元具體用于響應(yīng)來自第二校驗(yàn)單元的所述對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的指令,通過判斷所述動(dòng)作的觸發(fā)條件與所述測(cè)試用例中相應(yīng)的動(dòng)作的觸發(fā)條件是否一致來對(duì)所述動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn),當(dāng)所述動(dòng)作的觸發(fā)條件與所述測(cè)試用例中相應(yīng)的動(dòng)作的觸發(fā)條件一致,判斷為所述動(dòng)作的觸發(fā)條件通過校驗(yàn),則發(fā)送對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的指令給第四校驗(yàn)單元,否則,不發(fā)送所述對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的指令;所述第四校驗(yàn)單元具體用于響應(yīng)來自所述第三校驗(yàn)單元的對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的指令,通過判斷所述候選項(xiàng)是否滿足預(yù)定的要求來對(duì)所述候選項(xiàng)進(jìn)行校驗(yàn),當(dāng)候選項(xiàng)滿足預(yù)訂的要求,判斷為候選項(xiàng)通過校驗(yàn),輸入法測(cè)試成功,完成輸入法測(cè)試,否則,輸入法測(cè)試失敗,結(jié)束輸入法測(cè)試。其中,所述輸入模塊具體用于利用所述輸入法,通過虛擬的客戶端對(duì)所述抽取模塊抽取的測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入,并將所述測(cè)試用例對(duì)應(yīng)的字符發(fā)送給所述輸入法服務(wù)器。本發(fā)明的有益效果是區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明通過輸入法的預(yù)定狀態(tài)下動(dòng)作的觸發(fā)條件以及輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作變化而變化的情況設(shè)計(jì)對(duì)應(yīng)的測(cè)試用例。由于是將用戶的輸入過程拆分為基本的多種輸入法的預(yù)定狀態(tài),通過收集輸入法預(yù)定狀態(tài)下的動(dòng)作和/或動(dòng)作的觸發(fā)條件來生成動(dòng)作相應(yīng)的測(cè)試用例,用較少的測(cè)試用例來大范圍地覆蓋用戶實(shí)際按鍵輸入的情況,提高測(cè)試用例的覆蓋率;同時(shí)由于測(cè)試用例量少而準(zhǔn)確,能夠提高后續(xù)輸入法測(cè)試的準(zhǔn)確度。此外,利用獲取的測(cè)試用例進(jìn)行輸入法測(cè)試中,通過對(duì)輸入過程進(jìn)行校驗(yàn)來完成輸入法測(cè)試。而輸入過程既包含輸入法的預(yù)定狀態(tài)、在預(yù)定狀態(tài)下的動(dòng)作、產(chǎn)生動(dòng)作的觸發(fā)條件以及候選項(xiàng)的產(chǎn)生等,對(duì)輸入過程進(jìn)行校驗(yàn)通過對(duì)過程中的各個(gè)部分進(jìn)行校驗(yàn),不完全依賴于候選項(xiàng)的校驗(yàn)來評(píng)價(jià)輸入法性能,提高輸入法測(cè)試的準(zhǔn)確性,同時(shí)也提高測(cè)試用例的穩(wěn)定性。


圖I是本發(fā)明生成輸入法測(cè)試用例的方法一實(shí)施方式的流程圖;圖2是本發(fā)明生成輸入法測(cè)試用例的方法一實(shí)施方式中狀態(tài)遷移圖的示意圖;圖3是本發(fā)明輸入法測(cè)試方法一實(shí)施方式的流程圖;圖4是本發(fā)明輸入法測(cè)試方法一實(shí)施方式中對(duì)輸入的過程進(jìn)行校驗(yàn)的流程圖;圖5是某一輸入法下候選界面的示意圖;圖6是本發(fā)明電子裝置第一實(shí)施方式的結(jié)構(gòu)示意圖;圖7是本發(fā)明電子裝置第二實(shí)施方式的結(jié)構(gòu)示意圖;圖8是本發(fā)明電子裝置第三實(shí)施方式中校驗(yàn)?zāi)K的結(jié)構(gòu)示意圖。
具體實(shí)施例方式參閱圖1,本發(fā)明生成輸入法測(cè)試用例的方法一實(shí)施方式包括步驟SlOl :在輸入法的預(yù)定狀態(tài)下,對(duì)輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類;在輸入法的預(yù)定狀態(tài)下,對(duì)輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類,同時(shí)也可以包括對(duì)動(dòng)作產(chǎn)生的結(jié)果進(jìn)行分類。輸入法的預(yù)定狀態(tài)可以是一種或兩種以上的預(yù)定狀態(tài)。比如但不限于是預(yù)輸入狀態(tài)、正常輸入狀態(tài)以及轉(zhuǎn)換狀態(tài)中的任意一種或者兩種以上的狀態(tài)。動(dòng)作是指在輸入法的預(yù)定狀態(tài)下所能響應(yīng)的用戶的某些操作行為。通常在某個(gè)預(yù)定的輸入法的預(yù)定狀態(tài)下,僅能響應(yīng)指定的某些動(dòng)作。比如在預(yù)輸入狀態(tài)下或輸入變換狀態(tài)下,僅能響應(yīng)如翻頁、文節(jié)移動(dòng)等動(dòng)作。又比如在正常輸入狀態(tài)下,僅能響應(yīng)如“Backspace”,“Cancel”,“Commit”,“Convert To Half Width” 等 33 種動(dòng)作。而動(dòng)作產(chǎn)生的結(jié)果是指輸入法響應(yīng)動(dòng)作而產(chǎn)生的結(jié)果。比如響應(yīng)動(dòng)作“cancel”產(chǎn)生刪除的結(jié)果,響應(yīng)動(dòng)作“convert To Full Alphanumeric”而產(chǎn)生轉(zhuǎn)換到全字母的結(jié)果。其中,對(duì)輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類是指針對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作按照動(dòng)作的類型來進(jìn)行分類。比如輸入字符行為、選詞行為、翻頁行為、文節(jié)移動(dòng)行為等等。步驟S102 :獲取分類后的每個(gè)動(dòng)作對(duì)應(yīng)的觸發(fā)條件及輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況;獲取分類后的每個(gè)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而發(fā)生變化的情況。針對(duì)某一動(dòng)作,可能不止一種觸發(fā)條件,這時(shí)需要獲取動(dòng)作的所有觸發(fā)條件。比如針對(duì)翻頁這一動(dòng)作,有“pgDn”、“ctrl+l”兩種觸發(fā)條件,則獲取這兩種觸發(fā)條件。輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況,是指某些動(dòng)作導(dǎo)致輸入法的預(yù)定狀態(tài)發(fā)生變化的情況。比如轉(zhuǎn)換狀態(tài)下按esc能回到正常輸入狀態(tài),正常輸入狀態(tài)下按下esc能回到預(yù)輸入狀態(tài)等等。步驟S103 :根據(jù)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況,生成不同動(dòng)作相應(yīng)的測(cè)試用例;根據(jù)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況,生成狀態(tài)遷移圖(即輸入法的預(yù)定狀態(tài)跟隨動(dòng)作變化而變化的情況)??蓞㈤唸D2,為本發(fā)明生成輸入法測(cè)試用例的方法一實(shí)施方式中的其中一個(gè)狀態(tài)遷移圖的示意圖。對(duì)不同的動(dòng)作生成對(duì)應(yīng)的不同的測(cè)試用例。比如翻頁這一動(dòng)作對(duì)應(yīng)“pgDn”、“ctrl+l”兩種觸發(fā)條件,原始輸入串為“a”、“ska”,則生成的測(cè)試用例分別為“(a{pgDn}, a{Ctrl+l}, ska{pgDn},ska{Ctrl+l})”。這里的原始輸入串是指在預(yù)輸入狀態(tài)下產(chǎn)生的輸入串。在設(shè)計(jì)輸入法測(cè)試用例的時(shí)候,可以找到預(yù)輸入狀態(tài)下的一些特殊的輸入串,與不同的狀態(tài)設(shè)計(jì)不同的測(cè)試用例。通過上述實(shí)施方式的闡述,可以理解,本發(fā)明生成輸入法測(cè)試用例的方法,通過收集輸入法的預(yù)定狀態(tài)下動(dòng)作的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作變化而變化的情況,針對(duì)不同的動(dòng)作設(shè)計(jì)對(duì)應(yīng)的測(cè)試用例,能夠用較少的測(cè)試用例來大范圍地覆蓋用戶實(shí)際按鍵輸入的情況,提高測(cè)試用例的覆蓋率;同時(shí)由于測(cè)試用例量少而準(zhǔn)確,能夠提高后續(xù)輸入法測(cè)試的準(zhǔn)確度。請(qǐng)參閱圖3,本發(fā)明輸入法測(cè)試方法一實(shí)施方式包括步驟S201 :抽取測(cè)試用例;抽取測(cè)試用例,這里的測(cè)試用例是基于輸入法的預(yù)定狀態(tài)下動(dòng)作的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作變化而變化的情況而產(chǎn)生的。其中,上述的測(cè)試用例是通過以下方式來得到在輸入法的預(yù)定狀態(tài)下,對(duì)輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類,然后獲取分類后的每個(gè)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況,再根據(jù)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況,生成不同動(dòng)作相應(yīng)的測(cè)試用例。步驟S202 :利用輸入法對(duì)測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入;通常情況下,用戶界面上顯示的所有內(nèi)容信息,比如候選項(xiàng)、候選項(xiàng)有多少頁、輸入法在什么狀態(tài)等,在輸入法測(cè)試的時(shí)候會(huì)有對(duì)應(yīng)的xml文件生成。因此,通常情況下為了實(shí)現(xiàn)輸入法測(cè)試的自動(dòng)化,通常有兩種方式1、模擬鍵盤輸入,這種方式看起來就像有人在打字一樣,以此來進(jìn)行輸入法測(cè)試,該過程有用戶界面參與;2、將輸入法處理的邏輯程序打包成壓縮文件,通過提供一些字符串來觸發(fā),這樣,雖然界面上沒有輸入,但是也產(chǎn)生相應(yīng)的xml文件,也可以進(jìn)行輸入法測(cè)試。對(duì)于抽取的測(cè)試用例,利用輸入法進(jìn)行輸入時(shí)可以采用上述兩種方式的任意一種。在本發(fā)明實(shí)施方式中,通過模擬(mock) —個(gè)虛擬的客戶端(client)和輸入法的服務(wù)器(server)進(jìn)行進(jìn)程間的通信,通過虛擬的客戶端對(duì)測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入,并發(fā)送給輸入法服務(wù)器。這樣既可以實(shí)現(xiàn)輸入法測(cè)試的自動(dòng)化,又能解決輸入法測(cè)試過程中用戶界面展示帶來的效率低下的問題。
步驟S203 :對(duì)輸入的過程進(jìn)行校驗(yàn),完成輸入法測(cè)試;對(duì)輸入測(cè)試用例的過程進(jìn)行校驗(yàn),包括對(duì)輸入過程的輸入法的預(yù)定狀態(tài)、輸入法的預(yù)定狀態(tài)下的動(dòng)作、動(dòng)作的觸發(fā)條件以及候選項(xiàng)一一進(jìn)行校驗(yàn),所有的校驗(yàn)通過,則判斷為輸入法測(cè)試成功,完成輸入法測(cè)試。具體地,請(qǐng)參閱圖4,對(duì)輸入的過程進(jìn)行校驗(yàn)包括以下子步驟子步驟S301 :對(duì)輸入的過程中輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn);在輸入測(cè)試用例的過程中,對(duì)輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn),如果校驗(yàn)結(jié)果為輸入法的預(yù)定狀態(tài)通過校驗(yàn),則進(jìn)行子步驟S302 ;否則,進(jìn)行子步驟S306。對(duì)輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn),是通過判斷輸入過程的輸入法的預(yù)定狀態(tài)跟測(cè)試用例對(duì)應(yīng)的輸入法狀態(tài)是否一致來實(shí)現(xiàn)的。若輸入過程的輸入法狀態(tài)跟測(cè)試用例對(duì)應(yīng)的輸入法狀態(tài)一致,則判斷為輸入法的預(yù)定狀態(tài)通過校驗(yàn),進(jìn)行子步驟S302。否則,判斷為輸入法的預(yù)定狀態(tài)沒通過校驗(yàn),進(jìn)行子步驟S306。子步驟S302 :對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn);如果輸入過程的輸入法的預(yù)定狀態(tài)通過校驗(yàn),則對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)。如果校驗(yàn)結(jié)果為輸入法的預(yù)定狀態(tài)下的動(dòng)作通過校驗(yàn),則進(jìn)行子步驟S303,否則,進(jìn)行子步驟S306。對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)是通過判斷輸入法的預(yù)定狀態(tài)下的動(dòng)作與測(cè)試用例對(duì)應(yīng)的動(dòng)作是否一致,若輸入法狀態(tài)下的動(dòng)作與測(cè)試用例對(duì)應(yīng)的動(dòng)作一致,則判斷為動(dòng)作通過校驗(yàn),進(jìn)行子步驟S303。否則,判斷為動(dòng)作沒通過校驗(yàn),進(jìn)行子步驟S306。子步驟S303 :對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn);如果動(dòng)作通過校驗(yàn),則對(duì)動(dòng)作相應(yīng)的觸發(fā)條件進(jìn)行校驗(yàn),如果校驗(yàn)結(jié)果為動(dòng)作的觸發(fā)條件通過校驗(yàn),則進(jìn)行子步驟S304,否則,進(jìn)行子步驟S306。對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)是通過判斷動(dòng)作的觸發(fā)條件與測(cè)試用例對(duì)應(yīng)的動(dòng)作的觸發(fā)條件是否一致,若動(dòng)作的觸發(fā)條件與測(cè)試用例對(duì)應(yīng)的動(dòng)作的觸發(fā)條件一致,則判斷為動(dòng)作的觸發(fā)條件通過校驗(yàn),進(jìn)行子步驟S304。否則,判斷為動(dòng)作沒通過校驗(yàn),進(jìn)行子步驟S306。子步驟S304 :采用自定義規(guī)則對(duì)候選項(xiàng)進(jìn)行校驗(yàn);如果動(dòng)作通過校驗(yàn),則采用自定義規(guī)則對(duì)候選項(xiàng)進(jìn)行校驗(yàn),如果校驗(yàn)結(jié)果為候選項(xiàng)通過校驗(yàn),則進(jìn)行子步驟S305,否則,進(jìn)行子步驟S306。在本發(fā)明實(shí)施方式中,采用自定義規(guī)則對(duì)候選項(xiàng)進(jìn)行校驗(yàn)可以有兩種方式第一種方式通過抽取預(yù)定的上下文,對(duì)該抽取的預(yù)定的上下文對(duì)應(yīng)的指定字符串進(jìn)行輸入,判斷每輸入一個(gè)指定字符串,候選項(xiàng)的第四位是否為顏文字,若候選項(xiàng)的第四位不是顏文字,則判斷為候選項(xiàng)沒通過校驗(yàn),進(jìn)行子步驟S306 ;指定字符串是指抽取的上下文對(duì)應(yīng)的相應(yīng)的字符串。比如抽取的是“大家”,則指定的字符串即為“dajia”。這里的顏文字是指用文字或各種線條、符號(hào)等組成的圖畫,它是ASCII Art的一部分。比如如圖5所述的為某一輸入法下輸入“him”后對(duì)應(yīng)的界面示意圖,其對(duì)應(yīng)的第五位和第九位的候選即為顏文字。若候選項(xiàng)的第四位是顏文字,則判斷為候選項(xiàng)通過校驗(yàn),進(jìn)行子步驟S305,否則,則判斷為候選項(xiàng)沒通過校驗(yàn),進(jìn)行子步驟S306。第二種方式通過抽取預(yù)定的上下文,對(duì)該抽取的預(yù)定的上下文對(duì)應(yīng)的指定字符串進(jìn)行輸入,判斷當(dāng)完成上文的候選輸出后接著輸入下文對(duì)應(yīng)的字符時(shí),所產(chǎn)生的候選項(xiàng)的首選是否是指定的下文,如果接著輸入下文對(duì)應(yīng)的字符時(shí),所產(chǎn)生的候選項(xiàng)的首選是指定的下文,則判斷為候選項(xiàng)通過校驗(yàn),進(jìn)行子步驟S305。否則,則判斷為候選項(xiàng)沒通過校驗(yàn),進(jìn)行子步驟S306。比如成語“一石二鳥”,判斷完成“一石”的輸出之后,接著輸入字符“erniao”所產(chǎn)生的候選項(xiàng)中“二鳥”是否為首位。在實(shí)際應(yīng)用過程中,可以根據(jù)實(shí)際需要選擇上述兩種方式的任意一種方式來對(duì)候選項(xiàng)進(jìn)行校驗(yàn)。子步驟S305 :輸入法測(cè)試成功,完成輸入法測(cè)試;當(dāng)輸入過程中輸入法的預(yù)定狀態(tài)、動(dòng)作、動(dòng)作的觸發(fā)條件以及候選項(xiàng)都通過校驗(yàn),則輸入法測(cè)試成功,完成輸入法測(cè)試。子步驟S306 :輸入法測(cè)試失敗,結(jié)束輸入法測(cè)試;當(dāng)輸入過程中輸入法的預(yù)定狀態(tài)、動(dòng)作、動(dòng)作的觸發(fā)條件以及候選項(xiàng)任何一項(xiàng)沒通過校驗(yàn),則輸入法測(cè)試失敗,結(jié)束輸入法測(cè)試。通過上述實(shí)施方式的描述,可以理解,本發(fā)明的輸入法測(cè)試方法,通過收集輸入法的預(yù)定狀態(tài)下動(dòng)作的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作變化而變化的情況,生成動(dòng)作相應(yīng)的測(cè)試用例。利用生成的動(dòng)作相應(yīng)的測(cè)試用例對(duì)輸入法進(jìn)行測(cè)試,由于測(cè)試用例量少而準(zhǔn)確,能夠提高輸入法測(cè)試的準(zhǔn)確度。此外,利用生成的動(dòng)作相應(yīng)的測(cè)試用例對(duì)輸入法進(jìn)行測(cè)試中,通過對(duì)輸入過程進(jìn)行校驗(yàn)來完成輸入法測(cè)試。而輸入過程既包含輸入法的預(yù)定狀態(tài)、在預(yù)定狀態(tài)下的動(dòng)作、產(chǎn)生動(dòng)作的觸發(fā)條件以及候選項(xiàng)的產(chǎn)生等,輸入法測(cè)試通過對(duì)輸入過程中的各個(gè)部分進(jìn)行校驗(yàn),不完全依賴于候選項(xiàng)的校驗(yàn)來評(píng)價(jià)輸入法性能,提高輸入法測(cè)試的準(zhǔn)確性,同時(shí)也提高測(cè)試用例的穩(wěn)定性。同時(shí),測(cè)試過程中通過虛擬的客戶端對(duì)測(cè)試用例進(jìn)行輸入,并發(fā)送給輸入法服務(wù)器。既可以實(shí)現(xiàn)輸入法測(cè)試的自動(dòng)化,又能解決輸入法測(cè)試過程中用戶界面展示帶來的效率低下的問題。請(qǐng)參閱圖6,本發(fā)明電子裝置第一實(shí)施方式包括分類模塊11、獲取模塊12以及測(cè)試用例生成模塊13,其中分類模塊11用于在輸入法的預(yù)定狀態(tài)下,對(duì)輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類,并將分類后的動(dòng)作輸出給獲取模塊12 ;分類模塊11對(duì)輸入法預(yù)定狀態(tài)下,輸入法能響應(yīng)的動(dòng)作和/或由動(dòng)作而產(chǎn)生的結(jié)果進(jìn)行分類,并將分類后的動(dòng)作和/或由動(dòng)作而產(chǎn)生的結(jié)果輸出給獲取模塊12。在輸入法的預(yù)定狀態(tài)下,對(duì)輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類,同時(shí)也可以包括對(duì)動(dòng)作產(chǎn)生的結(jié)果進(jìn)行分類。輸入法的預(yù)定狀態(tài)可以是一種或兩種以上的預(yù)定狀態(tài)。比如但不限于是預(yù)輸入狀態(tài)、正常輸入狀態(tài)以及轉(zhuǎn)換狀態(tài)中的任意一種或者兩種以上的狀態(tài)。動(dòng)作是指在輸入法的預(yù)定狀態(tài)下所能響應(yīng)的用戶的某些操作行為。通常在某個(gè)預(yù)定的輸入法的預(yù)定狀態(tài)下,僅能響應(yīng)指定的某些動(dòng)作。比如在預(yù)輸入狀態(tài)下或輸入變換狀態(tài)下,僅能響應(yīng)如翻頁、文節(jié)移動(dòng)等動(dòng)作。又比如在正常輸入狀態(tài)下,僅能響應(yīng)如“Backspace”,“Cancel”,“Commit”,“Convert To Half Width” 等 33 種動(dòng)作。而動(dòng)作產(chǎn)生的結(jié)果是指輸入法響應(yīng)動(dòng)作而產(chǎn)生的結(jié)果。比如響應(yīng)動(dòng)作“cancel”產(chǎn)生刪除的結(jié)果,響應(yīng)動(dòng)作“convert To Full Alphanumeric”而產(chǎn)生轉(zhuǎn)換到全字母的結(jié)果。其中,對(duì)輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類是指針對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作按照動(dòng)作的類型來進(jìn)行分類。比如輸入字符行為、選詞行為、翻頁行為、文節(jié)移動(dòng)行為等等。獲取模塊12用于根據(jù)來自分類模塊11的分類后的動(dòng)作,獲取分類后的每個(gè)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況,并輸出給測(cè)試用例生成模塊13 ;獲取模塊12獲取經(jīng)分類模塊11分類后的每個(gè)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入的狀態(tài)跟隨動(dòng)作的變化而變化的情況,將獲取的每個(gè)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況輸出給測(cè)試用例生成模塊13。針對(duì)某一動(dòng)作,可能不止一種觸發(fā)條件,這時(shí)需要獲取動(dòng)作的所有觸發(fā)條件。比如針對(duì)翻頁這一動(dòng)作,有“pgDn”、“ctrl+l”兩種觸發(fā)條件,則獲取這兩種觸發(fā)條件。輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況,是指某些動(dòng)作導(dǎo)致輸入法的預(yù)定狀態(tài)發(fā)生變化的情況。比如轉(zhuǎn)換狀態(tài)下按esc能回到正常輸入狀態(tài),正常輸入狀態(tài)下按下esc能回到預(yù)輸入狀態(tài)等等。測(cè)試用例生成模塊13用于根據(jù)來自獲取模塊12的動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況生成不同動(dòng)作相應(yīng)的測(cè)試用例。測(cè)試用例生成模塊13根據(jù)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況生成不同動(dòng)作對(duì)應(yīng)的測(cè)試用例。根據(jù)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況,生成狀態(tài)遷移圖(即輸入法的預(yù)定狀態(tài)跟隨動(dòng)作變化而變化的情況)??蓞㈤唸D2,為本發(fā)明生成輸入法測(cè)試用例的方法一實(shí)施方式中的其中一個(gè)狀態(tài)遷移圖的示意圖。對(duì)不同的動(dòng)作生成對(duì)應(yīng)的不同的測(cè)試用例。比如翻頁這一動(dòng)作對(duì)應(yīng)“pgDn”、“ctrl+l”兩種觸發(fā)條件,原始輸入串為“a”、“ska”,則生成的測(cè)試用例分別為“(a{pgDn}, a{Ctrl+l}, ska {pgDn},ska{Ctrl+l})”。這里的原始輸入串是指在預(yù)輸入狀態(tài)下產(chǎn)生的輸入串。在設(shè)計(jì)輸入法測(cè)試用例的時(shí)候,可以找到預(yù)輸入狀態(tài)下的一些特殊的輸入串,與不同的狀態(tài)設(shè)計(jì)不同的測(cè)試用例。請(qǐng)參閱圖7,本發(fā)明電子裝置第二實(shí)施方式包括抽取模塊21、輸入模塊22以及校驗(yàn)?zāi)K23,其中抽取模塊21用于抽取測(cè)試用例,測(cè)試用例是基于輸入法的預(yù)定狀態(tài)下動(dòng)作的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作變化而變化的情況而產(chǎn)生的;抽取模塊21抽取用于輸入法測(cè)試的測(cè)試用例,抽取的測(cè)試用例是基于輸入法的預(yù)定狀態(tài)下動(dòng)作的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況而產(chǎn)生的。這里的測(cè)試用例是基于輸入法的預(yù)定狀態(tài)下動(dòng)作的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作變化而變化的情況而產(chǎn)生的。其中,上述的測(cè)試用例是通過以下方式來得到在輸入法的預(yù)定狀態(tài)下,對(duì)輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類,然后獲取分類后的每個(gè)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況,再根據(jù)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況,生成不同動(dòng)作相應(yīng)的測(cè)試用例。輸入模塊22用于利用輸入法對(duì)抽取模塊21抽取的測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸A ;輸入模塊22對(duì)抽取的測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入。輸入模塊22可以通過虛擬的客戶端對(duì)抽取模塊21抽取的測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入,并發(fā)送給輸入法服務(wù)器。通常情況下,用戶界面上顯示的所有內(nèi)容信息,比如候選項(xiàng)、候選項(xiàng)有多少頁、輸入法在什么狀態(tài)等,在輸入法測(cè)試的時(shí)候會(huì)有對(duì)應(yīng)的xml文件生成。因此,通常情況下為了實(shí)現(xiàn)輸入法測(cè)試的自動(dòng)化,通常有兩種方式1、模擬鍵盤輸入,這種方式看起來就像有人在打字一樣,以此來進(jìn)行輸入法測(cè)試,該過程有用戶界面參與;2、將輸入法處理的邏輯程序打包成壓縮文件,通過提供一些字符串來觸發(fā),這樣,雖然界面上沒有輸入,但是也產(chǎn)生相應(yīng)的xml文件,也可以進(jìn)行輸入法測(cè)試。對(duì)于抽取的測(cè)試用例,利用輸入法進(jìn)行輸入時(shí)可以采用上述兩種方式的任意一種。在本發(fā)明實(shí)施方式中,輸入模塊22通過模擬(mock) —個(gè)虛擬的客戶端(client)和輸入法的服務(wù)器(server)進(jìn)行進(jìn)程間的通信,通過虛擬的客戶端對(duì)測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入,并發(fā)送給輸入法服務(wù)器。這樣既可以實(shí)現(xiàn)輸入法測(cè)試的自動(dòng)化,又能解決輸入法測(cè)試過程中用戶界面展示帶來的效率低下的問題。校驗(yàn)?zāi)K23用于對(duì)輸入模塊22的輸入的過程進(jìn)行校驗(yàn),完成輸入法測(cè)試。校驗(yàn)?zāi)K23對(duì)輸入測(cè)試用例的過程進(jìn)行校驗(yàn),包括對(duì)輸入過程的輸入法的預(yù)定狀態(tài)、輸入法的預(yù)定狀態(tài)下的動(dòng)作、動(dòng)作的觸發(fā)條件以及候選項(xiàng)一一進(jìn)行校驗(yàn),所有的校驗(yàn)通過,則判斷為輸入法測(cè)試成功,完成輸入法測(cè)試。請(qǐng)參閱圖8,本發(fā)明電子裝置第三實(shí)施方式中,校驗(yàn)?zāi)K包括第一校驗(yàn)單元111、第二校驗(yàn)單元112、第三校驗(yàn)單元113以及第四校驗(yàn)單元114,其中第一校驗(yàn)單元111用于對(duì)輸入的過程中輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn),輸入法的預(yù)定狀態(tài)通過校驗(yàn)時(shí),發(fā)送對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的指令給第二校驗(yàn)單元112 ;第一校驗(yàn)單元111通過判斷輸入的過程中輸入法的預(yù)定狀態(tài)與測(cè)試用例對(duì)應(yīng)的輸入法的預(yù)定狀態(tài)是否一致來對(duì)輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn)。當(dāng)輸入法的預(yù)定狀態(tài)與測(cè)試用例對(duì)應(yīng)的輸入法的預(yù)定狀態(tài)一致時(shí),判斷為輸入法的預(yù)定狀態(tài)通過校驗(yàn)時(shí),發(fā)送對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的指令給第二校驗(yàn)單元112。否則,不發(fā)送對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的指令。第二校驗(yàn)單元112用于對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn),當(dāng)輸入的狀態(tài)下的動(dòng)作通過校驗(yàn)時(shí),發(fā)送對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的指令給第三校驗(yàn)單元113 ;第二校驗(yàn)單元112當(dāng)?shù)谝恍r?yàn)單元111中的輸入法的預(yù)定狀態(tài)通過校驗(yàn)時(shí),通過判斷輸入法的預(yù)定狀態(tài)下的動(dòng)作與測(cè)試用例相應(yīng)的動(dòng)作是否一致來對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)。當(dāng)輸入法的預(yù)定狀態(tài)下的動(dòng)作與測(cè)試用例相應(yīng)的動(dòng)作一致時(shí),判斷為輸入法的預(yù)定狀態(tài)下的動(dòng)作通過校驗(yàn),則發(fā)送對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的指令給第三校驗(yàn)單元113。否則,不發(fā)送對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的指令。第三校驗(yàn)單元113用于對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn);
第三校驗(yàn)單元113當(dāng)?shù)诙r?yàn)單元112中的輸入法的預(yù)定狀態(tài)下的動(dòng)作通過校驗(yàn)時(shí),通過判斷動(dòng)作的觸發(fā)條件是否與測(cè)試用例中相應(yīng)的動(dòng)作的觸發(fā)條件是否一致來對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)。當(dāng)動(dòng)作的觸發(fā)條件是否與測(cè)試用例中相應(yīng)的動(dòng)作的觸發(fā)條件一致時(shí),判斷為動(dòng)作的觸發(fā)條件通過校驗(yàn),則發(fā)送對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的指令給第四校驗(yàn)單元114。否則,不發(fā)送對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的指令。第四校驗(yàn)單元114用于采用自定義規(guī)則對(duì)候選項(xiàng)進(jìn)行校驗(yàn)。第四校驗(yàn)單元114當(dāng)?shù)谌r?yàn)單元113中對(duì)動(dòng)作的觸發(fā)條件通過校驗(yàn)時(shí),通過判斷候選項(xiàng)是否滿足預(yù)定的要求來對(duì)候選項(xiàng)進(jìn)行校驗(yàn)。當(dāng)候選項(xiàng)滿足預(yù)定的要求時(shí),判斷為候選項(xiàng)通過校驗(yàn),輸入法測(cè)試成功,完成輸入法測(cè)試。否則,輸入法測(cè)試失敗,結(jié)束輸入法測(cè)試。本發(fā)明的有益效果是區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明生成輸入法測(cè)試用例的方法,通過收集輸入法的預(yù)定狀態(tài)下動(dòng)作的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作變化而變化的情況,針對(duì)不同的動(dòng)作設(shè)計(jì)對(duì)應(yīng)的測(cè)試用例,能夠用較少的測(cè)試用例來大范圍地覆蓋用戶實(shí)際按鍵輸入的情況,提高測(cè)試用例的覆蓋率;同時(shí)由于測(cè)試用例量少而準(zhǔn)確,能夠提高后續(xù)輸入法測(cè)試的準(zhǔn)確度。另一方面,利用生成的動(dòng)作相應(yīng)的測(cè)試用例對(duì)輸入法進(jìn)行測(cè)試中,通過對(duì)輸入過程進(jìn)行校驗(yàn)來完成輸入法測(cè)試。而輸入過程既包含輸入法的預(yù)定狀態(tài)、在預(yù)定狀態(tài)下的動(dòng)作、產(chǎn)生動(dòng)作的觸發(fā)條件以及候選項(xiàng)的產(chǎn)生等,輸入法測(cè)試通過對(duì)輸入過程中的各個(gè)部分進(jìn)行校驗(yàn),不完全依賴于候選項(xiàng)的校驗(yàn)來評(píng)價(jià)輸入法性能,提高輸入法測(cè)試的準(zhǔn)確性,同時(shí)也提高測(cè)試用例的穩(wěn)定性。同時(shí),測(cè)試過程中通過虛擬的客戶端對(duì)測(cè)試用例進(jìn)行輸入,并發(fā)送給輸入法服務(wù)器。既可以實(shí)現(xiàn)輸入法測(cè)試的自動(dòng)化,又能解決輸入法測(cè)試過程中用戶界面展示帶來的效率低下的問題。在本發(fā)明所提供的幾個(gè)實(shí)施方式中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施方式僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)模塊或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。所述作為分離部件說明的功能模塊可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本發(fā)明方案的目的。另外,在本發(fā)明各個(gè)實(shí)施方式中的各功能模塊可以集成在一個(gè)處理單元中,也可以是各個(gè)功能模塊單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上功能模塊集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。以上所述僅為本發(fā)明的實(shí)施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種生成輸入法測(cè)試用例的方法,其特征在于,包括 在所述輸入法的預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類; 獲取分類后的每個(gè)所述動(dòng)作對(duì)應(yīng)的觸發(fā)條件以及所述輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作的變化而變化的情況; 根據(jù)所述動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或所述輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作的變化而變化的情況生成不同動(dòng)作相應(yīng)的測(cè)試用例。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述在輸入法的預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類的步驟包括 在所述輸入法的預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作以及由所述動(dòng)作產(chǎn)生的結(jié)果進(jìn)行分類。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述在輸入法的預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類的步驟包括 在所述輸入法的預(yù)輸入狀態(tài)、正常輸入狀態(tài)以及轉(zhuǎn)換狀態(tài)中的至少一種預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類。
4.一種輸入法測(cè)試方法,其特征在于,包括 抽取測(cè)試用例,所述測(cè)試用例是基于輸入法的預(yù)定狀態(tài)下動(dòng)作的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作變化而變化的情況而產(chǎn)生的; 利用所述輸入法對(duì)所述測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入; 對(duì)所述輸入的過程進(jìn)行校驗(yàn),完成所述輸入法測(cè)試。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述對(duì)輸入的過程進(jìn)行校驗(yàn),完成輸入法測(cè)試的步驟包括 對(duì)所述輸入的過程中輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn); 若對(duì)所述輸入法狀態(tài)的校驗(yàn)通過,則對(duì)所述輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn); 若對(duì)所述動(dòng)作的校驗(yàn)通過,則對(duì)所述動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn); 若對(duì)所述觸發(fā)條件的校驗(yàn)通過,則采用自定義規(guī)則對(duì)輸入所述測(cè)試用例對(duì)應(yīng)的字符所產(chǎn)生的候選項(xiàng)進(jìn)行校驗(yàn); 若對(duì)所述候選項(xiàng)的校驗(yàn)通過,則判斷為所述輸入法測(cè)試成功,完成所述輸入法測(cè)試。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述對(duì)輸入過程中輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn)的步驟包括 判斷所述輸入過程的輸入法的預(yù)定狀態(tài)跟所述測(cè)試用例對(duì)應(yīng)的輸入法狀態(tài)是否一致; 若所述輸入過程中輸入法的預(yù)定狀態(tài)跟所述測(cè)試用例對(duì)應(yīng)的輸入法的預(yù)定狀態(tài)一致,則判斷為所述輸入法的預(yù)定狀態(tài)通過校驗(yàn),否則,判斷為所述輸入法測(cè)試失敗,結(jié)束輸入法測(cè)試。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的步驟包括 判斷所述輸入法的預(yù)定狀態(tài)下的動(dòng)作與所述測(cè)試用例對(duì)應(yīng)的動(dòng)作是否一致; 若所述輸入法的預(yù)定狀態(tài)下的動(dòng)作與所述測(cè)試用例對(duì)應(yīng)的動(dòng)作一致,則判斷為所述動(dòng)作的校驗(yàn)通過,否則,判斷為所述輸入法測(cè)試失敗,結(jié)束輸入法測(cè)試。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的步驟包括 判斷所述動(dòng)作的觸發(fā)條件與所述測(cè)試用例對(duì)應(yīng)的動(dòng)作的觸發(fā)條件是否一致; 若所述動(dòng)作的觸發(fā)條件與所述測(cè)試用例對(duì)應(yīng)的動(dòng)作的觸發(fā)條件一致,則判斷為動(dòng)作的觸發(fā)條件的校驗(yàn)通過,否則,判斷為所述輸入法測(cè)試失敗,結(jié)束所述輸入法測(cè)試。
9.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述采用自定義規(guī)則對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的步驟包括 抽取預(yù)定的上下文,對(duì)所述預(yù)定的上下文對(duì)應(yīng)的指定字符串進(jìn)行輸入,判斷每輸入一個(gè)指定字符串所產(chǎn)生的候選項(xiàng)的第四位是否為顏文字; 若所述每輸入一個(gè)指定字符串所產(chǎn)生的候選項(xiàng)的第四位不是顏文字,則判斷為所述輸入法測(cè)試失敗,結(jié)束所述輸入法測(cè)試;若所述每輸入一個(gè)指定字符串所產(chǎn)生的候選項(xiàng)的第四位是顏文字,則判斷為所述輸入法測(cè)試成功,完成所述輸入法測(cè)試。
10.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述采用自定義規(guī)則對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的步驟包括 抽取預(yù)定的上下文; 對(duì)所述預(yù)定的上下文對(duì)應(yīng)的指定字符串進(jìn)行輸入,判斷當(dāng)完成上文的候選輸出后接著輸入下文對(duì)應(yīng)的指定字符串時(shí),所產(chǎn)生的候選項(xiàng)的首選是否是所述指定的下文; 如果所述接著輸入下文對(duì)應(yīng)的指定字符串所產(chǎn)生的候選項(xiàng)的首選是所述指定的下文,則判斷為所述輸入法測(cè)試成功,完成所述輸入法測(cè)試,否則,則判斷為所述輸入法測(cè)試失敗,結(jié)束所述輸入法測(cè)試。
11.根據(jù)權(quán)利要求5-10任一項(xiàng)所述的方法,其特征在于,所述利用輸入法對(duì)所述測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入的步驟包括 利用所述輸入法,通過虛擬的客戶端對(duì)所述測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入,并發(fā)送給輸入法服務(wù)器。
12.一種電子裝置,其特征在于,包括分類模塊、獲取模塊以及測(cè)試用例生成模塊,其中 所述分類模塊用于在所述輸入法的預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類,并將分類后的所述動(dòng)作輸出給所述獲取模塊; 所述獲取模塊用于根據(jù)來自分類模塊的分類后的所述動(dòng)作,獲取分類后的每個(gè)所述動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或所述輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作的變化而變化的情況并輸出給所述測(cè)試用例生成模塊; 所述測(cè)試用例生成模塊用于根據(jù)來自所述獲取模塊的所述動(dòng)作對(duì)應(yīng)的觸發(fā)條件以及所述輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作的變化而變化的情況生成不同動(dòng)作相應(yīng)的測(cè)試用例。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述分類模塊具體用于在所述輸入法的預(yù)輸入狀態(tài)、正常輸入狀態(tài)以及轉(zhuǎn)換狀態(tài)中的至少一種預(yù)定狀態(tài)下,對(duì)所述輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類,并將分類后的所述動(dòng)作輸出給所述獲取模塊。
14.一種電子裝置,其特征在于,包括抽取模塊、輸入模塊以及校驗(yàn)?zāi)K,其中 所述抽取模塊用于抽取測(cè)試用例,所述測(cè)試用例是基于輸入法的預(yù)定狀態(tài)下動(dòng)作的觸發(fā)條件以及輸入法的預(yù)定狀態(tài)跟隨所述動(dòng)作變化而變化的情況而產(chǎn)生的;所述輸入模塊用于利用輸入法對(duì)所述抽取模塊抽取的所述測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入; 所述校驗(yàn)?zāi)K用于對(duì)所述輸入模塊的所述輸入的過程進(jìn)行校驗(yàn),完成輸入法測(cè)試。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述校驗(yàn)?zāi)K包括第一校驗(yàn)單元、第二校驗(yàn)單元、第三校驗(yàn)單元以及第四校驗(yàn)單元,其中 所述第一校驗(yàn)單元用于對(duì)所述輸入的過程中輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn),當(dāng)輸入法的預(yù)定狀態(tài)通過校驗(yàn)時(shí),發(fā)送對(duì)所述輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的指令給所述第二校驗(yàn)單元; 所述第二校驗(yàn)單元用于對(duì)所述輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn),當(dāng)輸入的狀態(tài)下的動(dòng)作通過校驗(yàn)時(shí),發(fā)送對(duì)所述動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的指令給所述第三校驗(yàn)單元; 所述第三校驗(yàn)單元用于對(duì)所述動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn),當(dāng)動(dòng)作的觸發(fā)條件通過校驗(yàn)時(shí),發(fā)送對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的指令給所述第四校驗(yàn)單元; 所述第四校驗(yàn)單元用于采用自定義規(guī)則對(duì)所述候選項(xiàng)進(jìn)行校驗(yàn)。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于, 所述第一校驗(yàn)單元具體用于通過判斷所述輸入的過程中輸入法的預(yù)定狀態(tài)與所述測(cè)試用例對(duì)應(yīng)的輸入法的預(yù)定狀態(tài)是否一致來對(duì)所述輸入法的預(yù)定狀態(tài)進(jìn)行校驗(yàn),當(dāng)所述輸入的過程中輸入法的預(yù)定狀態(tài)與所述測(cè)試用例對(duì)應(yīng)的輸入法的預(yù)定狀態(tài)一致時(shí),判斷為所述輸入法的預(yù)定狀態(tài)通過校驗(yàn)時(shí),發(fā)送對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的指令給所述第二校驗(yàn)單元,否則,不發(fā)送所述對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的指令; 所述第二校驗(yàn)單元具體用于響應(yīng)來自第一校驗(yàn)單元的所述對(duì)輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn)的指令,通過判斷所述輸入法的預(yù)定狀態(tài)下的動(dòng)作與所述測(cè)試用例相應(yīng)的動(dòng)作是否一致來對(duì)所述輸入法的預(yù)定狀態(tài)下的動(dòng)作進(jìn)行校驗(yàn),當(dāng)所述輸入法的預(yù)定狀態(tài)下的動(dòng)作與所述測(cè)試用例相應(yīng)的動(dòng)作一致,判斷為所述輸入法的預(yù)定狀態(tài)下的動(dòng)作通過校驗(yàn),則發(fā)送對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的指令給所述第三校驗(yàn)單元,否則,不發(fā)送所述對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的指令; 所述第三校驗(yàn)單元具體用于響應(yīng)來自第二校驗(yàn)單元的所述對(duì)動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn)的指令,通過判斷所述動(dòng)作的觸發(fā)條件與所述測(cè)試用例中相應(yīng)的動(dòng)作的觸發(fā)條件是否一致來對(duì)所述動(dòng)作的觸發(fā)條件進(jìn)行校驗(yàn),當(dāng)所述動(dòng)作的觸發(fā)條件與所述測(cè)試用例中相應(yīng)的動(dòng)作的觸發(fā)條件一致,判斷為所述動(dòng)作的觸發(fā)條件通過校驗(yàn),則發(fā)送對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的指令給第四校驗(yàn)單元,否則,不發(fā)送所述對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的指令; 所述第四校驗(yàn)單元具體用于響應(yīng)來自所述第三校驗(yàn)單元的對(duì)候選項(xiàng)進(jìn)行校驗(yàn)的指令,通過判斷所述候選項(xiàng)是否滿足預(yù)定的要求來對(duì)所述候選項(xiàng)進(jìn)行校驗(yàn),當(dāng)候選項(xiàng)滿足預(yù)訂的要求,判斷為候選項(xiàng)通過校驗(yàn),輸入法測(cè)試成功,完成輸入法測(cè)試,否則,輸入法測(cè)試失敗,結(jié)束輸入法測(cè)試。
17.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述輸入模塊具體用于利用所述輸入法,通過虛擬的客戶端對(duì)所述抽取模塊抽取的測(cè)試用例對(duì)應(yīng)的字符進(jìn)行輸入,并將所述測(cè)試用例對(duì)應(yīng)的字符發(fā)送給所述輸入法服務(wù)器。
全文摘要
本發(fā)明公開了一種輸入法測(cè)試方法、生成測(cè)試用例的方法及裝置。其中,生成測(cè)試用例的方法包括在輸入法的預(yù)定狀態(tài)下,對(duì)輸入法所能響應(yīng)的動(dòng)作進(jìn)行分類,輸入法的預(yù)定狀態(tài)的狀態(tài)數(shù)量至少為兩個(gè);獲取分類后的每個(gè)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況;根據(jù)動(dòng)作對(duì)應(yīng)的觸發(fā)條件和/或輸入法的預(yù)定狀態(tài)跟隨動(dòng)作的變化而變化的情況生成不同動(dòng)作相應(yīng)的測(cè)試用例。通過上述方式,本發(fā)明能夠使獲取的測(cè)試用例大范圍的覆蓋用戶實(shí)際按鍵輸入,提高測(cè)試用例的覆蓋率。
文檔編號(hào)G06F11/263GK102981938SQ20121045860
公開日2013年3月20日 申請(qǐng)日期2012年11月15日 優(yōu)先權(quán)日2012年11月15日
發(fā)明者江桂華 申請(qǐng)人:百度國際科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
保山市| 宝丰县| 会泽县| 兰溪市| 灵丘县| 罗山县| 余姚市| 乐安县| 读书| 朔州市| 民丰县| 永川市| 正阳县| 桃园市| 洪雅县| 西平县| 临武县| 通河县| 株洲县| 永川市| 涪陵区| 宜阳县| 寿光市| 平邑县| 遂川县| 博罗县| 汾阳市| 当雄县| 五家渠市| 宝鸡市| 栖霞市| 柞水县| 林口县| 颍上县| 黑水县| 姚安县| 婺源县| 盱眙县| 香河县| 萨嘎县| 武山县|