一種基于圖像識別的軟件測試方法
【專利摘要】本發(fā)明涉及軟件測試技術(shù)領(lǐng)域,尤其涉及一種基于圖像識別的軟件測試方法,它包括兩個階段,分別為軟件測試用例錄制階段以及軟件測試用例執(zhí)行階段,首先通過軟件測試用例錄用階段來錄制正確的測試用例,然后在執(zhí)行階段采用這個正確的測試用例進(jìn)行批量快速測試。采用這種測試方法工作量較小、判定效率較高且準(zhǔn)確率較高。
【專利說明】
一種基于圖像識別的軟件測試方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及軟件測試技術(shù)領(lǐng)域,尤其涉及一種基于圖像識別的軟件測試方法。
【背景技術(shù)】
[0002]目前的軟件測試中。尤其針對界面流轉(zhuǎn)型軟件,因?yàn)闆]有數(shù)值類的輸出,所以如何判定軟件的操作結(jié)果是夠符合預(yù)期存在一定難度,現(xiàn)有技術(shù)一般都是直接通過人眼判定或者截圖之后再通過人眼判定,這樣不但工作量較大,判定效率較低,而且容易出錯。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術(shù)問題是:提供一種基于圖像識別的軟件測試方法,采用這種測試方法工作量較小、判定效率較高且準(zhǔn)確率較高。
[0004]本發(fā)明所采用的技術(shù)方案:一種基于圖像識別的軟件測試方法,它包括兩個階段,分別為軟件測試用例錄制階段以及軟件測試用例執(zhí)行階段,
所述軟件測試用例錄制階段包括以下步驟:
(1)、設(shè)定軟件初始狀態(tài);
(2)、操作員輸入軟件執(zhí)行命令;
(3)、軟件執(zhí)行相應(yīng)的命令;
(4)、操作員判斷軟件執(zhí)行結(jié)果是否正確,若不正確,則上報(bào)進(jìn)行修復(fù),修復(fù)后再跳轉(zhuǎn)到步驟(I)重新錄制;若正確,則操作員根據(jù)執(zhí)行結(jié)果選擇判定依據(jù),判定依據(jù)包括但不限于以下三種:
A、完整運(yùn)行程序界面截圖;
B、部分運(yùn)行程序界面截圖;
C、界面運(yùn)行文字識別結(jié)果;
(5)、記錄初始狀態(tài)、執(zhí)行命令、判斷依據(jù)以及軟件執(zhí)行結(jié)果,完成一次軟件測試動作的記錄;
(6)、重復(fù)步驟(I)到步驟(5),直到整個軟件的所有測試動作均記錄完畢;
所述軟件測試用例執(zhí)行階段包括以下步驟:
①、導(dǎo)入對應(yīng)軟件已經(jīng)錄用完成的測試用例;
②、設(shè)定軟件初始狀態(tài);
③、根據(jù)設(shè)定的初始狀態(tài)從測試用例中選擇與初始狀態(tài)相匹配的軟件測試動作;
④、從步驟③中得到的軟件測試動作中選擇其中一個,然后執(zhí)行這個軟件測試動作,包括輸入執(zhí)行命令,軟件執(zhí)行相應(yīng)命令,得到執(zhí)行結(jié)果;
⑤、根據(jù)步驟④選擇的這個測試動作中獲取的判定依據(jù),來獲取步驟④得到的執(zhí)行結(jié)果的判定依據(jù);
⑥、將步驟⑤獲取的判定依據(jù)與步驟④選擇的這個測試動作中原本就記錄的判定依據(jù)進(jìn)行相似性比較,根據(jù)相似性結(jié)果給出執(zhí)行結(jié)果是否正確的結(jié)論,然后將軟件初始狀態(tài),步驟④中的執(zhí)行命令和執(zhí)行結(jié)果,以及步驟⑥得到的結(jié)論均記錄下來;
⑦、重復(fù)步驟④到步驟⑥,直到設(shè)定的這一初始狀態(tài)下的所有測試動作均已經(jīng)被執(zhí)行或者在設(shè)定的這一初始狀態(tài)下需求的測試動作均已經(jīng)被執(zhí)行了,然后重新設(shè)定軟件的初始狀態(tài),再跳轉(zhuǎn)到步驟③繼續(xù)測試,直到整個軟件的所有測試動作或者需要測試的測試動作均已經(jīng)執(zhí)行完畢;
⑧、根據(jù)步驟⑥記錄的數(shù)據(jù)生成測試報(bào)告。
[0005]采用以上方法與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):首先操作員只需要做一次軟件測試用例錄用即可,之后均可以采用這個記錄的軟件測試用例來進(jìn)行測試判斷,這樣操作員只需要查看最后生成的測試報(bào)告即可知道軟件的測試結(jié)果,而不需要時刻用人眼去判斷觀察,這樣不但測試工作量較小,而且測試效率較高,測試準(zhǔn)確度較高。
【具體實(shí)施方式】
[0006]以下為【具體實(shí)施方式】對本發(fā)明做進(jìn)一步描述,但是本發(fā)明不僅限于以下【具體實(shí)施方式】。
[0007]本申請所說的軟件主要是指手機(jī)軟件,因?yàn)槭謾C(jī)軟件大部分都是界面流轉(zhuǎn)型軟件,即用戶操作,然后導(dǎo)致界面跳轉(zhuǎn)。
[0008]—種基于圖像識別的軟件測試方法,它包括兩個階段,分別為軟件測試用例錄制階段以及軟件測試用例執(zhí)行階段,
所述軟件測試用例錄制階段包括以下步驟:
(1)、設(shè)定初始軟件狀態(tài);此步驟是設(shè)定初始狀態(tài),因?yàn)楹芏鄷r候初始狀態(tài)不同,執(zhí)行相同的操作,得到的執(zhí)行結(jié)果也不同;
(2)、操作員輸入軟件執(zhí)行命令;所述執(zhí)行命令包括但不限于以下三種:
a、點(diǎn)擊;所述點(diǎn)擊包括單擊、雙擊以及長按等動作;
b、滑動;
c、拖動;
而且這個執(zhí)行命令同時也包括了具體位置,即在哪個位置點(diǎn)擊,從哪個位置到哪個位置滑動,或者從哪個位置到哪個位置拖動;
(3)、軟件執(zhí)行相應(yīng)的命令;
(4)、操作員判斷軟件執(zhí)行結(jié)果是否正確,若不正確,則上報(bào)進(jìn)行修復(fù),修復(fù)后再跳轉(zhuǎn)到步驟(I)重新錄制,這一步就是要保證測試用例錄用的都是正確的執(zhí)行結(jié)果,這樣才能作為以后測試的模板,即當(dāng)在錄取時出現(xiàn)錯誤,就需要修復(fù)后再錄制;若正確,則操作員根據(jù)執(zhí)行結(jié)果選擇判定依據(jù),判定依據(jù)包括但不限于以下三種:
A、完整運(yùn)行程序界面截圖;當(dāng)執(zhí)行結(jié)果與用戶賬號什么都沒關(guān)系,即每個用戶執(zhí)行這個命令都是這個結(jié)果時,可以采用完整運(yùn)行程序界面截圖來作為判斷依據(jù);
B、部分運(yùn)行程序界面截圖;當(dāng)執(zhí)行結(jié)果與用戶賬號存在關(guān)系,即每個用戶執(zhí)行這個命令是有不同的結(jié)果,但是有一部分界面還是相同的,此時可以采用部分運(yùn)行程序界面截圖;
C、界面運(yùn)行文字識別結(jié)果;當(dāng)執(zhí)行結(jié)果界面均不相同,但是有一些文字是一樣的,則此時可以采用界面運(yùn)行文字識別結(jié)果;
(5)、記錄初始狀態(tài)、執(zhí)行命令、判斷依據(jù)以及執(zhí)行結(jié)果,完成一次軟件測試動作的記錄;這些記錄的都是正確的執(zhí)行結(jié)果相關(guān)的信息,形成一條連接鏈,即在初始狀態(tài)執(zhí)行一條命令會出現(xiàn)一個正確的執(zhí)行結(jié)果,然后這個執(zhí)行結(jié)果可以通過判斷依據(jù)來判斷是否正確。
[0009](6)、重復(fù)步驟(I)到步驟(5),直到整個軟件的所有測試動作均記錄完畢;
所述軟件測試用例執(zhí)行階段包括以下步驟:
①、導(dǎo)入對應(yīng)軟件已經(jīng)錄用完成的測試用例;
②、設(shè)定軟件初始狀態(tài);
③、根據(jù)設(shè)定的初始狀態(tài)從測試用例中選擇與初始狀態(tài)相匹配的軟件測試動作;因?yàn)橹颁浿茰y試用例是包括很多個測試動作的,而每個測試動作都是需要一個初始狀態(tài)的,所以這個測試動作的初始狀態(tài)需要與步驟②設(shè)定的初始狀態(tài)一致;
④、從步驟③中得到的軟件測試動作中選擇其中一個,然后執(zhí)行這個軟件測試動作,包括輸入執(zhí)行命令,軟件執(zhí)行相應(yīng)命令,得到執(zhí)行結(jié)果;因?yàn)橥粋€初始狀態(tài)上可能是有多個不同的測試動作的,所以需要選擇一個來進(jìn)行執(zhí)行;
⑤、根據(jù)步驟④選擇的這個測試動作中原本就記錄的判定依據(jù),來獲取步驟④得到的執(zhí)行結(jié)果的判定依據(jù);因?yàn)殚_始錄制時,測試動作就包括了判斷依據(jù),所以此時可以調(diào)用出判斷依據(jù)來獲取判斷依據(jù),比如這個測試動作中包含的判斷依據(jù)是完整運(yùn)行程序界面截圖,則此時需要采集執(zhí)行結(jié)果的完整運(yùn)行程序界面截圖;
⑥、將步驟⑤獲取的判定依據(jù)與步驟④選擇的這個測試動作中原本就記錄的判定依據(jù)進(jìn)行相似性比較,根據(jù)相似性結(jié)果給出執(zhí)行結(jié)果是否正確的結(jié)論,然后將軟件初始狀態(tài),步驟④中的執(zhí)行命令和執(zhí)行結(jié)果,以及步驟⑥得到的結(jié)論均記錄下來;這一步是將上一步采集到的判斷依據(jù)與很早之前就錄制到測試動作內(nèi)的判斷依據(jù)作對比,如果圖片是一樣的,或者標(biāo)識的文字一樣,則表示執(zhí)行結(jié)果是正確的,如果不同,則表示執(zhí)行結(jié)果是錯誤的;相似性比較主要是比較兩幅圖片的相似性,或者是兩段文字的相似性,具體如何判斷是現(xiàn)有技術(shù)就有的方法,并不是本發(fā)明所要保護(hù)的技術(shù)方案。
[0010]⑦、重復(fù)步驟④到步驟⑥,直到設(shè)定的這一初始狀態(tài)下的所有測試動作均已經(jīng)被執(zhí)行或者在設(shè)定的這一初始狀態(tài)下需求的測試動作均已經(jīng)被執(zhí)行了,然后重新設(shè)定軟件的初始狀態(tài),再跳轉(zhuǎn)到步驟③繼續(xù)測試,直到整個軟件的所有測試動作或者需要測試的測試動作均已經(jīng)執(zhí)行完畢;這一步是先將同一初始狀態(tài)下的測試動作都先執(zhí)行了,然后再更換初始狀態(tài),直到所有的測試動作都執(zhí)行掉,或者也可以根據(jù)需要,執(zhí)行一部分測試動作。
[0011]⑧、根據(jù)步驟⑥記錄的數(shù)據(jù)生成測試報(bào)告。
【主權(quán)項(xiàng)】
1.一種基于圖像識別的軟件測試方法,其特征在于:它包括兩個階段,分別為軟件測試用例錄制階段以及軟件測試用例執(zhí)行階段, 所述軟件測試用例錄制階段包括以下步驟: (1)、設(shè)定軟件初始狀態(tài); (2 )、操作員輸入軟件執(zhí)行命令; (3)、軟件執(zhí)行相應(yīng)的命令; (4)、操作員判斷軟件執(zhí)行結(jié)果是否正確,若不正確,則上報(bào)進(jìn)行修復(fù),修復(fù)后再跳轉(zhuǎn)到步驟(I)重新錄制;若正確,則操作員根據(jù)執(zhí)行結(jié)果選擇判定依據(jù),判定依據(jù)包括但不限于以下三種: A、完整運(yùn)行程序界面截圖; B、部分運(yùn)行程序界面截圖; C、界面運(yùn)行文字識別結(jié)果; (5)、記錄初始狀態(tài)、執(zhí)行命令、判斷依據(jù)以及軟件執(zhí)行結(jié)果,完成一次軟件測試動作的記錄; (6)、重復(fù)步驟(I)到步驟(5),直到整個軟件的所有測試動作均記錄完畢; 所述軟件測試用例執(zhí)行階段包括以下步驟: ①、導(dǎo)入對應(yīng)軟件已經(jīng)錄用完成的測試用例; ②、設(shè)定軟件初始狀態(tài); ③、根據(jù)設(shè)定的初始狀態(tài)從測試用例中選擇與初始狀態(tài)相匹配的軟件測試動作; ④、從步驟③中得到的軟件測試動作中選擇其中一個,然后執(zhí)行這個軟件測試動作,包括輸入執(zhí)行命令,軟件執(zhí)行相應(yīng)命令,得到執(zhí)行結(jié)果; ⑤、根據(jù)步驟④選擇的這個測試動作中原本就記錄的判定依據(jù),來獲取步驟④得到的執(zhí)行結(jié)果的判定依據(jù); ⑥、將步驟⑤獲取的判定依據(jù)與步驟④選擇的這個測試動作中原本就記錄的判定依據(jù)進(jìn)行相似性比較,根據(jù)相似性結(jié)果給出執(zhí)行結(jié)果是否正確的結(jié)論,然后將軟件初始狀態(tài),步驟④中的執(zhí)行命令和執(zhí)行結(jié)果,以及步驟⑥得到的結(jié)論均記錄下來; ⑦、重復(fù)步驟④到步驟⑥,直到設(shè)定的這一初始狀態(tài)下的所有測試動作均已經(jīng)被執(zhí)行或者在設(shè)定的這一初始狀態(tài)下需求的測試動作均已經(jīng)被執(zhí)行了,然后重新設(shè)定軟件的初始狀態(tài),再跳轉(zhuǎn)到步驟③繼續(xù)測試,直到整個軟件的所有測試動作或者需要測試的測試動作均已經(jīng)執(zhí)行完畢; ⑧、根據(jù)步驟⑥記錄的數(shù)據(jù)生成測試報(bào)告。
【文檔編號】G06F11/36GK105930265SQ201610218770
【公開日】2016年9月7日
【申請日】2016年4月11日
【發(fā)明人】冉龍波, 盧超
【申請人】武漢卡比特信息有限公司