本發(fā)明涉及半導(dǎo)體領(lǐng)域,尤其涉及一種自動化測試方法。
背景技術(shù):
1、半導(dǎo)體設(shè)備在上線前,需要對其進(jìn)行eap(equipment?automation?program)模擬測試,通過主機(jī)與半導(dǎo)體設(shè)備的通信進(jìn)行二者間數(shù)據(jù)的交換,以測試半導(dǎo)體設(shè)備的內(nèi)部功能,并主要測試半導(dǎo)體設(shè)備的接口協(xié)議與預(yù)上線生產(chǎn)場景,具體可通過主機(jī)向半導(dǎo)體設(shè)備發(fā)送消息,以測試半導(dǎo)體設(shè)備的相應(yīng)功能,由此確保半導(dǎo)體設(shè)備的快速上線。
2、然而現(xiàn)有的eap模擬測試過程中,大多僅能向半導(dǎo)體設(shè)備發(fā)送單條指令一次消息,并需要人工檢查半導(dǎo)體設(shè)備反饋的指令二次消息,以及檢查半導(dǎo)體設(shè)備所反饋的事件一次消息,因?yàn)橐蕾囉谌斯z查,所以存在測試不便的缺陷。因此現(xiàn)有技術(shù)中亟需一種對半導(dǎo)體設(shè)備進(jìn)行自動化測試的方法。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于解決現(xiàn)有的eap模擬測試過程中依賴于人工所存在的測試不便的缺陷。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種自動化測試方法,應(yīng)用于主機(jī)以對半導(dǎo)體設(shè)備進(jìn)行eap模擬測試,包括:
3、獲取包括多個測試用例的測試用例集,所述測試用例包括有序排列的多個測試步驟及和各所述測試步驟分別對應(yīng)的前置條件與預(yù)期結(jié)果;
4、在所述測試用例集中獲取目標(biāo)測試用例組,所述目標(biāo)測試用例組包括的所述測試用例為目標(biāo)測試用例,獲取和所述目標(biāo)測試用例中的所述前置條件與所述預(yù)期結(jié)果分別對應(yīng)的輸入數(shù)據(jù),所述輸入數(shù)據(jù)包含所述半導(dǎo)體設(shè)備的設(shè)備數(shù)據(jù),所述設(shè)備數(shù)據(jù)用于替換所述目標(biāo)測試用例組中各前置條件的標(biāo)識信息和各預(yù)期結(jié)果的標(biāo)識信息;
5、基于所述目標(biāo)測試用例所包含的測試步驟的順序依次對各當(dāng)前測試步驟實(shí)施測試以獲得目標(biāo)測試用例的用例測試結(jié)果,所述用例測試結(jié)果指示目標(biāo)測試用例測試成功或測試失敗,且對當(dāng)前測試步驟的測試包括:獲取來自所述半導(dǎo)體設(shè)備的設(shè)備消息,判斷所述設(shè)備消息與當(dāng)前測試步驟對應(yīng)的前置條件是否匹配成功,在匹配成功時執(zhí)行所述當(dāng)前測試步驟,以向半導(dǎo)體設(shè)備發(fā)送主機(jī)消息,在發(fā)送所述主機(jī)消息之后,基于所述設(shè)備消息和當(dāng)前測試步驟對應(yīng)的預(yù)期結(jié)果的比較確定當(dāng)前測試步驟的步驟測試結(jié)果,所述步驟測試結(jié)果指示當(dāng)前測試步驟測試成功或測試失??;
6、獲取所述目標(biāo)測試用例組中各所述目標(biāo)測試用例的用例測試結(jié)果。
7、作為本發(fā)明的進(jìn)一步改進(jìn),獲取來自所述半導(dǎo)體設(shè)備的設(shè)備消息,判斷所述設(shè)備消息與當(dāng)前測試步驟對應(yīng)的前置條件是否匹配成功,在匹配成功時執(zhí)行所述當(dāng)前測試步驟,包括:
8、獲取來自所述半導(dǎo)體設(shè)備的一條設(shè)備消息;
9、判斷一條所述設(shè)備消息的標(biāo)識信息與當(dāng)前測試步驟對應(yīng)的所有前置條件中的一個前置條件的標(biāo)識信息是否對應(yīng)成功,若是,則判斷一條所述設(shè)備消息的內(nèi)容與對應(yīng)成功的前置條件的內(nèi)容是否對比成功,以確定一條設(shè)備消息與對應(yīng)成功的前置條件的對比結(jié)果,并等待下一條所述設(shè)備消息,若所述設(shè)備消息的標(biāo)識信息與所有所述前置條件的標(biāo)識信息均未對應(yīng)成功,則等待下一條所述設(shè)備消息,其中,所述對比結(jié)果指示所述設(shè)備消息與所述前置條件匹配成功或匹配失敗;
10、重復(fù)實(shí)施所述設(shè)備消息的獲取以及與前置條件的對應(yīng)及對比,當(dāng)所述當(dāng)前測試步驟對應(yīng)的所有前置條件的對比結(jié)果均指示匹配成功時,執(zhí)行所述當(dāng)前測試步驟。
11、作為本發(fā)明的進(jìn)一步改進(jìn),判斷一條所述設(shè)備消息的標(biāo)識信息與當(dāng)前測試步驟對應(yīng)的所有前置條件中的一個前置條件的標(biāo)識信息是否對應(yīng)成功,包括:
12、當(dāng)所述設(shè)備消息為指令一次消息、指令二次消息或事件二次消息時,判斷一條所述設(shè)備消息的消息頭與當(dāng)前測試步驟對應(yīng)的所有前置條件中的一個前置條件的消息頭是否相同,當(dāng)相同時,判斷的結(jié)果為對應(yīng)成功,否則,判斷的結(jié)果為對應(yīng)失??;
13、當(dāng)所述設(shè)備消息為事件一次消息時,判斷一條所述設(shè)備消息的事件id與當(dāng)前測試步驟對應(yīng)的所有前置條件中的一個前置條件的事件id是否相同,當(dāng)相同時,判斷的結(jié)果為對應(yīng)成功,否則,判斷的結(jié)果為對應(yīng)失敗。
14、作為本發(fā)明的進(jìn)一步改進(jìn),判斷一條所述設(shè)備消息的內(nèi)容與對應(yīng)成功的前置條件的內(nèi)容是否對比成功,包括:
15、判斷一條所述設(shè)備消息的內(nèi)容與對應(yīng)成功的前置條件的內(nèi)容是否相同,當(dāng)相同時,判斷的結(jié)果為對比成功,以指示所述設(shè)備消息與所述前置條件匹配成功,否則,判斷的結(jié)果為對比失敗,以指示所述設(shè)備消息與所述前置條件匹配失敗。
16、作為本發(fā)明的進(jìn)一步改進(jìn),獲取來自所述半導(dǎo)體設(shè)備的設(shè)備消息,基于所述設(shè)備消息和當(dāng)前測試步驟對應(yīng)的預(yù)期結(jié)果的比較確定當(dāng)前測試步驟的步驟測試結(jié)果,包括:
17、獲取來自所述半導(dǎo)體設(shè)備的一條設(shè)備消息;
18、判斷一條所述設(shè)備消息的標(biāo)識信息與當(dāng)前測試步驟對應(yīng)的所有預(yù)期結(jié)果中的一個預(yù)期結(jié)果的標(biāo)識信息是否對應(yīng)成功,若是,則判斷一條所述設(shè)備消息的內(nèi)容與對應(yīng)成功的預(yù)期結(jié)果的內(nèi)容是否對比成功,以確定一條設(shè)備消息與對應(yīng)成功的預(yù)期結(jié)果的對比結(jié)果,并等待下一條所述設(shè)備消息,若所述設(shè)備消息的標(biāo)識信息與所有所述預(yù)期結(jié)果的標(biāo)識信息均未對應(yīng)成功,則等待下一條所述設(shè)備消息,其中,所述對比結(jié)果指示所述設(shè)備消息與所述預(yù)期結(jié)果匹配成功或匹配失?。?/p>
19、重復(fù)實(shí)施所述設(shè)備消息的獲取以及與預(yù)期結(jié)果的對應(yīng)及對比,當(dāng)所述當(dāng)前測試步驟對應(yīng)的所有預(yù)期結(jié)果均已對比結(jié)束后,判斷所述當(dāng)前測試步驟對應(yīng)的所有預(yù)期結(jié)果的對比結(jié)果是否均指示匹配成功,若是,則確定當(dāng)前測試步驟的步驟測試結(jié)果為測試成功,若否,則確定當(dāng)前測試步驟的步驟測試結(jié)果為測試失敗。
20、作為本發(fā)明的進(jìn)一步改進(jìn),判斷一條所述設(shè)備消息的標(biāo)識信息與當(dāng)前測試步驟對應(yīng)的所有預(yù)期結(jié)果中的一個預(yù)期結(jié)果的標(biāo)識信息是否對應(yīng)成功,包括:
21、當(dāng)所述設(shè)備消息為指令一次消息、指令二次消息或事件二次消息時,判斷一條所述設(shè)備消息的消息頭與當(dāng)前測試步驟對應(yīng)的所有預(yù)期結(jié)果中的一個預(yù)期結(jié)果的消息頭是否相同,當(dāng)相同時,判斷的結(jié)果為對應(yīng)成功,否則,判斷的結(jié)果為對應(yīng)失?。?/p>
22、當(dāng)所述設(shè)備消息為事件一次消息時,判斷一條所述設(shè)備消息的事件id與當(dāng)前測試步驟對應(yīng)的所有預(yù)期結(jié)果中的一個預(yù)期結(jié)果的事件id是否相同,當(dāng)相同時,判斷的結(jié)果為對應(yīng)成功,否則,判斷的結(jié)果為對應(yīng)失敗。
23、作為本發(fā)明的進(jìn)一步改進(jìn),判斷一條所述設(shè)備消息的內(nèi)容與對應(yīng)成功的預(yù)期結(jié)果的內(nèi)容是否對比成功,包括:
24、判斷一條所述設(shè)備消息的內(nèi)容與對應(yīng)成功的預(yù)期結(jié)果的內(nèi)容是否相同,當(dāng)相同時,判斷的結(jié)果為對比成功,以指示所述設(shè)備消息與所述預(yù)期結(jié)果匹配成功,否則,判斷的結(jié)果為對比失敗,以指示所述設(shè)備消息與所述預(yù)期結(jié)果匹配失敗。
25、作為本發(fā)明的進(jìn)一步改進(jìn),在獲取來自所述半導(dǎo)體設(shè)備的設(shè)備消息之后,對當(dāng)前測試步驟的測試還包括:
26、獲取所述設(shè)備消息的消息類型,所述消息類型為指令一次消息、指令二次消息、事件一次消息或事件二次消息。
27、作為本發(fā)明的進(jìn)一步改進(jìn),所述測試用例集包含標(biāo)準(zhǔn)化測試用例集和/或非標(biāo)準(zhǔn)化測試用例集;
28、所述自動化測試方法還包括:
29、當(dāng)一個所述目標(biāo)測試用例的用例測試結(jié)果指示測試失敗時,等待所述半導(dǎo)體設(shè)備的恢復(fù)指令,所述恢復(fù)指令為用戶對半導(dǎo)體設(shè)備的輸入指令,基于所述恢復(fù)指令實(shí)施對所述目標(biāo)測試用例組中的另一目標(biāo)測試用例的所述測試,以獲得另一目標(biāo)測試用例的用例測試結(jié)果。
30、作為本發(fā)明的進(jìn)一步改進(jìn),所述目標(biāo)測試用例組包括一個目標(biāo)測試用例或多個有序排列的目標(biāo)測試用例,當(dāng)其包括多個有序排列的目標(biāo)測試用例時,基于多個所述目標(biāo)測試用例的順序依次對各所述目標(biāo)測試用例實(shí)施測試,以獲得各所述目標(biāo)測試用例的用例測試結(jié)果。
31、作為本發(fā)明的進(jìn)一步改進(jìn),基于所述目標(biāo)測試用例所包含的測試步驟的順序依次對各當(dāng)前測試步驟實(shí)施測試以獲得目標(biāo)測試用例的測試結(jié)果,所述用例測試結(jié)果指示目標(biāo)測試用例測試成功或測試失敗,包括:
32、基于所述順序獲得一個測試步驟作為當(dāng)前測試步驟,對所述當(dāng)前測試步驟實(shí)施測試以獲得當(dāng)前測試步驟的步驟測試結(jié)果;
33、當(dāng)所述步驟測試結(jié)果指示測試成功時,基于所述順序獲得另一個測試步驟作為當(dāng)前測試步驟并對其實(shí)施所述測試,若所述目標(biāo)測試用例中的各測試步驟的步驟測試結(jié)果均指示測試成功,則獲得目標(biāo)測試用例的用例測試結(jié)果,所述用例測試結(jié)果指示目標(biāo)測試用例測試成功;
34、當(dāng)所述步驟測試結(jié)果指示測試失敗時,終止基于所述順序獲取當(dāng)前測試步驟的過程,并獲得目標(biāo)測試用例的用例測試結(jié)果,所述用例測試結(jié)果指示目標(biāo)測試用例測試失敗。
35、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
36、在實(shí)施對測試步驟的測試過程中,由主機(jī)基于目標(biāo)測試用例所包含的測試步驟的順序依次對各測試步驟實(shí)施測試以獲得目標(biāo)測試用例的用例測試結(jié)果,獲取目標(biāo)測試用例組中各目標(biāo)測試用例的用例測試結(jié)果,由此實(shí)現(xiàn)自動化測試,一般無需人工操作,以解決現(xiàn)有的eap模擬測試過程中依賴于人工所存在的測試不便的缺陷,且測試過程簡單、實(shí)用性高。