TWI650710B - 測試流程的檢測方法 - Google Patents

測試流程的檢測方法 Download PDF

Info

Publication number
TWI650710B
TWI650710B TW107112527A TW107112527A TWI650710B TW I650710 B TWI650710 B TW I650710B TW 107112527 A TW107112527 A TW 107112527A TW 107112527 A TW107112527 A TW 107112527A TW I650710 B TWI650710 B TW I650710B
Authority
TW
Taiwan
Prior art keywords
test
current instruction
instruction
test process
item
Prior art date
Application number
TW107112527A
Other languages
English (en)
Other versions
TW201944235A (zh
Inventor
鄭宗庭
Original Assignee
和碩聯合科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 和碩聯合科技股份有限公司 filed Critical 和碩聯合科技股份有限公司
Priority to TW107112527A priority Critical patent/TWI650710B/zh
Application granted granted Critical
Publication of TWI650710B publication Critical patent/TWI650710B/zh
Priority to CN201910208283.1A priority patent/CN110377495A/zh
Publication of TW201944235A publication Critical patent/TW201944235A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一種測試流程的檢測方法。讀入測試流程的程式碼腳本至執行佇列。依序自執行佇列中取出一個測試指令作為當前指令,並判斷當前指令是否產生衝突。在判定當前指令沒有產生衝突時,判斷是否產生中斷。在偵測到中斷且測試流程被更改時,更新執行佇列,以重新依序取出一個測試指令作為當前指令。

Description

測試流程的檢測方法
本發明是有關於一種測試機制,且特別是有關於一種測試流程的檢測方法。
傳統利用程式或工具等來控制對應的儀器設備或是進行一連串的任務處理時,其流程通常是固定的或是事前編輯之後按預定的順序進行。然而,一般而言,程式或任務執行的流程開始之後就無法讓使用者任意更動,僅能以原本的設計進行至結束,即使能夠使用中斷或暫停,也無法讓使用者移動執行階段至其他步驟或是單一步驟重複執行,因為任意跳躍可能會造成有前後關聯的步驟被中斷而發生錯誤。因此,在任務進行過程中若需要隨時切換參數或是進行流程跳躍時,需要停止流程來重新編輯,之後重頭開始執行整個流程。
本發明提供一種測試流程的檢測方法,可在測試流程執行的過程中來編輯測試流程,而無需重頭執行測試流程。
本發明的測試流程的檢測方法,包括:讀入測試流程的程式碼腳本(script)至執行佇列,其中程式碼腳本包括多個測試指令;依序自執行佇列中取出其中一個測試指令作為當前指令;判斷當前指令是否產生衝突;在判定當前指令沒有產生衝突時,判斷是否產生中斷;在偵測到中斷之後,判斷測試流程是否被更改;當判定測試流程被更改時,更新執行佇列,以重新依序自執行佇列中取出一個測試指令作為當前指令。
在本發明的一實施例中,上述測試流程的檢測方法更包括:在判定當前指令產生衝突時,修改當前指令並更新執行佇列,之後重新依序自執行佇列中取出一個測試指令作為當前指令。
在本發明的一實施例中,上述在判定當前指令產生衝突時,修改當前指令的步驟包括:分析當前指令,以獲得當前指令的多個欄位對應的多個內容;依據所述內容獲得衝突對應的分類;以及自資料庫中取得所述分類對應的參數列表,據以來修改當前指令。
在本發明的一實施例中,上述當前指令的欄位包括項目名稱欄位、錯誤代碼欄位、功能名稱欄位以及參數列表欄位。
在本發明的一實施例中,上述測試流程的檢測方法更包括:當未偵測到中斷時,執行當前指令。
在本發明的一實施例中,上述測試流程的檢測方法更包括:當判定測試流程未被更改時,執行當前指令。
在本發明的一實施例中,上述衝突為連線錯誤、指令錯誤以及回傳錯誤至少其中一個。
在本發明的一實施例中,在偵測到中斷之後,更包括:顯示使用者介面,所述使用者介面用以接收使用者操作來修改測試流程。
在本發明的一實施例中,在顯示使用者介面之後,更包括:透過使用者介面來列出測試指令中尚未執行的指令;以及基於使用者操作,對尚未執行的測試指令重新編輯。
在本發明的一實施例中,在偵測到該中斷之後,更包括:在測試流程被更改之前,倘若偵測到中斷被取消,執行當前指令。
基於上述,本發明測試流程開始之後,提供中斷機制供使用者來編輯測試流程,並且調對應的動作之後再進行,進而達成在任務進行時任意切換、跳躍或重複執行的功能。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是依照本發明一實施例的電子裝置的方塊圖。請參照圖1,電子裝置100包括處理器110、儲存設備120以及顯示器130。儲存設備120中儲存有由一或多個程式碼片段組成的測試模組,由處理器110執行測試模組,透過測試模組來執行流程控制演算法,進而實現下述測試流程的檢測方法。
圖2是依照本發明一實施例的測試流程的檢測方法流程圖。請參照圖2,在步驟S205中,流程控制演算法讀入測試流程的程式碼腳本(script)至執行佇列。
接著,在步驟S210中,流程控制演算法依序自執行佇列中取出其中一個測試指令作為當前指令,藉此開始測試流程。即,依照執行順序來檢測每個測試指令。
接著,在步S220中,流程控制演算法判斷當前指令是否產生衝突。在此,可能會有的衝突為連線錯誤、指令錯誤或是回傳錯誤。例如,倘若當前指令的執行前提為必須與網路連線,但此時電子裝置100尚未與網路連線,則便會判定產生衝突。或者,倘若當前指令的回傳值不符預設值,亦會判定產生衝突。另外,當前指令的指令錯誤亦會判定產生衝突。
在判定當前指令產生衝突時,如步驟S230所示,流程控制演算法會自動修改當前指令,並且在步驟S240中,更新執行佇列的測試指令。之後,返回步驟S210,流程控制演算法重新依序自執行佇列中取出其中一個測試指令作為當前指令。也就是繼續依照執行順序取出下一個測試指令來作為當前指令。例如,先藉由分析程式碼腳本的關聯性,來判斷各測試指令執行時的先後順序,再由流程控制演算法判斷流程跳躍時需要在執行佇列中新增、插入或是移除測試指令。
進一步地說,步驟S230更包括步驟S231~步驟S235。在步驟S231中,分析當前指令,以獲得當前指令的多個欄位對應的多個內容。接著,在步驟S233中,依據所對應的內容獲得所述衝突對應的分類。然後,在步驟S235中,自對應所述分類的資料庫中取出對應的參數列表,據以來修改當前指令。
例如,多個欄位可包括項目名稱欄位、錯誤代碼欄位、功能名稱欄位以及參數列表欄位。圖3 A及圖3B是依照本發明一實施例的執行佇列中測試程式的示意圖。在此,測試指令的格式例如為「#項目名稱 | 錯誤代碼 | 功能名稱 | 參數列表」。請參照圖3A,其為執行佇列中測試程式的示意圖。假設測試指令A1為:「偵測待測物開機完成 | BOOTERR1 | DETECT | FUNC=PING; IP=192.168.100.1; TIMEOUT=10000」。並且,假設測試指令A2為「檢查待測物生產序號 | ISNERR1 | COMMAND | FUNC= TELNET; COMMAND="GET ISN"; RESPONSE="ISN = * "」。
其中,測試指令A1的項目名稱為「偵測待測物開機完成」,錯誤代碼為「BOOTERR1」、功能名稱為「DETECT」以及參數列表為「FUNC=PING; IP=192.168.100.1; TIMEOUT=10000」。測試指令A2的項目名稱為「檢查待測物生產序號」,錯誤代碼為「ISNERR1」、功能名稱為「COMMAND」以及參數列表為「FUNC= TELNET; COMMAND="GET ISN"; RESPONSE="ISN = * "」。
底下以測試指令A2為當前指令來進行說明。於步驟S220中,發現測試指令A2的執行前提為必須與網路連線,但此時電子裝置100沒有與網路連線,表示測試指令A2可能發生衝突,故,判定測試指令A2發生衝突。接著,執行步驟S230。
首先,在步驟S231中,分析測試指令A2,以獲得測試指令A2的多個欄位對應的多個內容,藉此得知「COMMAND」功能可能會有的衝突分別為連線錯誤、指令錯誤以及回傳錯誤。接著,在步驟S233中,依據所述內容獲得所述衝突對應的分類。例如,將所述衝突連線錯誤分類為「新增指令」;以及指令錯誤/回傳錯誤分類為「修改參數列表」。之後,在步驟S235中,自資料庫中取得所述分類的對應的參數列表,據以來修改測試指令A2。例如,從資料庫(所有已經在工廠量產的程式碼腳本集合)中將連線錯誤所需新增的指令以及使用到的參數列表來獲得需要新增的指令並且修改原測試指令A2的參數列表欄位的內容,如圖3B所示。新增的測試指令B例如為「與待測物建立連線 | CONNERR | CONNECT | FUNC = TELNET; IP=192.168.100.1; PORT=23; SESSION=0」,而修改後的測試指令A2為「檢查待測物生產序號 | ISNERR1 | COMMAND | FUNC= TELNET; COMMAND="GET ISN"; RESPONSE="ISN = * "; SESSION=0」。
之後,將所述新增的測試指令B(其執行順序位於修改後的測試指令A2之前)與修改後的測試指令A2更新至執行佇列(步驟S240),之後返回步驟S210,流程控制演算法重新依序自執行佇列中取出一個測試指令作為當前指令。在此,流程控制演算法會以新增的指令作為當前指令來進行後續動作。
在本實施例中,為了因應各個獨立步驟之間的關聯性,會事先建立如巨集般的指令集(對應於不同分類的資料庫),在相關步驟進行時,能夠隨時使用此指令集。在分析了當前指令並判斷跳躍的目的來選擇對應的指令集,微調對應的動作之後再執行,即可避免無限制地跳躍時可能發生的錯誤。
而在判定當前指令沒有產生衝突時,如步驟S245所示,流程控制演算法會判斷是否產生中斷。例如,可設定一組熱鍵或在顯示畫面中設定虛擬快捷鍵,使用者藉由致能熱鍵或虛擬快捷鍵來觸發中斷。
當判定未產生中斷時,於步驟S255中,執行當前指令。例如,以所述測試指令A1、測試指令A2為例(測試指令A2的執行順序緊接於測試指令A1之後),在執行測試指令A1時,會檢查測試指令A1是否衝突。倘若在執行測試指令A1的期間沒有產生衝突也沒有中斷,則在執行測試指令A1對應的指令任務後,往下繼續逐行檢查,即檢查測試指令A2。
在當前指令對應的任務執行完畢之後,在步驟S260中,判斷執行佇列中的測試指令是否全部執行完畢,倘若測試指令已全部執行完畢,則如步驟S265所示,結束測試流程。倘若尚有測試指令未執行,則回到步驟S210。
另一方面,在判定當前指令沒有產生衝突且在偵測到中斷之後,於步驟S250中,判斷測試流程是否被更改。在此,可在偵測到由熱鍵或虛擬快捷鍵所產生的中斷時,顯示一使用者介面,以透過使用者介面來修改測試流程。流程控制演算法會透過使用者介面來列出測試指令中尚未執行的指令;以及基於使用者操作,對尚未執行的測試指令重新編輯(例如,修改、新增、刪除測試指令)。流程控制演算法可在使用者介面中列出尚未執行的測試指令,供使用者對尚未執行的測試指令來進行編輯。
當判定測試流程未被更改時,如步驟S255所示,執行當前指令。例如,可在觸發中斷後的一預設時間內未更改測試流程,便隨即執行當前指令。另外,在測試流程被更改之前,倘若偵測到中斷被取消,亦可執行步驟S255,以執行當前指令。
在此,每一個測試步驟都會去偵測使用者是否有去中斷。只要中斷,便會進一步去判斷使用者是否要編輯測試流程。例如,測試流程的第一個步驟為控制錄音筆,下一個階段例如為檢查麥克風或控制麥克風的功能。倘若偵測到使用者致能中斷,則會進入編輯流程,使用者可以重新調整麥克風的功能,或是去調整通用序列匯流排(Universal Serial Bus,USB)埠的功能。
當判定測試流程被更改時,如步驟S240所示,更新執行佇列。之後,返回步驟S210,重新依序自執行佇列中取出其中一個測試指令作為當前指令。
例如,假設設定「Enter」鍵作為中斷的熱鍵,在使用者按下「Enter」鍵時,會暫停繼續執行測試流程,並顯示使用者介面供使用者進行編輯操作。使用者能夠透過使用者介面來新增、修改或刪除測試流程中的測試指令。
例如,使用者透過使用者介面將後續執行的測試指令A-2往前搬移至緊接於當前指令之前。在此,進一步假設測試指令A-2屬於一個測試指令群組的其中一個,即,同一個測試項目可能會包括多個測試指令。所述測試指令群組依照執行順序包括測試指令A-1、測試指令A-2以及測試指令A-3。
而在更新執行佇列之後,便會以測試指令A-2作為當前指令,之後在檢查衝突時,會發現測試指令A-2產生衝突。這是因為,由於測試指令A-1並未執行,因此在檢查測試指令A-2時便無法獲得正確的回應,據此便判定測試指令A-2產生衝突。在執行步驟S231~S235之後,流程控制演算法會自動在測試指令A-2的前後分別新增測試指令A-1與測試指令A-3。之後更新執行佇列。之後,自更新後的執行佇列中,依照執行順序來取出測試指令進行檢測,直到所有的測試指令執行完畢。
綜上所述,所述實施例是在測試流程已經開始的情況下,判斷測試指令是否發生衝突,並且提供讓使用者進行編輯的功能。透過所述實施例,可以不需重頭進行測試,達成在任務進行時任意切換、跳躍或重複執行的功能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100‧‧‧電子裝置
110‧‧‧處理器
120‧‧‧儲存設備
130‧‧‧顯示器
A1、A2、B‧‧‧測試指令
S205~S265‧‧‧測試流程的檢測方法各步驟
圖1是依照本發明一實施例的電子裝置的方塊圖。 圖2是依照本發明一實施例的測試流程的檢測方法流程圖。 圖3A及圖3B是依照本發明一實施例的執行佇列中測試程式的示意圖。

Claims (8)

  1. 一種測試流程的檢測方法,包括:讀入一測試流程的一程式碼腳本至一執行佇列,其中該程式碼腳本包括多個測試指令;依序自該執行佇列中取出該些測試指令的其中一個作為一當前指令;判斷該當前指令是否產生一衝突;在判定該當前指令產生該衝突時,修改該當前指令並更新該執行佇列,其中修改該當前指令的步驟包括:分析該當前指令,以獲得該當前指令的多個欄位對應的多個內容;依據該些內容獲得該衝突對應的一分類;以及自一資料庫中取得該分類的對應的參數列表,據以來修改該當前指令;在判定該當前指令沒有產生該衝突時,判斷是否產生一中斷;在偵測到該中斷之後,判斷該測試流程是否被更改;在更新該執行佇列之後,重新依序自該執行佇列中取出該些測試指令的其中一個作為該當前指令。
  2. 如申請專利範圍第1項所述的測試流程的檢測方法,其中該當前指令的該些欄位包括一項目名稱欄位、一錯誤代碼欄位、一功能名稱欄位以及一參數列表欄位。
  3. 如申請專利範圍第1項所述的測試流程的檢測方法,更包括:當未偵測到該中斷時,執行該當前指令。
  4. 如申請專利範圍第1項所述的測試流程的檢測方法,更包括:當判定該測試流程未被更改時,執行該當前指令。
  5. 如申請專利範圍第1項所述的測試流程的檢測方法,其中該衝突為一連線錯誤、一指令錯誤以及一回傳錯誤至少其中一個。
  6. 如申請專利範圍第1項所述的測試流程的檢測方法,其中在偵測到該中斷之後,更包括:顯示一使用者介面,該使用者介面用以接收一使用者操作來修改該測試流程。
  7. 如申請專利範圍第6項所述的測試流程的檢測方法,其中在顯示該使用者介面的步驟之後,更包括:透過該使用者介面來列出該些測試指令中尚未執行的指令;以及基於該使用者操作,對尚未執行的該些測試指令重新編輯。
  8. 如申請專利範圍第1項所述的測試流程的檢測方法,其中在偵測到該中斷之後,更包括:在該測試流程被更改之前,倘若偵測到該中斷被取消,執行該當前指令。
TW107112527A 2018-04-12 2018-04-12 測試流程的檢測方法 TWI650710B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW107112527A TWI650710B (zh) 2018-04-12 2018-04-12 測試流程的檢測方法
CN201910208283.1A CN110377495A (zh) 2018-04-12 2019-03-19 测试流程的检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107112527A TWI650710B (zh) 2018-04-12 2018-04-12 測試流程的檢測方法

Publications (2)

Publication Number Publication Date
TWI650710B true TWI650710B (zh) 2019-02-11
TW201944235A TW201944235A (zh) 2019-11-16

Family

ID=66213709

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107112527A TWI650710B (zh) 2018-04-12 2018-04-12 測試流程的檢測方法

Country Status (2)

Country Link
CN (1) CN110377495A (zh)
TW (1) TWI650710B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113315675B (zh) * 2021-05-08 2023-02-24 山东英信计算机技术有限公司 一种白盒交换机U-Boot自动化测试方法、系统和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200812293A (en) * 2006-08-18 2008-03-01 Hon Hai Prec Ind Co Ltd XDSL modem testing system and method
CN105209925A (zh) * 2013-04-16 2015-12-30 爱德万测试公司 在用于编译自动化半导体器件测试的测试计划的开发环境内实施编辑并更新功能性
CN106909504A (zh) * 2017-02-14 2017-06-30 上海斐讯数据通信技术有限公司 一种自动化测试脚本维护方法及设备
WO2017219851A1 (zh) * 2016-06-24 2017-12-28 深圳市中兴微电子技术有限公司 一种执行测试用例的方法、装置及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103186435B (zh) * 2011-12-28 2015-11-25 英业达股份有限公司 系统错误处理方法与使用该方法的服务器系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200812293A (en) * 2006-08-18 2008-03-01 Hon Hai Prec Ind Co Ltd XDSL modem testing system and method
CN105209925A (zh) * 2013-04-16 2015-12-30 爱德万测试公司 在用于编译自动化半导体器件测试的测试计划的开发环境内实施编辑并更新功能性
WO2017219851A1 (zh) * 2016-06-24 2017-12-28 深圳市中兴微电子技术有限公司 一种执行测试用例的方法、装置及计算机可读存储介质
CN106909504A (zh) * 2017-02-14 2017-06-30 上海斐讯数据通信技术有限公司 一种自动化测试脚本维护方法及设备

Also Published As

Publication number Publication date
TW201944235A (zh) 2019-11-16
CN110377495A (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
CN107562610B (zh) 获取页面加载时间的方法、装置、终端和介质
EP2058747B1 (en) Device and method for inspecting software for vulnerabilities
US9280451B2 (en) Testing device
US20190227917A1 (en) Adaptive system for mobile device testing
CN111026645A (zh) 用户界面自动化测试方法、装置、存储介质及电子设备
WO2018036531A1 (zh) 一种测试用例生成方法
US10521335B2 (en) Context-based device testing
CN106021101B (zh) 对移动终端进行测试的方法及装置
CN111190827A (zh) 接口自动化测试方法、装置、存储介质及电子设备
WO2018036529A1 (zh) 一种可视化测试报告生成方法
CN112052169A (zh) 测试管理方法、系统、设备以及计算机可读存储介质
JP2006268666A (ja) 補正機能を持つ自動試験システム、自動試験方法、およびプログラム
CN110806965A (zh) 自动测试方法、装置、设备和介质
CN110543429B (zh) 测试用例调试方法、装置及存储介质
CN107038117B (zh) 一种基于事件处理函数间定义-引用的web自动化测试方法
TWI650710B (zh) 測試流程的檢測方法
CN111736951A (zh) 自动驾驶的仿真方法、计算机设备、及存储介质
KR101460860B1 (ko) 상태 기반의 테스트 시나리오 모델을 이용한 gui 테스트 장치 및 방법
CN113377650A (zh) 自动化测试用例运行方法、装置、测试设备及存储介质
CN110830796B (zh) 电视应用测试方法、电视应用测试装置和可读存储介质
CN109359042B (zh) 一种基于路径搜索算法的自动化测试方法
CN112765041B (zh) 游戏自动化测试方法、装置及电子设备
CN114238110A (zh) 软件应用测试方法、装置、设备及存储介质
CN111400193A (zh) 测试用例生成方法、装置、设备及存储介质
CN110795341A (zh) 一种服务器的自动测试方法、系统及装置