TW202409831A - 改良使用者介面的計算機系統與方法 - Google Patents

改良使用者介面的計算機系統與方法 Download PDF

Info

Publication number
TW202409831A
TW202409831A TW112142969A TW112142969A TW202409831A TW 202409831 A TW202409831 A TW 202409831A TW 112142969 A TW112142969 A TW 112142969A TW 112142969 A TW112142969 A TW 112142969A TW 202409831 A TW202409831 A TW 202409831A
Authority
TW
Taiwan
Prior art keywords
control
distance
page
user interface
user
Prior art date
Application number
TW112142969A
Other languages
English (en)
Inventor
克里斯多福M 梅爾斯
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 美商快捷藥方策略發展公司
Publication of TW202409831A publication Critical patent/TW202409831A/zh

Links

Images

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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/487Arrangements for providing information services, e.g. recorded voice services or time announcements
    • H04M3/493Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Geometry (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • User Interface Of Digital Computer (AREA)
  • Debugging And Monitoring (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Electrotherapy Devices (AREA)
  • Paper (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)

Abstract

用以改良一使用者介面的計算機系統被揭露。該計算機系統包含增強模組,其用以取得(i)到達目標的最短路徑的路徑資訊,以及(ii)使用者互動實驗;距離模組,其用以針對該使用者介面的各個頁面,基於該組使用者互動實驗,確定該頁面的增強距離;以及步驟分析模組,用以確定使用者互動實驗指示該最短路徑中各步驟偏離次數的計數。該確定的操作是基於針對與該步驟相關的該使用者介面的該頁面所確定的該增強距離。該增強模組用以,因應於確定該步驟需要增強,針對該步驟產生一增強。針對該步驟產生一增強。產生該增強的操作包含以下至少一操作:為與該步驟相關的一動作產生一提示、以及改變與該步驟相關的一使用者介面元件。

Description

改良使用者介面的計算機系統與方法
本揭露關於使用者介面(user interface,UI)的測試,且更具體地,關於確定該使用者介面中到達該目標的一最短路徑以轉換該使用者介面。
現行地,實體(例如,公司)會提供客戶多種存取資訊(例如,客戶下訂單的狀態)的方法。客戶可致電公司以取得該資訊。可替換地,客戶可存取與公司相關的網頁頁面以獲得資訊。客戶可能需要操作應用程式的使用者介面來存取資訊。舉例而言,客戶可能需要透過使用者名稱與密碼以登入網頁應用程式(Web application),然後才能存取資訊。許多客戶可能無法正確地操作使用者介面(例如,登入網頁應用程式並瀏覽至相關螢幕),因此可能選擇致電公司以取得資訊。
本文於此描述先前技術的目的只是為了總體地提出本揭露的背景。在所描述的內容中,若涉及到本案發明人的工作成果或是涉及到本案申請時不屬於先前技術的部分,均非明示或暗示申請人將其自承為先前技術。
一種用以測試一使用者介面的計算機系統被揭露。該計算機系統包含一測試產生模組,其用以取得複數測試參數。該複數測試參數包含:(i)一位置(location),該使用者介面能夠在該位置被存取,以及(ii)與該使用者介面相關的一目標的準則(criteria)。該計算機系統還包含一測試執行模組,其用以:(i)基於該位置取得該使用者介面的一狀態,以及(ii)將一當前地點(position)設定為該使用者介面內的一預設位置。該計算機系統還包含一分析模組,其用以:(i)分析該使用者介面的一指定狀態(ii)因應於確定該指定狀態滿足該目標的該準則,輸出一成功指標,以及(iii)因應於確定該指定狀態不滿足該目標的該準則,基於在該指定狀態內的複數使用者介面元件確定一組可能的動作,且將該結果設定為該組可能的動作。該測試執行模組用以向該分析模組提供該使用者介面的一狀態,並從該分析模組接收該輸出。該測試執行模組還用以,因應於接收的該輸出為該組可能的動作:從該組可能的動作中選擇與一第一使用者介面元件相關的一動作;執行被選擇的該動作;辨識該第一使用者介面元件的一點;基於(i)該點的坐標以及(ii)該當前地點的坐標,更新一測試距離;將當前地點設定為該點;且使用(i)被選擇的該動作以及(ii)該組可能的動作,補充測試資料。該測試執行模組還用以:(i)因應於接收的該輸出是該成功指標,在一完成測試集合中儲存該測試距離與該測試資料,以及(ii)基於該完成測試集合,確定該使用者介面中到達該目標的一最短路徑。
在其他特徵中,該複數測試參數包含允許的測試的一數量。該測試執行模組用以:因應於接收的該輸出為該成功指標,增加一計數器的數值。確定該最短路徑的操作包含:因應於確定該計數器的一數值大於或等於該允許的測試的該數量,選擇該完成測試集合中具有最短測試距離的一完成的測試。
又在其他的特徵中,該點是該第一使用者介面元件中相對於該當前地點的一最接近點,且更新該測試距離的操作包含:(i)確定該當前地點的該坐標與該點的該坐標之間的一距離,以及(ii)將確定的該距離與該測試距離相加。
在其他特徵中,該分析模組用以:針對該組可能的動作中的各個動作,(i)確定執行該動作將到達該目標的一機率,以及(ii)將確定的該機率儲存在該組可能的動作中。從該組可能的動作中選擇該動作的操作包含:基於儲存在該組可能的動作中的該複數機率,從該組可能的動作中選擇該動作。
在進一步的特徵中,該計算機系統包含一神經網路模組,其用以操作複數神經網路。該分析模組用以選擇性地使用該複數神經網路中的至少一神經網路,以確定執行該動作將到達該目標的該機率。
在更進一步的特徵中,該複數神經網路包含一長短期記憶神經網路(long short-term memory neural network)與一卷積神經網路(convolutional neural network)中的至少一個。
在其他特徵中,該計算機系統包含一訓練模組,其用以:因應於接收的該輸出為該成功指標,使用該測試資料訓練該複數神經網路;基於儲存在該完成測試集合中的該複數機率,確定訓練後的該複數神經網路的一效能;且因應於確定訓練後的該複數神經網路的該效能的一數值大於一預設值,將該複數神經網路的一狀態設定為訓練過的(trained)。
在進一步的特徵中,該計算機系統包含一蒙地卡羅(Monte Carlo)模組,其用以執行一蒙地卡羅模擬以產生一隨機值;以及一重新加權模組,其用以(i)因應於該複數神經網路該狀態為訓練過的,基於該複數神經網路中的至少一神經網路的一輸出,更新儲存在該測試資料中的各個機率;且(ii)因應於該複數神經網路該狀態不為訓練過的,使用由該蒙地卡羅模組產生的一隨機值,更新儲存在該測試資料中的各個機率。
一種用以測試一使用者介面的方法被揭露。該方法包含:取得複數測試參數。該複數測試參數包含:(i)一位置,該使用者介面能夠在該位置被存取;以及(ii)與該使用者介面相關的一目標的準則。該方法還包含:基於該位置取得該使用者介面的一狀態;將一當前地點設定為該使用者介面內的一預設位置;分析該使用者介面的一指定狀態;因應於確定該指定狀態滿足該目標的該準則,將一輸出設定為一成功指標;因應於確定該指定狀態不滿足該目標的該準則,(i)基於在該指定狀態內的複數使用者介面元件確定一組可能的動作,且(ii)將該輸出設定為該組可能的動作。該方法還包含:因應於該輸出為該組可能的動作:從該組可能的動作中選擇一動作,其中該動作與一第一使用者介面元件相關,執行被選擇的該動作,辨識該第一使用者介面元件的一點,基於(i)該點的坐標以及(ii)該當前地點的坐標,更新一測試距離,將當前地點設定為該點,且使用(i)被選擇的該動作以及(ii)該組可能的動作,補充測試資料。該方法還包含:(i)因應於該輸出為該成功指標,將該測試距離與該測試資料儲存在一完成測試集合中,以及(ii)基於該完成測試集合,確定該使用者介面中到達該目標的一最短路徑。
在其他特徵中,該複數測試參數包含允許的測試的一數量。該方法包含:因應於該輸出為該成功指標,增加一計數器的數值。確定該最短路徑的步驟包含:因應於確定該計數器的一數值大於或等於該允許的測試的該數量,選擇該完成測試集合中具有最短測試距離的一完成的測試。
又在其他的特徵中,該點是該第一使用者介面元件中相對於該當前地點的一最接近點。更新該測試距離的步驟包含:(i)確定該當前地點的該坐標與該點的該坐標之間的一距離,以及(ii)將確定的該距離與該測試距離相加。
在其他特徵中,該方法包含:針對該組可能的動作中的各個動作,(i)確定執行該動作將到達該目標的一機率,以及(ii)將確定的該機率儲存在該組可能的動作中。從該組可能的動作中選擇該動作的步驟包含:基於儲存在該組可能的動作中的該複數機率,從該組可能的動作中選擇該動作。
在進一步的特徵中,該方法包含:因應於該輸出為該成功指標:使用該測試資料訓練複數神經網路;基於儲存在該完成測試集合中的該複數機率,確定訓練後的該複數神經網路的一效能;且因應於確定訓練後的該複數神經網路的該效能的一數值大於一預設值,將該複數神經網路的一狀態設定為訓練過的。
在更進一步的特徵中,該方法包含:因應於該複數神經網路該狀態為訓練過的,基於該複數神經網路中的至少一神經網路的一輸出,更新儲存在該測試資料中的各個機率;以及因應於該複數神經網路該狀態不為訓練過的,使用一隨機值更新儲存在該測試資料中的各個機率。
一種非暫時性計算機可讀取媒體(non-transitory computer-readable medium)被揭露,其儲存處理器可執行的複數指令。該複數指令包含:取得複數測試參數。該複數測試參數包含:(i)一位置,一使用者介面能夠在該位置被存取;以及(ii)與該使用者介面相關的一目標的準則。該複數指令也包含:基於該位置取得該使用者介面的一狀態;將一當前地點設定為該使用者介面內的一預設位置;分析該使用者介面的一指定狀態;因應於確定該指定狀態滿足該目標的該準則,將一輸出設定為一成功指標;因應於確定該指定狀態不滿足該目標的該準則,(i)基於在該指定狀態內的使用者介面元件確定一組可能的動作,且(ii)將該輸出設定為該組可能的動作。該複數指令還包含:因應於該輸出為該組可能的動作:從該組可能的動作中選擇一動作,其中該動作與一第一使用者介面元件相關;執行被選擇的該動作;辨識該第一使用者介面元件的一點;基於(i)該點的坐標以及(ii)該當前地點的坐標,更新一測試距離;將當前地點設定為該點,且使用(i)被選擇的該動作以及(ii)該組可能的動作,補充測試資料。該複數指令也包含:(i)因應於該輸出為該成功指標,將該測試距離與該測試資料儲存在一完成測試集合中;以及(ii)基於該完成測試集合,確定該使用者介面中到達該目標的一最短路徑。
在其他特徵中,該複數測試參數包含允許的測試的一數量。該複數指令包含:因應於該輸出為該成功指標,增加一計數器的數值。確定該最短路徑的指令包含:因應於確定該計數器的一數值大於或等於該允許的測試的該數量,選擇該完成測試集合中具有最短測試距離的一完成的測試。
又在其他的特徵中,該點是該第一使用者介面元件中相對於該當前地點的一最接近點。更新該測試距離的指令包含:(i)確定該當前地點的該坐標與該點的該坐標之間的一距離,以及(ii)將確定的該距離與該測試距離相加。
在其他特徵中,該複數指令包含:針對該組可能的動作中的各個動作,(i)確定執行該動作將到達該目標的一機率,以及(ii)將確定的該機率儲存在該組可能的動作中。從該組可能的動作中選擇該動作的指令包含:基於儲存在該組可能的動作中的該複數機率,從該組可能的動作中選擇該動作。
在進一步的特徵中,該複數指令包含:因應於該輸出為該成功指標:使用該測試資料訓練複數神經網路;基於儲存在該完成測試集合中的該複數機率,確定訓練後的該複數神經網路的一效能;且因應於確定訓練後的該複數神經網路的該效能的一數值大於一預設值,將該複數神經網路的一狀態設定為訓練過的。
在更進一步的特徵中,該複數指令包含:(i)因應於該複數神經網路該狀態為訓練過的,基於該複數神經網路中的至少一神經網路的一輸出,更新儲存在該測試資料中的各個機率;以及(ii)因應於該複數神經網路該狀態不為訓練過的,使用一隨機值更新儲存在該測試資料中的各個機率。
一種用以改良一使用者介面的計算機系統被揭露。該計算機系統包含一增強模組,其用以取得(i)指示該使用者介面中到達一目標的一最短路徑的路徑資訊,以及(ii)與尋找該目標相關的一組使用者互動實驗。該組使用者互動實驗中的各個實驗包含使用者追蹤資料,該路徑資訊包含複數步驟,且該複數步驟中的各個步驟與該使用者介面的一頁面相關。該計算機系統也包含一距離模組,其用以針對該使用者介面的各個頁面,基於該組使用者互動實驗,確定該頁面的一增強距離;以及一步驟分析模組,用以針對該複數步驟中的各個步驟,確定該組使用者互動實驗的該使用者追蹤資料指示偏離該步驟的次數的一計數。該確定的操作是基於針對與該步驟相關的該使用者介面的該頁面所確定的該增強距離。該增強模組用以,針對該複數步驟中的各個步驟:(i)基於該計數確定該步驟是否需要增強,且(ii)因應於確定該步驟需要增強,針對該步驟產生一增強。產生該增強的操作包含以下至少一操作:為與該步驟相關的一動作產生一提示、以及改變與該步驟相關的一使用者介面元件。
在其他特徵中,確定一頁面的一增強距離的操作包含:確定該組使用者互動實驗的使用者追蹤資料與該最短路徑之間的至少一距離。
又在其他的特徵中,確定一頁面的一增強距離的操作包含:(i)基於成功到達該目標的使用者互動實驗的一第一子集的該使用者追蹤資料,針對該頁面確定一中位成功距離;以及(ii)基於使用者互動實驗的一第二子集的該使用者追蹤資料,針對該頁面確定一中位失敗距離。
在進一步的特徵中,該距離模組用以:針對該使用者介面的各個頁面,產生至少一隨機距離,該隨機距離小於該頁面的該中位成功距離且大於該頁面的該中位失敗距離。該計算機系統包含一預測模組,其用以,針對該組使用者互動實驗的一實驗的使用者追蹤資料中的各個樣本:基於(i)針對該頁面所產生的與該樣本相關的一隨機距離,(ii)該樣本的坐標,以及(iii)沿著該最短路徑的一點的坐標,預測該實驗的一結果,且將預測的該結果與該實驗的一儲存結果進行比較。該預測模組也用以輸出該複數比較的一結果。
在其他特徵中,預測該實驗的一結果的操作包含:(i)計算該樣本的該坐標與沿著該最短路徑的該點的該坐標之間的一距離,以及(ii)基於確定的該距離以及與該樣本相關的該頁面的該隨機距離的一比較,確定預測的該結果。將預測的該結果與該儲存結果進行比較的操作包含:因應於預測的該結果與該儲存結果相匹配,增加一成功預測計數。輸出該複數比較的該結果的操作包含:輸出該成功預測計數。
又在其他的特徵中,該距離模組用以:針對各個隨機產生的距離,基於至少該預測模組輸出的該成功預測計數,產生一適應度值。該計算機系統還包含一分析模組,該分析模組用以對產生的該複數適應度(fitness)值進行一集群分析(cluster analysis)。
在進一步的特徵中,該距離模組用以:針對該使用者介面的各個頁面,因應於將產生的該複數適應度值識別為一單一集群的該集群分析,將具有最高適應度值的與該頁面相關的隨機產生的該距離設定為該頁面的該增強距離。
一種改良一使用者介面的方法被揭露。該方法包含:取得(i)指示該使用者介面中到達一目標的一最短路徑的路徑資訊,以及(ii)與尋找該目標相關的一組使用者互動實驗。該組使用者互動實驗中的各個實驗包含使用者追蹤資料,該路徑資訊包含複數步驟,且該複數步驟中的各個步驟與該使用者介面的一頁面相關。該方法也包含:針對該使用者介面的各個頁面,基於該組使用者互動實驗,確定該頁面的一增強距離;以及針對該複數步驟中的各個步驟:確定該組使用者互動實驗的該使用者追蹤資料指示偏離該步驟的次數的一計數。該確定的步驟是基於針對與該步驟相關的該使用者介面的該頁面所確定的該增強距離。該方法也包含:基於該計數確定該步驟是否需要增強,以及因應於確定該步驟需要增強,針對該步驟產生一增強。產生該增強的步驟包含以下至少一步驟:為與該步驟相關的一動作產生一提示、以及改變與該步驟相關的一使用者介面元件。
在其他特徵中,確定一頁面的該增強距離的步驟包含:確定該組使用者互動實驗的使用者追蹤資料與該最短路徑之間的至少一距離。
又在其他的特徵中,確定一頁面的該增強距離的步驟包含:(i)基於成功到達該目標的使用者互動實驗的一第一子集的該使用者追蹤資料,針對該頁面確定一中位成功距離;以及(ii)基於使用者互動實驗的一第二子集的該使用者追蹤資料,針對該頁面確定一中位失敗距離。
在進一步的特徵中,確定一頁面的該增強距離的步驟包含:產生至少一隨機距離,該隨機距離小於該頁面的該中位成功距離且大於該頁面的該中位失敗距離。該方法也包含:針對該組使用者互動實驗的一實驗的使用者追蹤資料中的各個樣本,基於(i)針對該頁面所產生的與該樣本相關的一隨機距離,(ii)該樣本的坐標,以及(iii)沿著該最短路徑的一點的坐標,預測該實驗的一結果;以及將預測的該結果與該實驗的一儲存結果進行比較。
在其他特徵中,預測該實驗的該結果的步驟包含:計算該樣本的該坐標與沿著該最短路徑的該點的該坐標之間的一距離,以及基於確定的該距離以及與該樣本相關的該頁面的該隨機距離的一比較,確定預測的該結果。將預測的該結果與該儲存結果進行比較的步驟包含:因應於預測的該結果與該儲存結果相匹配,增加一成功預測計數。
又在其他的特徵中,確定一頁面的該增強距離的指令包含:針對隨機產生的各個距離,基於至少該預測模組輸出的該成功預測計數,產生一適應度值;以及對產生的該複數適應度值進行一集群分析。
在進一步的特徵中,確定一頁面的該增強距離的步驟包含:因應於將產生的該複數適應度值識別為一單一集群的該集群分析,將具有最高適應度值的與該頁面相關的隨機產生的該距離設定為該頁面的該增強距離。
一種非暫時性計算機可讀取媒體被揭露,其儲存處理器可執行的複數指令。該複數指令包含:取得(i)指示一使用者介面中到達一目標的一最短路徑的路徑資訊,以及(ii)與尋找該目標相關的一組使用者互動實驗。該組使用者互動實驗中的各個實驗包含使用者追蹤資料,該路徑資訊包含複數步驟,且該複數步驟中的各個步驟與該使用者介面的一頁面相關。該複數指令也包含:針對該使用者介面的各個頁面,基於該組使用者互動實驗,確定該頁面的一增強距離;以及針對該複數步驟中的各個步驟,確定該組使用者互動實驗的該使用者追蹤資料指示偏離該步驟的次數的一計數。該確定的指令是基於針對與該步驟相關的該使用者介面的該頁面所確定的該增強距離。該複數指令還包含:針對該複數步驟中的各個步驟,基於該計數確定該步驟是否需要增強,且因應於確定該步驟需要增強,針對該步驟產生一增強。產生該增強的指令包含以下至少一指令:為與該步驟相關的一動作產生一提示、以及改變與該步驟相關的一使用者介面元件。
在其他特徵中,確定一頁面的該增強距離的指令包含:(i)基於成功到達該目標的使用者互動實驗的一第一子集的該使用者追蹤資料,針對該頁面確定一中位成功距離;以及(ii)基於使用者互動實驗的一第二子集的該使用者追蹤資料,針對該頁面確定一中位失敗距離。
又在其他的特徵中,確定一頁面的該增強距離的指令包含:產生至少一隨機距離,該隨機距離小於該頁面的該中位成功距離且大於該頁面的該中位失敗距離。該複數指令也包含:針對該組使用者互動實驗的一實驗的使用者追蹤資料中的各個樣本: 基於(i)針對該頁面所產生的與該樣本相關的一隨機距離,(ii)該樣本的坐標,以及(iii)沿著該最短路徑的一點的坐標,預測該實驗的一結果。將預測的該結果與該實驗的一儲存結果進行比較。
在進一步的特徵中,預測該實驗的該結果的指令包含:(i)計算該樣本的該坐標與沿著該最短路徑的該點的該坐標之間的一距離,以及(ii)基於確定的該距離以及與該樣本相關的該頁面的該隨機距離的一比較,確定預測的該結果。將預測的該結果與該儲存結果進行比較的指令包含:因應於預測的該結果與該儲存結果相匹配,增加一成功預測計數。
在其他特徵中,確定一頁面的該增強距離的指令包含:針對隨機產生的各個距離,(i)基於至少該預測模組輸出的該成功預測計數,產生一適應度值;以及(ii)對產生的該複數適應度值進行一集群分析。
又在其他的特徵中,確定一頁面的該增強距離的指令包含:因應於將產生的該複數適應度值識別為一單一集群的該集群分析,將具有最高適應度值的與該頁面相關的隨機產生的該距離設定為該頁面的該增強距離。
一種用以整合一電話系統與一計算系統的系統被揭露。該系統包含一互動式語音回應(interactive voice response,IVR)平台,其用以:基於來自一使用者的一聲頻(audio)輸入取得一計算機可讀取指令,且因應於取得該計算機可讀取指令,(i)確定與該計算機可讀取指令對應的一網頁應用程式,(ii)確定該網頁應用程式中與該計算機可讀取指令相關的一目標,以及(iii)取得資訊,該資訊指示到達該網頁應用程式中的該目標的一最短使用者介面路徑。該系統也包含一共同瀏覽(cobrowse)客戶端,其用以為了代管該網頁應用程式的一網頁伺服器而從一共同瀏覽對話(cobrowse session)接收該網頁應用程式的一當前狀態的一文件物件模型(document object model,DOM)。該互動式語音回應平台用以:基於來自該共同瀏覽客戶端的該文件物件模型,沿著該最短使用者介面路徑確定一下一個使用者介面動作,以及基於該下一個使用者介面動作為該使用者產生一語音提示(voice prompt)。該共同瀏覽客戶端用以:因應於該使用者執行該下一個使用者介面動作,接收一更新的文件物件模型。
在其他特徵中,該互動式語音回應平台用以使用一無頭瀏覽器(headless browser)以連接到該共同瀏覽客戶端。
又在其他的特徵中,從該使用者取得該聲頻輸入的操作包含:透過該使用者的一電話取得該聲頻輸入。
在其他特徵中,該互動式語音回應平台用以:從該使用者取得一共同瀏覽對話識別;將該共同瀏覽對話識別傳送至該共同瀏覽對話;以及因應於傳送該共同瀏覽對話識別,接收該當前狀態的該文件物件模型。
在進一步的特徵中,取得該共同瀏覽對話識別的操作包含:為該使用者產生一語音指令,該語音指令請求該使用者(i)發起該共同瀏覽對話,以及(ii)將該共同瀏覽對話識別提供至該互動式語音回應平台。
在其他特徵中,該互動式語音回應平台用以:因應於產生該語音提示之後經歷沒有接收到更新的文件物件模型的一預設時間期間的截止,(i)基於沿著該最短使用者介面路徑的該下一個使用者介面動作,確定一增強(reinforcement),且(ii)基於確定的該增強,為該使用者產生一聲頻增強提示。
在進一步的特徵中,該聲頻增強提示規定(specify)與該下一個使用者介面動作相關的一使用者介面元件的一位置。
一種用以整合一電話系統與一計算機系統的方法被揭露。該方法包含:基於來自一使用者的一聲頻輸入取得一計算機可讀取指令;確定與該計算機可讀取指令對應的一網頁應用程式;確定該網頁應用程式中與該計算機可讀取指令相關的一目標;取得資訊,該資訊指示到達該網頁應用程式中的該目標的一最短使用者介面路徑;為了代管該網頁應用程式的一網頁伺服器而從一共同瀏覽對話接收該網頁應用程式的一當前狀態的一文件物件模型;以及沿著該最短使用者介面路徑確定一下一個使用者介面動作。該方法也包含:基於該下一個使用者介面動作為該使用者產生一語音提示;以及因應於該使用者執行該下一個使用者介面動作,接收一更新的文件物件模型。
在其他特徵中,接收該網頁應用程式的該當前狀態的該文件物件模型的步驟包含:透過一無頭瀏覽器以存取一共同瀏覽客戶端。
又在其他的特徵中,從該使用者取得該聲頻輸入的步驟包含:透過該使用者的一電話取得該聲頻輸入。
在其他特徵中,該方法包含:從該使用者取得一共同瀏覽對話識別;以及將該共同瀏覽對話識別傳送至該共同瀏覽對話;且接收該當前狀態的該文件物件模型的步驟包含:因應於傳送該共同瀏覽對話識別,接收該文件物件模型。
在進一步的特徵中,取得該共同瀏覽對話識別的步驟包含:為該使用者產生一語音指令,該語音指令請求該使用者(i)發起該共同瀏覽對話,以及(ii)透過一公用交換電話網路(public switched telephone network,PSTN)提供該共同瀏覽對話識別。
在其他特徵中,該方法包含:因應於產生該語音提示之後經歷沒有接收到更新的文件物件模型的一預設時間期間的截止,(i)基於沿著該最短使用者介面路徑的該下一個使用者介面動作,確定一增強,且(ii)基於確定的該增強,為該使用者產生一聲頻增強提示。
在進一步的特徵中,該聲頻增強提示規定與該下一個使用者介面動作相關的一使用者介面元件的一位置。
一種非暫時性計算機可讀取媒體被揭露,其儲存處理器可執行的複數指令。該複數指令包含:基於來自一使用者的一聲頻輸入取得一計算機可讀取指令;確定與該計算機可讀取指令對應的一網頁應用程式;確定該網頁應用程式中與該計算機可讀取指令相關的一目標;取得資訊,該資訊指示到該網頁應用程式中的該目標的一最短使用者介面路徑;為了代管該網頁應用程式的一網頁伺服器而從一共同瀏覽對話接收該網頁應用程式的一當前狀態的一文件物件模型;以及沿著該最短使用者介面路徑確定一下一個使用者介面動作。該複數指令也包含:基於該下一個使用者介面動作為該使用者產生一語音提示;以及因應於該使用者執行該下一個使用者介面動作,接收一更新的文件物件模型。
在其他特徵中,從該使用者取得該聲頻輸入的指令包含:透過該使用者的一電話取得該聲頻輸入。
又在其他的特徵中,該複數指令包含:從該使用者取得一共同瀏覽對話識別;以及將該共同瀏覽對話識別傳送至該共同瀏覽對話;且接收該當前狀態的該文件物件模型的指令包含:因應於傳送該共同瀏覽對話識別,接收該文件物件模型。
在進一步的特徵中,取得該共同瀏覽對話識別的指令包含:為該使用者產生一語音指令,該語音指令請求該使用者(i)發起該共同瀏覽對話,以及(ii)透過一公用交換電話網路提供該共同瀏覽對話識別。
該複數指令包含:因應於產生該語音提示之後經歷沒有接收到更新的文件物件模型的一預設時間期間的截止,(i)基於沿著該最短使用者介面路徑的該下一個使用者介面動作,確定一增強,且(ii)基於確定的該增強,為該使用者產生一聲頻增強提示。
在進一步的特徵中,該聲頻增強提示規定與該下一個使用者介面動作相關的一使用者介面元件的一位置。
透過詳細說明,申請專利範圍與圖式,本揭露的其他應用領域將變得顯而易見。此詳細說明和特定的示例僅是為了說明,並非為了限制本揭露的範圍。
簡介
一使用者介面提供對資訊的存取並且可以允許各種動作的執行。然而,在使用者能夠存取感興趣的資訊之前,使用者可能需要在使用者介面中執行某些動作。舉例而言,使用者可能需要透過使用者名稱與密碼登入。接著,在他們能夠存取資訊之前,他們可能需要操作使用者介面的特定螢幕並選擇特定的按鈕。許多使用者可能無法有效地操作使用者介面以取得資訊。
在各種實施方式中,在使用者介面中到達目標的最短路徑(例如,登入並取得訂單狀態)可以自動地被確定。該路徑的長度可使用多種度量來測量(例如:所需輸入的數量、滑鼠的總移動量、以及按鍵或滑鼠點擊事件的數量)。在各種實施方式中,路徑的長度可以基於滑鼠移動的總歐幾里德距離(Euclidean distance)以進行評估,也就是,進行互動所需的到達各個使用者介面元件的線性移動的總和(例如:從起始點到文字方塊、從文字方塊到提交按鈕、以及從提交按鈕到要被選擇的連結的位置)。
最短路徑可用以增強使用者介面。舉例而言,使用者與使用者介面互動時所測得的經驗資料(empirical data)(例如眼睛或滑鼠的移動)可用以確定使用者介面的使用者何時更可能偏離所確定的最短路徑。可以基於該確定的偏差來增強使用者介面,例如:可以更改與偏差相關的使用者介面元件、可以產生與最短路徑有關的提示、及/或可以凸顯使用者介面元件以輔助使用者成功操作使用者介面。
這些使用者介面的增強還可以被客戶移動系統(customer migration system)使用,以自動地引導已經呼叫互動式語音回應(interactive voice response,IVR)平台(例如客戶服務號碼)的一使用者到達使用者介面的特定狀態。舉例而言,客戶移動系統可以輔助使用者成功登入網頁應用程式並操作到使用者可以取得所需資訊的網站狀態。客戶移動系統可指示使用者存取網頁頁面,然後基於使用者介面的增強來產生聲頻和視覺提示,以引導使用者在使用者介面中執行與確定的最短目標路徑對應的操作。
第1圖是用以測試一使用者介面的一系統100的一示例實施方式的功能方塊圖。系統100包含使用者介面測試和增強裝置110、儲存裝置112、以及操作員裝置114。使用者介面測試和增強裝置110可包含最短路徑模組120、使用者介面增強模組122、人工智慧(artificial intelligence,AI)模組124、以及無頭瀏覽器126。儲存裝置112可包含非揮發性儲存器(nonvolatile storage)以與最短路徑模組120和使用者介面增強模組122通訊。
最短路徑模組120確定使用者介面中的到達目標的最短路徑。舉例而言,最短路徑模組120可確定登入網頁應用程式的步驟的最少數量。一個步驟由在使用者介面的頁面上執行的一個操作組成(例如,點擊連結或在文字輸入欄位中輸入資料)。執行步驟可能會改變使用者介面的狀態(即,將使用者介面轉換的至不同螢幕或狀態,或改變當前狀態或螢幕以使更多或不同的資訊或選擇可被使用)。
最短路徑模組120包含測試產生模組128和測試執行模組130。測試執行模組130包含分析模組132、訓練模組134、重新加權模組136、以及對話產生模組138。
AI模組124包含蒙地卡羅模組142、神經網路模組144、以及自然語言辨識(natural language recognition)模組146。蒙地卡羅模組142執行蒙地卡羅模擬以產生假性隨機(pseudorandom)值。神經網路模組144可包含連結神經網路(link neural network)148、提交神經網路(submit neural network)150、資料匹配神經網路(data match neural network)152、資料選擇神經網路(data choice neural network)154、以及動作加權神經網路(action weight neural network)156,以下將分別更詳細地描述它們。
連結神經網路148、提交神經網路150、資料選擇神經網路154、以及動作加權神經網路156各自產生給定的輸入能夠導致到達該目標的機率。舉例而言,資料匹配神經網路152產生一資料會匹配一資料輸入欄位的機率(例如,一特定文字字串會匹配一文字輸入欄位的機率)。自然語言辨識模組146解析文字輸入並確定該輸入是否包含指定的文字字串。舉例而言,自然語言辨識模組146可用以確定使用者介面的狀態是否包含特定文字字串。
無頭瀏覽器126是不具有圖形使用者介面的網路瀏覽器。無頭瀏覽器126可包含指令行(command-line)介面,該指令行介面用以加載網頁頁面並與網頁頁面(例如在一網頁伺服器158上被代管(hosted)的網頁應用程式的網頁頁面)互動。
測試產生模組128取得複數測試參數並產生測試配置資料。複數測試參數可包含使用者介面的起始位址、目標、到達該目標的允許的步驟之最大數量、要進行的測試數量、以及變數資料(variable data)。變數資料可包含文字字串(例如,使用者名稱或密碼)或可以輸入至使用者介面的資料輸入欄位的選單選項。在一些實施方式中,測試產生模組128可以從操作員裝置114接收複數測試參數。在其他實施方式中,測試產生模組128可以從儲存裝置112取回先前儲存的複數測試參數。測試產生模組128提供測試配置資料至測試執行模組130。測試產生模組128也可以將測試配置資料儲存至儲存裝置112中。
測試執行模組130使用測試產生模組128產生的測試配置資料,對使用者介面進行測試,以確定使用者介面中到達指定目標的最短路徑。因應於從測試產生模組128接收到測試配置資料,測試執行模組130發起使用者介面的第一測試。舉例而言,測試執行模組130指示無頭瀏覽器126加載使用者介面的起始頁面。無頭瀏覽器126加載被請求的網頁頁面,並將所加載的網頁頁面的文件物件模型(document object model,DOM)提供給測試執行模組130。
測試執行模組130將游標(cursor)的地點設定為使用者介面的預設地點(例如中心點)、將測試配置中的各個變數標記為未使用、並將神經網路模組144中的複數神經網路的狀態設定為未訓練過的(untrained)。測試執行模組130使用分析模組132來分析使用者介面的當前狀態(即,當前加載的網頁頁面)。分析模組132可使用從無頭瀏覽器126接收的DOM來執行分析。
首先,分析模組132確定使用者介面的當前狀態是否滿足該目標的準則(例如,加載的網頁頁面中是否包含目標文字)。分析模組132可使用自然語言辨識模組146來解析所加載的網頁頁面的文字,以確定其是否包含目標文字。因應於定位(locating)該目標文字,分析模組132確定當前測試是成功的。當達到最大步驟數量而並未找到目標文字時,則當前測試會被認為是失敗的。因應於確定當前測試既不是成功的也不是失敗的,分析模組132確定使用者介面的當前狀態是否包含可以被執行以改變使用者介面的狀態的互動元件(例如:連結、資料輸入欄位、以及提交資料的元件)。
分析模組132將一機率分配給與位於加載頁面中的各個互動元件相關的動作。該機率表示執行動作將到達該目標的可能性。若神經網路模組144中的複數神經網路為訓練過的,則分析模組132使用神經網路模組144中的該複數神經網路來確定該機率。分析模組132也分配一加權給每一種動作類型(連結、輸入欄位、與提交)。若神經網路模組144中的複數神經網路為訓練過的,則分析模組132使用神經網路模組144中的複數神經網路來確定每種動作類型的加權。接著,分析模組132針對各個動作確定一加權機率。分析模組132將各個識別的動作和相關的加權機率提供給測試執行模組130。若神經網路模組144中的複數神經網路為尚未被訓練的,則分析模組132使用蒙地卡羅模組142為動作成功和動作類型成功的機率分配隨機數值。
測試執行模組130從分析模組132所提供的動作中選擇具有最高機率的動作。測試執行模組130確定當前地點和與選擇的該動作相關的互動元件的一最接近點之間的距離。測試執行模組130基於計算的該距離來更新當前測試的總距離,然後儲存計算的該距離以及該總距離。測試執行模組130指示無頭瀏覽器執行選擇的該動作。被執行的該動作稱為一「步驟」,且執行該動作所導致的使用者介面的螢幕則稱為一「狀態」。換言之,執行一步驟會導致使用者介面從第一狀態被轉變為第二狀態,或者,會導致第一狀態的轉換。
若當前測試的總距離大於先前識別的到達該目標的路徑,則測試執行模組130判斷當前測試是失敗的(即,不是最短路徑)。若否,如上所述,測試執行模組130繼續進行測試並分析使用者介面的當前狀態。
因應於確定當前測試是成功的或失敗的,測試執行模組130記錄完成的測試的結果。因應於確定當前測試是成功的,測試執行模組130將當前測試的步驟儲存為到達該目標的最短路徑。接著,測試執行模組130確定完成的測試數量是否已經達到最大測試數量。若是,測試執行模組130輸出找到的到達該目標的該最短路徑。
若需要更多測試,則測試執行模組130開始新的測試。若剛完成的(just-completed)測試是成功的,則訓練模組134在神經網路模組144中訓練複數神經網路(或者,在第一次訓練後,重新訓練(retrain)該複數神經網路或補充(supplement)該複數神經網路的訓練)。訓練模組使用已完成的結果、成功的測試以產生訓練資料。訓練模組134保存了在神經網路模組144中的該複數神經網路,以及該複數神經網路的相關狀態(例如,訓練過的或未訓練過的)。在一些實施方式中,訓練模組134可將該複數神經網路及其相關狀態皆儲存在儲存裝置112中。
接著,訓練模組134使用產生的訓練資料來重新訓練連結神經網路148、提交神經網路150、資料匹配神經網路152、資料選擇神經網路154、與動作加權神經網路156。一旦神經網路已被重新訓練,訓練模組134就確定重新訓練過的網路的效能。舉例而言,訓練模組134將神經網路模組144中的複數神經網路的狀態設定為訓練過的。接著,訓練模組134使用分析模組132來分析各個完成的測試的各個步驟,並產生複數可能的動作和相關機率的清單。由於神經網路模組144中的複數神經網路的狀態是被設定為訓練過的,所以分析模組132產生的機率將基於新的訓練過的網路。針對各個分析步驟中的各個動作,訓練模組134計算先前確定的機率與新確定的機率之間的變化。
訓練模組134基於計算的變化來確定網路的效能。因應於確定重新訓練並未改善神經網路模組144中的複數神經網路的效能,訓練模組將神經網路模組144中的複數神經網路恢復到其先前狀態。舉例而言,訓練模組可以從儲存裝置112中取回儲存的網路和相關的狀態。
接著,重新加權模組136重新計算機率,例如針對最後完成的測試的各個狀態中的各個動作的機率。若該複數神經網路模組是訓練過的,則重新加權模組136使用神經網路模組144中的複數神經網路來計算機率,或者用新的隨機數值來更新機率。使用神經網路模組144中的複數神經網路導致機率會與各個動作將到達該目標的實際機率更接近地匹配。
測試執行模組130在複數重新加權的動作中選擇一個動作。測試執行模組130基於各個動作的重新加權機率以及從使用者介面的初始狀態到達該動作所需的總距離來進行選擇。
對話產生模組138從使用者介面的初始網頁位址(Uniform Resource Locator,URL)確定到達測試執行模組130選擇的動作所需的步驟。對話產生模組138執行確定的到達該動作所需的步驟,並且無頭瀏覽器126返回得到的網頁頁面的DOM。如上所述,分析模組132接著分析使用者介面的當前狀態。測試執行模組130繼續執行新的測試,直到達到最大測試數量。
使用者介面增強模組122基於到達該目標的最短路徑以及與使用者介面對應的眼睛追蹤實驗來產生提示和其他輔助,其可用以將使用者引導到使用者介面中的目標。眼睛追蹤實驗是使用者介面可用性測試的一種形式,其包含在使用者操作使用者介面以到達一目標時,基於使用者的凝視或使用者的滑鼠游標的移動來追蹤資料。眼睛追蹤實驗用以識別一使用者介面使用者可能偏離到達該目標的最短路徑。使用者介面增強模組122針對使用者介面的各個頁面決定一距離,該距離表示與最短路徑的偏離,以及可能需要增強最短路徑的步驟以輔助使用者到達目標。
使用者介面增強模組122包含增強模組160和提示產生模組162。增強模組160確定最短路徑的哪些步驟可能需要增強。增強模組160是基於與使用者介面相關的眼睛追蹤實驗以進行該確定操作。使用者介面增強模組122基於增強模組160所進行的該確定操作以及接收的增強百分比,來確定最短路徑的哪些步驟需要增強。
增強模組160包含距離模組164和步驟分析模組166。距離模組164基於與該目標相關的眼睛追蹤實驗和到達該目標的最短路徑,為使用者介面的各個URL確定增強距離。增強距離是與最短路徑的步驟之間的距離(例如,游標與最短路徑上的點之間的距離),表示該步驟可能需要增強。
距離模組164包含預測模組168和集群分析模組170。距離模組164取得用以確定距離的複數參數,例如適應度演算法(fitness algorithm)的加權值和允許的進化(evolution)次數。一次進化是由針對使用者介面的各個URL的隨機的增強距離的選擇所組成,該選擇接著被預測模組168用以預測單一眼睛追蹤實驗是成功的或是失敗的。允許的進化的數量表示被產生且用以預測不同眼睛追蹤實驗結果的不同隨機增強距離組合的組合數量。
距離模組164將各個眼睛追蹤實驗中的追蹤資料與最短路徑進行比較,並確定眼睛追蹤資料中包含的各個樣本與最短路徑上的對應點之間的距離。針對使用者介面的各個URL,距離模組164計算與成功的測試相關的眼睛追蹤樣本與最短路徑之間的中位距離。成功的測試包含使用者在使用者介面中到達該目標的測試,(例如,使用者成功登入網頁應用程式)。針對使用者介面的各個URL,距離模組164也計算與失敗的測試相關的眼睛追蹤樣本與最短路徑之間的中位距離。失敗的測試包含使用者在使用者介面中無法到達該目標的測試,(例如,使用者無法成功登入網頁應用程式)。失敗的測試也可包含使用者到達目標但未遵循到達該目標的最短路徑的測試。例如:儘管使用者可能最終已登入網頁應用程式,但是其並未以最少的步驟登入。
距離模組164使用各個URL的確定的中位距離作為上限和下限,以產生各個URL的隨機增強距離。舉例而言,距離模組164將URL的下限設定為等於URL的中位成功距離,並且將URL的上限設定為等於中位失敗距離。在一些實施方式中,距離模組164可使用蒙地卡羅模組142來產生隨機距離。
接著,預測模組168使用隨機產生的增強距離和第一眼睛追蹤實驗來執行一次進化。針對眼睛追蹤實驗中的各個樣本,預測模組168確定隨機產生的增強距離和最短路徑是表示該實驗是成功的(該使用者到達目標)還是失敗(使用者未到達目標,或沒有遵循到達該目標的最短路徑)。接著,預測模組168將實驗的預測結果與儲存的實驗結果進行比較。針對各次進化,預測模組168輸出預測正確的實驗結果的次數、錯誤地將該實驗預測為成功的次數、以及錯誤地將該實驗預測為失敗的次數。增強模組160在每次進化之後儲存預測模組168的輸出。
距離模組164繼續為各個URL產生隨機增強距離,且預測模組168使用隨機產生的增強距離和新的眼睛追蹤實驗執行進化,直到達到允許的進化的最大次數。
因應於執行允許的進化的最大次數,距離模組164使用預測模組168的儲存的輸出和取得的加權值來確定各個隨機產生的增強距離的適應度值。接著,集群分析模組170對各個適應度值以及與該適應度值相關的測試距離的圖表(plot)執行集群分析。在一些實施方式中,集群分析模組170可使用具有雜訊的應用的基於密度的空間集群(density-based spatial clustering of applications with noise,DBSCAN)演算法來執行集群分析。在其他實施方式中,集群分析模組170可使用平均移位技術(mean shift technique)來執行集群分析。又在其他實施方式中,集群分析模組170可使用另一種合適的集群分析技術或演算法來分析適應度值與隨機產生的距離的圖表。
因應於確定集群分析模組170識別出使用者介面的各個URL的適應度值與增強距離的單一集群,距離模組164為各個URL輸出一增強距離。針對各個URL,距離模組164輸出與具有最高適應度值的URL相關的增強距離。
因應於確定集群分析模組170未識別出各個URL適應度值與增強距離的單一集群,距離模組164為各個URL設定新的上限和下限。針對各個URL,距離模組164將上限設定為與URL相關的最成功的集群中的最大距離,並將下限設定為最成功的集群中的最小距離。最成功的集群是包含最多數量的資料點的集群。
距離模組164將執行的進化的數量重置為零。然後,距離模組164開始使用新的上限和下限為各個URL產生隨機增強距離,且預測模組168使用隨機產生的增強距離執行進化,直到達到允許的進化的最大次數。
距離模組164基於預測模組168的輸出來確定新產生的隨機增強距離的適應度值。然後,集群分析模組170分析新的適應度值。該過程以這種方式繼續執行,直到距離模組164為各個URL輸出增強距離為止。
步驟分析模組166基於各個URL的增強距離,確定眼睛追蹤實驗指出使用者偏離該最短路徑的步驟的次數。舉例而言,步驟分析模組166將一眼睛追蹤實驗所包含的各個樣本與最短路徑中的一相關步驟進行比較,並基於與最短路徑的步驟相關的URL的增強距離以確定該樣本是否指出使用者從該最短路徑的步驟偏離。
提示產生模組162為最短路徑的各個步驟產生提示。提示可用以輔助使用者介面的使用者完成該步驟。提示產生模組162基於最短路徑的步驟中包含的動作來產生提示。舉例而言,提示產生模組162可產生提示,該提示指示使用者點擊一最短路徑步驟中包含的連結。另舉例而言,提示產生模組162可以指示使用者將文字輸入到資料輸入欄位中(例如,打字輸入使用者名稱)。
提示產生模組162可使用與最短路徑步驟中包含的動作對應的DOM元件來產生提示。在一些實施方式中,提示產生模組162使產生的提示包含從DOM元件取得的使用者介面的互動元件的細節(例如,與該元件相關的名稱或文字)。提示產生模組162可使用無頭瀏覽器126來取得DOM元件。
使用者介面增強模組122基於增強百分比和步驟分析模組166的結果來確定該步驟是否需要增強。舉例而言,使用者介面增強模組122計算眼睛追蹤樣本指出使用者偏離該最短路徑的步驟的次數以及與該步驟相關的眼睛追蹤樣本的總數的一比值。使用者介面增強模組122因應於確定計算的該比值等於或大於該增強百分比,以確定該步驟需要增強。
因應於確定該最短路徑的一步驟需要增強,使用者介面增強模組122為該步驟產生一增強。在一些實施方式中,該增強可包含額外的提示,其包含關於要由使用者執行的動作的更多資訊。舉例而言,額外的提示可以告知使用者互動元件在螢幕上的位置。在其他實施方式中,該增強可包含用以凸顯互動元件的指令。又在其他實施方式中,該增強可包含額外的提示以及凸顯的指令。使用者介面增強模組122儲存產生的提示和增強以及最短路徑。舉例而言,使用者介面增強模組122可以將該資訊儲存在儲存裝置112中。
在各種實施方式中,可以使用由最短路徑模組120所產生的最短路徑以及由使用者介面增強模組122所產生的提示和增強,來改變使用者介面以改善使用者介面和其相關的應用程式的可用性。舉例而言,可以自動地或人工地重新定位使用者介面的互動元件(如連結、按鈕、與資料輸入欄位),以減少到達目標所需的總距離。接著,該使用者介面測試和增強裝置110可以在已改變的使用者介面上執行額外的測試。舉例而言,最短路徑模組120可針對已改變的使用者介面產生新的最短路徑,以確定重新定位的元件是否改善了使用者介面(即,是否減少了最短路徑的總距離)。
另外,可以在結合產生的使用者介面增強的一使用者介面上執行新的眼睛追蹤實驗。使用者介面增強模組122可使用來自新的眼睛追蹤實驗的資料,以確定該增強是否改善了使用者介面的可用性。舉例而言,使用者介面增強模組122可確定該使用者介面增強會導致與最短路徑的偏差的整體減小(即,最短路徑的較少步驟需要增強)。 神經網路
在各種實施方式中,連結神經網路148、提交神經網路150、資料選擇神經網路154、和動作加權神經網路156可以被實施為長短期記憶(long short‑term memory,LSTM)神經網路。LSTM神經網路是前饋(feedforward)神經網路。第2圖是通用的一示例LSTM神經網路202的功能方塊圖。LSTM神經網路202包含輸入層204、隱藏層208、與輸出層212。輸入層204包含輸入204a、輸入204b、…、輸入204n。隱藏層208包含神經元208a、神經元208b、…、神經元208n。輸出層212包含輸出212a、輸出212b、…、輸出212n。
隱藏層208的各個神經元接收來自輸入層204的一輸入,並將一數值輸出至輸出層212中相應的一輸出。舉例而言,神經元208a接收來自輸入204a的輸入,並將一數值輸出至輸出212a。除了第一神經元208a之外,各個神經元也接收前一個神經元的輸出作為輸入。舉例而言,神經元208b接收來自輸入204b的一輸入和來自輸出212a的一輸入。在這種方法之下,各個神經元的輸出被前饋到隱藏層208中的下一個神經元。輸出層212中的最後一個輸出212n輸出與輸入204a-204n相關的一機率。儘管輸入層204、隱藏層208、與輸出層212被繪示為各自包含三個元件,但是輸入層204、隱藏層208、與輸出層212可包含任意數量的元件。在各種實施方式中,LSTM神經網路202的每一層必須包含與LSTM神經網路202的其他層中的每一層相同數量的元件。
第3圖是連結神經網路148的一示例實施方式的功能方塊圖。連結神經網路148包含輸入層304、隱藏層308、與輸出層312。輸入層304包含輸入304a、輸入304b、與輸入304c。隱藏層308包含神經元308a、神經元308b、與神經元308c。輸出層312包含輸出312a、輸出312b、與輸出312c。
連結神經網路148被描述以處理連結「company.com/order/display.htm?number=123456」。該連結被解析,以產生輸入304a、輸入304b、以及輸入304c的輸入。例如,棄置(discard)該連結的靜態部分「company.com」。該連結的其餘部分基於該連結的格式和語法,被拆分為複數輸入。具體而言,「訂單(order)」被提供至輸入304a,「display.htm」被提供至輸入304b,且「號碼(number)=123456」被提供至輸入304c。
在第3圖繪示的示例中,連結神經網路148的輸出是「0.75」,其表示執行輸入的該連結將到達該目標的機率。儘管連結神經網路148被繪示為包含三個神經元,但是連結神經網路148可包含更多或更少的神經元。
第4圖是提交神經網路150的一示例實施方式的功能方塊圖。提交神經網路150包含輸入層404、隱藏層408、與輸出層412。輸入層404包含輸入404a、輸入404b、與輸入404c。隱藏層408包含神經元408a、神經元408b、與神經元408c。輸出層412包含輸出412a、輸出412b、與輸出412c。
提交神經網路150被描述以處理提交,也就是位於「company.com/help/faq.htm」的登入。該提交名稱被提供至輸入404a。該提交位置被解析,以產生輸入404b和輸入404c的輸入。例如,棄置該位置的靜態部分「company.com」,且將該位置的其餘部分基於該位置的格式和語法拆分為複數個不同的輸入。具體地,「輔助(help)」被提供至輸入404b,而「faq.htm」被提供至輸入404c。
在第4圖繪示的示例中,提交神經網路150的輸出是「0.25」,其表示執行該輸入的提交將到達該目標的機率。儘管提交神經網路150被繪示為包含三個神經元,但是提交神經網路150可包含更多或更少的神經元。
第5A圖是資料選擇神經網路154的一示例實施方式的功能方塊圖。資料選擇神經網路154包含輸入層504、隱藏層508、與輸出層512。輸入層504包含輸入504a、輸入504b、與輸入504c。隱藏層508包含神經元508a、神經元508b與神經元508c。輸出層512包含輸出512a、輸出512b、與輸出512c。
資料選擇神經網路154被描述以處理位於「company.com/help/faq.htm」的名為「使用者名稱(username)」的文字資料輸入欄位。資料輸入欄位的名稱被提供至輸入504a。資料輸入欄位類型「文字」被提供至輸入504b。資料輸入的位置被解析,以產生輸入504c的輸入。例如:棄置該位置的靜態部分「company.com」,若有必要,將該位置的其餘部分,基於該位置的格式和語法拆分為複數輸入。在第5A圖中所繪示的示例中,該位置的其餘部分不需要被拆分。換言之,「home.htm」被簡單地提供至輸入504c。
在第5A圖所繪示的示例中,資料選擇神經網路154的輸出是「0.98」,其表示將輸入文字輸入至輸入資料輸入欄位將到達該目標的機率。儘管資料選擇神經網路154被繪示為包含三個神經元,但是資料選擇神經網路154可包含三個以上的神經元。
第5B圖是資料匹配神經網路152的一示例實施方式的功能方塊圖。資料匹配神經網路152是卷積(convolutional)神經網路。類似於LSTM神經網路,卷積神經網路包含輸入層、隱藏層和輸出層。然而,在卷積神經網路中,輸出層的輸出比隱藏層中神經元的數量少一個,且各個神經元都連接到各個輸出。另外,輸入層中的各個輸入都連接到隱藏層中的各個神經元。
資料匹配神經網路152包含輸入層524、隱藏層528、與輸出層532。在第5B圖中,輸入層524包含輸入524a、輸入524b、與輸入524c;隱藏層528包含神經元528a、神經元528b、與神經元528c。輸出層532包含輸出532a與輸出532b。
資料匹配神經網路152被描述以處理與資料「testuser」配對的名為「使用者名稱」的文字資料輸入。配對的資料「testuser」被提供至輸入524a。資料輸入欄位名稱「使用者名稱」被提供至輸入524b。資料輸入欄位類型「測試」被提供至輸入524c。在第5B圖繪示的示例中,資料匹配神經網路152的輸出為「0.75」,其表示應將輸入資料輸入至輸入資料輸入欄位中的機率。
第6圖是動作加權神經網路156的一示例實施方式的功能方塊圖。動作加權神經網路156包含輸入層604、隱藏層608、以及輸出層612。輸入層604包含輸入604a、輸入604b、以及輸入604c。隱藏層608包含神經元608a、神經元608b、以及神經元608c。輸出層612包含輸出612a、輸出612b、以及輸出612c。
動作加權神經網路156被描述以處理位於「company.com/help.faq.htm」的提交動作類型。該動作類型被提供至輸入604a。該動作位置被解析,以產生輸入604b和輸入604c的輸入。例如:棄置該位置的靜態部分「company.com」、將該位置的其餘部分基於該位置的格式和語法拆分為複數輸入。具體地,「輔助(help)」被提供至輸入604b,而「faq.htm」被提供至輸入604c。
在第6圖繪示的示例中,動作加權神經網路156的輸出是「0.25」,其表示執行位於「company.com/help/faq.htm」的提交將到達該目標的機率。儘管動作加權神經網路156被繪示為包含三個神經元,但是動作加權神經網路156可包含多於三個神經元和少至兩個神經元。 最短路徑的確定
第7A圖和第7B圖繪示了確定使用者介面中到達目標的最短路徑的一示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他裝置及/或系統中實施。在各種實施方式中,可以由最短路徑模組120來執行控制(control)。
控制從第7A圖的703開始。在703,控制取得複數測試參數,例如:目標文字、一組變數的資料、要測試的使用者介面的初始URL、各個測試的允許的步驟的最大數量、以及允許的測試的最大次數。然後,控制將該複數測試參數儲存為測試配置資料。舉例而言,控制可以將測試配置資料儲存在儲存裝置112中。控制繼續進行至706,在此,控制將與該測試相關的值初始化。舉例而言,控制將複數神經網路(「Networks_Trained」)的訓練狀態設定為「false」,且將「Completed_Tests」設定為「Null」。接著,控制繼續進行至709,在此,控制加載該初始URL,並將已執行的測試的數量(「Tests_Ran」)設定為零。
在709,針對儲存的配置資料中的各個變數,控制將一使用狀態標記(「Used」)設定為「false」。接著,控制繼續進行至712,在712,控制將該當前地點(「Current_Position」)設定為使用者介面的中心點。在712,控制也將加載該初始URL的結果與使用者介面的當前狀態儲存為「Initial_State」,然後,控制進行至715。在715,控制將與第一測試相關的資料初始化,例如:控制將「Test_Data」設定為「Null」、將「Step」設定為為零、以及將「Test_Distance」設定為零。接著,控制進行至718。
在718,控制將與當前步驟相關的資料初始化(例如,控制將「Step_Data」設定為「Null」)。然後,控制分析使用者介面的當前狀態。舉例而言,控制可以執行第8A圖至第8C圖中所揭露的方法。分析的結果可以是「成功(Success)」、「失敗(Failure)」、或一動作清單。「成功」的結果表示使用者介面的該當前狀態包含目標文字或滿足一些其他目標的準則。「失敗」的結果可表示該當前狀態既不包含目標文字也不包含任何可能的動作(例如:遍歷(traversing)連結、將資料輸入至資料輸入欄位中、或提交已輸入到資料輸入欄位中的資料)。是「失敗」反而可表示已執行了允許的步驟的最大數量,但尚未到達該目標。
一動作清單表示當前狀態包含可以被執行的至少一可能的動作。動作清單中的各個動作都包含該動作將到達該目標的機率。控制儲存分析的結果。舉例而言,控制將成功的或失敗的結果加至「Test_Data」,並將動作清單的結果加至「Step_Data」。接著,控制進行至721,在此,控制確定分析的結果是一動作清單還是「成功」/「失敗」的指標。若該結果是動作清單,則控制進行至第7B圖的724;若否,則控制轉移至727。
在第7B圖的724,控制確定要執行的動作。舉例而言,控制從列出的動作中選擇整體機率最高的動作。控制可使用下述方程式一和方程式二來確定各個動作的整體機率。 (一) (二)
P action 」是一動作清單中包含的一動作的機率。「 Action_Distance」是當前地點和與該動作相關的使用者介面元件的最接近點之間的歐幾里德距離。「 Test_Distance」是在當前測試期間中在使用者介面中所經過的總距離。「 ΣP distance_weighted 」是該動作清單中各個動作的「 P distance_weighted 」的總和。
接著,控制進行至730,在此,控制確定選擇的動作是提交、連結還是輸入。因應於確定選擇的動作是提交,控制進行至733;因應於確定選擇的動作是連結,控制進行至745;若是其他情況,則控制進行至748。
在733,控制確定與提交相關的使用者介面元件的最接近當前地點(「Current_Position」)的點。在各種實施方式中,從選擇的動作的動作清單中取得該最接近點的坐標。然後,控制將該步驟距離(「Step_Distance」)計算為「Current_Position」與該最接近點之間的歐幾里德距離。接著,控制繼續進行至739,在此,控制儲存該步驟距離並執行提交(舉例而言,控制將「Step_Distance」加至「Step_Data」並觸發與提交相關的使用者介面元件的點擊)。在739,控制也將「Current_Position」更新為該最接近點的坐標。
返回至736,控制確定與該連結相關的使用者介面元件的最接近「Current_Position」的點。其坐標可以被儲存在選擇的動作的動作清單中。然後,控制將該步驟距離(「Step_Distance」)設定為「Current_Position」與該最接近點之間的歐幾里德距離。接著,控制繼續進行至740,在此,控制儲存步驟距離並執行連結(例如,將「Step_Distance」加至「Step_Data」並觸發與連結相關的使用者介面元件的點擊)。在740,控制也將「Current_Position」設定為與連結相關的使用者介面元件的最接近點。舉例而言,控制可以將「Current_Position」設定為選擇的動作的動作清單中所儲存的坐標。接著,控制進行至742。
返回至738,控制確定與該輸入相關的使用者介面元件的最接近「Current_Position」的點。舉例而言,其坐標可以被儲存在選擇的動作的動作清單中。然後,控制將步驟距離(「Step_Distance」)設定為「Current_Position」以及與該輸入相關的使用者介面元件的最接近點之間的歐幾里德距離。接著,控制繼續進行至741,在此,控制儲存該步驟距離並執行輸入(例如:將「Step_Distance」加至「Step_Data」,並將與該動作相關的變數輸入該資料輸入欄位)。在741,控制也將被輸入至資料輸入欄位的變數標記為使用過的(used),並將「Current_Position」設定為與該輸入相關的使用者介面元件的最接近點。舉例而言,控制可以針對該變數將「Used」設定為「True」,並將「Current_Position」設定為選擇的動作的動作清單中所儲存的坐標。接著,控制進行至742。
在742,控制儲存當前測試的過程,例如:控制將「Step_Data」加至「Test_Data」、將「Step_Distance」加至「Test_Distance」、並將採取的步驟數量加一。接著,控制繼續進行至第7A圖的756。
在第7A圖的756中,控制確定當前測試距離是否大於已經被確定的路徑,即,當前測試的距離是否大於最短的完成成功測試。若是,控制進行至757;若否,則控制返回至718。在757,控制將當前測試的狀態設定為失敗的。舉例而言,控制將「Outcome」設定為等於失敗。接著,控制繼續進行至727。
返回至727,控制將當前測試儲存為完成的測試。舉例而言,控制將測試的總距離(「Test_Distance」)和與當前測試相關的資料(「Test_Data」)加至「Completed_Tests」。在727,控制將「Tests_Ran」加一。控制進行至758,在此,控制確定已運行的測試次數(「Tests_Ran」)是否等於或大於允許的測試次數(「Max_Tests」)。若是,控制進行至761;若否,則控制轉移至764。
在761,控制基於儲存的完成的測試(「Completed_Tests」)以確定到達該目標的最短路徑。舉例而言,控制選擇儲存在「Completed_Tests」中且具有最小總距離(「Test_Distance」)的一成功測試作為該最短路徑。控制進行至762,在此,控制輸出與選擇的測試(「Test_Data」)相關的儲存的資料作為該最短路徑。接著,控制結束。
在764,控制訓練該複數神經網路。舉例而言,控制執行第9A圖和第9B圖中揭露的方法。接著,控制進行至770,在此,控制重新加權與完成的測試的各個步驟的動作相關的機率(舉例而言,控制可以執行第10A圖至第10C圖中揭露的方法。接著,控制繼續進行至773,在此,控制選擇與完成測試相關且達到目標文字的整體機率最高的動作。如前所述,控制可使用方程式一和方程式二來確定各個動作的整體機率。然後,控制進行至776,在此,控制基於選擇的動作建立一個新的對話。舉例而言,控制可以執行第11圖中揭露的方法。然後,控制返回至715。
第8A圖至第8C圖繪示了分析使用者介面的狀態的示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他裝置及/或系統中實施。在各種實施方式中,可以由最短路徑模組120及/或分析模組132來執行控制。
控制從第8A圖的802開始。在802,控制針對要分析的狀態將動作資料初始化。舉例而言,控制將「Action_Data」設定為「Null」。接著,控制進行至804,在此,控制尋找使用者介面的當前狀態(螢幕)以確定該目標的準則是否被滿足。舉例而言,在第8A圖中,控制確定當前狀態是否包含目標文字。控制可使用自然語言辨識模組146以將在螢幕上找到的文字與目標文字進行匹配。在806,若目標文字被找到,則控制進行至808;若否,則控制轉移至810。
在808,控制基於目標文字的位置來更新當前測試的距離。舉例而言,控制計算「Current_Position」與目標文字中最接近「Current_Position」的點之間的歐幾里德距離。控制將該距離加至「Test_Distance」。在808,控制也將「Outcome」設定為「成功」以表示當前狀態包含該目標文字。控制進行至809,在此,控制輸出「Outcome」的值。接著,控制結束。
返回至810,控制確定是否已經達到允許的步驟的最大數量(「Max_Steps」)。若當前對話中的步驟數量小於最大步驟數量,則控制進行至816;若否,則控制轉移至814。在814,控制將結果設定為失敗。接著,控制進行至809。
在816,控制在當前狀態中尋找連結然後進行至818。在818,若一或多個連結位於當前狀態中,則控制繼續進行至820;若否,則控制轉移至第8B圖的822。
在820,控制產生在當前狀態中找到的複數連結的一清單。控制從清單中刪除在當前對話期間中預先存取過的任何連結。接著,控制繼續進行至824,在此,針對該清單中的各個連結,控制確定並儲存最接近「Current_Position」的相關的連結使用者介面元件的點的坐標。接著,控制進行至826,在此,控制確定該複數神經網路是否是訓練過的。若是,控制進行至828;若否,則控制轉移至830。在828,該控制使用連結神經網路148,以針對清單中的各個連結估計該連結將到達該目標的機率。控制將各個連結的機率儲存在該連結清單中。然後,控制繼續進行至832。
在830,控制針對連結清單中的各個連結,分配該連結將到達該目標的隨機機率,並將該機率儲存在連結清單中。在一些實施方式中,控制可使用蒙地卡羅模組142來分配隨機機率。控制繼續進行至832。在832,控制儲存該連結清單(例如,控制將該連結清單和相關的機率加至「Action_Data」)。控制進行至第8B圖的822。
在第8B圖的822,控制在當前狀態中尋找資料輸入欄位,然後,控制進行至834。在834,控制確定是否有任何資料輸入欄位位於當前狀態。若是,控制繼續進行至836;若否,則控制轉移至第8C圖的838。
在836,控制確定配置資料是否包含可以被輸入到定位資料輸入欄位中的資料(即,尚未被標記為使用過的變數)。若是,控制進行至840;若否,則控制轉移至第8C圖的838。在840,控制產生所有可能的資料輸入欄位和可用資料組合的一清單。針對清單中的各個輸入,控制確定並將資料輸入欄位的該最接近點的坐標儲存至「Current_Position」。控制繼續進行至842。
在842,控制確定該複數神經網路是否是訓練過的。若是,控制進行至844;若否,則控制轉移至846。在844,針對該清單中的各個資料輸入欄位和資料組合,控制使用資料匹配神經網路152以估計資料輸入欄位會匹配於該資料的機率(「P_match」)。控制進行至848,在此,針對該清單中的各個資料輸入欄位,控制使用資料選擇神經網路154來估計將資料輸入至資料輸入欄位會到達該目標的機率(「P_choice」)。控制進行至850。
在846,針對該清單中的各個輸入欄位資料組合,控制分配該輸入欄位會匹配於該資料的一隨機機率(「P_match」)。控制進行至852,在此,針對該清單中的各個輸入欄位,控制分配將該資料輸入到該輸入欄位中會到達該目標文字的一隨機機率(「P_choice」)。在一些實施方式中,控制可使用蒙地卡羅模組142以針對「P_match」和「P_choice」產生隨機機率。控制繼續進行至850。
在850,控制針對該清單中的各個資料輸入欄位和資料組合計算並儲存一組合機率。舉例而言,控制可以針對清單中的各個項目計算「P_match」和「P_choice」的平均。然後,控制進行至854,在此,控制儲存資料輸入欄位和資料組合清單(例如,控制可以將該清單加至「Action_Data」)。控制繼續進行至第8C圖的838。
在第8C圖的838,控制在當前狀態中尋找「提交(submit)」(例如按鈕或選單選項,這些按鈕或選單選項提交在資料輸入欄位中輸入的資料),然後,控制進行至856。在856,控制確定當前地點中是否有任何提交。若是,控制進行至858;若否,則控制轉移至860。
在858,控制產生在當前狀態中找到的複數提交的一清單。控制進行至862,在此,針對該清單中的各個提交,控制確定並將提交使用者介面元件的該最接近點的坐標儲存至「Current_Position」。控制進行至864,在此,控制確定神經網路模組144中的複數神經網路是否為訓練過的。若是,控制進行至866;若否,則控制轉移至868。在866,控制使用提交神經網路150以估計清單中的各個提交將到達該目標的機率。控制將該複數機率儲存在提交清單中。控制繼續進行至870。
在868,控制針對清單中的各個提交,分配一隨機機率並將該機率儲存在提交清單中。在一些實施方式中,控制可使用蒙地卡羅模組142來分配該隨機機率。控制繼續至870。
在860,控制確定「Action_Data」是否等於「Null」,即當前狀態無法包含任何連結、資料輸入欄位和資料組合、或提交。若是,控制進行至874;若否,則控制轉移至872。在874,控制將結果設定為失敗並輸出結果。接著,控制結束。
返回至870,控制儲存該提交清單(例如,控制可以將該提交清單加至「Action_Data」)。控制繼續進入872。在872,控制確定神經網路模組144中的複數神經網路是否是訓練過的。若是,控制進行至876;若否,則控制轉移至878。在876,控制使用動作加權神經網路156以確定每一種動作類型(例如:連結、資料輸入欄位、與提交)的機率加權。然後,控制進行至880。
在878,控制為每一種動作類型分配一隨機機率加權(random probability weighting)(例如:連結、輸入欄位、與提交)。在一些實施方式中,控制可使用蒙地卡羅模組142來確定該複數隨機機率加權。然後,控制進行至880。
在880,控制確定並儲存各個儲存的動作的加權機率(即,針對各個連結、資料輸入欄位和資料組合、與儲存在「Action_Data」中的提交)。舉例而言,控制可使用下述方程式三和方程式四來計算各個加權機率(「 P action 」)。 (三) (四)
P unweighted 」是該動作的儲存的機率,「 W type 」是該動作的動作類型的機率加權,「 Distance」是當前地點(「Current_Position」)與在「Action_Data」中針對各個動作所儲存的最接近點之間的歐幾里德距離。方程式四用以標準化(normalize)各個動作的加權機率(「 P weighted 」)。
控制繼續進行至882,在此,控制輸出使用者介面的當前狀態的分析結果。舉例而言,控制將「Outcome」設定為「Action_Data」,然後輸出「Outcome」。接著,控制結束。
第9A圖和第9B圖繪示了基於完成的最短路徑測試,在神經網路模組144中訓練神經網路的一示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他系統中實施。在各種實施方式中,可以由最短路徑模組120及/或訓練模組134來執行控制。
因應於控制接收完成的測試,控制從第9A圖的904開始。在904,控制確定完成的測試是否是成功的。若是,控制繼續進行至908;若否,則控制結束。換言之,只有成功的測試才被用以訓練神經網路模組144中的複數神經網路。在908,控制將「State」設定為完成的測試中的狀態的數量(例如,儲存在「Test_Data」中的狀態的數量)。控制也將當前狀態(「Session_State」)設定為成功的測試的第一狀態(例如,儲存在「Test_Data」中的第一步驟)。
接著,控制繼續進行至912,在此,控制確定與在當前狀態(「Session_State」)中執行的動作相關的動作類型。控制將確定的動作類型的動作加權加至該訓練資料中。接著,控制進行至916,在此,控制將執行的動作的未加權的機率以及與執行的動作相關的任何資料(例如:連結、資料輸入欄位和資料組合、或一提交)保存至該訓練資料。控制繼續進行至920,在此,控制將「State」減一。接著,控制進行至924。
在924,控制確定完成的測試中是否存在任何額外的狀態。舉例而言,控制確定「State」是否大於零。若是,控制進行至928;若否,則控制轉移到930。在928,控制將「Session_State」設定為完成的測試的下一個狀態,例如:儲存在「Test_Data」中的下一個狀態。接著,控制返回至912。
在930,控制儲存神經網路模組144中的複數神經網路的當前訓練狀態。控制進行至932,在此,控制確定神經網路模組144中的複數神經網路是否為訓練過的(即,「Networks_Trained」的值是否為true)。若是,控制進行至936;若否,則控制轉移至940。在936,控制保存當前的複數神經網路。接著,控制進行至940。
在940,控制使用訓練資料以訓練複數神經網路。控制進行至944,在此,控制將「Test」設定為已完成測試的數量(例如,儲存在「Completed_Tests」中的測試的數量)。控制使用「Training_Test」逐步進行(step through)各個儲存的測試。在944,控制也將「Training_Test」設定為儲存在「Completed_Tests」中的第一測試。控制進行至第9B圖的948。
在第9B圖的948,控制將神經網路模組144中的複數神經網路的狀態設定為訓練過的。在948,控制還將「Change_Success」設定為零以及將「Change_Failure」設定為零。「Change_Success」和「Change_Failure」用以儲存先前計算的機率與新訓練的複數神經網路產生的機率之間的差異。控制繼續進行至952,在此,控制將「Training_Session」設定為與「Training_Test」相關的「Test_Data」。在952,控制還將「State」設定為儲存在「Training_Session」中的狀態的數量。控制使用「State」來逐步進行儲存在「Training_Session」中的各個狀態。控制進行至956,在此,控制將「Training_State」設定為儲存在「Training_Session」的第一狀態。控制繼續進行至960。
在960,控制執行與「Training_State」相關的動作,且控制進行至964。在964,控制分析在執行動作之後的使用者介面的狀態(例如,控制可以執行第8A圖至第8C圖中揭露的方法)。接著,控制進行至966,在此,控制確定與動作相關的測試(「Training_Session」)是否是成功的。若是,控制進行至968;若否,則控制轉移至970。在968,針對在分析期間所識別出的各個動作,控制計算儲存在「Training_State」中的機率,並分析產生的機率之間的差異。然後,控制計算所有差異的總和,並將該總和的值加至「Change_Success」。控制進行至972。
在970,針對在分析期間所識別出的各個動作,控制計算由分析產生的機率以及儲存在「Training_State」中的機率之間的差異。然後,控制計算該複數差異的總和,並將該總和的值加至「Change_Failure」。接著,控制繼續進行至972。
在972,控制使「State」減一。控制繼續進行至976,在此,控制確定在「Training_Session」中是否儲存了任何額外的狀態,即,「State」是否大於零。若是,控制進行至980;若否,則控制轉移至984。在980,控制將「Test_State」設定為儲存在「Training_Session」中的下一個狀態。然後,控制返回至960。
在984,控制確定「Completed_Tests」中是否儲存了任何額外的測試,即,「Test」是否大於零。若是,控制進行至988;若否,則控制轉移至992。在988,控制將「Test」減一,並將「Training_Test」設定為下一個完成的測試(例如,儲存在「Completed_Tests」中的下一個測試)。然後,控制返回至952。
在992,控制確定新訓練的複數神經網路的整體效能。舉例而言,控制可使用下述方程式五計算整體效能(「Performance」)。 (五)
接著,控制繼續進行至996,在此,控制確定訓練過的神經網路的整體效能是否表示神經網路有被改進。舉例而言,控制確定「Performance」是否大於或等於零。若是,新訓練的神經網路相較於先前網路有被改進,且控制結束。若「Performance」小於零,則新訓練的神經網路沒有被改進,且控制轉移至998。在998,控制恢復(restore)舊的神經網路(即,控制將神經網路恢復到最近的訓練之前的狀態)。在998,控制也將神經網路的訓練狀態(「Networks_Trained」)設定為與舊的神經網路相關的狀態(「prior_status」)。接著,控制結束。
第10A圖至第10C圖繪示了在完成的最短路徑測試中的重新加權(reweighting)動作的一示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他系統中實施。在各種實施方式中,可以由最短路徑模組120及/或重新加權模組136來執行控制。
控制從第10A圖的1003開始,在此,控制確定要重新加權的狀態的數量(例如,控制將「State_Count」設定為儲存在「Test_Data」中的狀態的數量)。控制進行至1006,在此,控制將要重新加權的狀態(「Reweight_State」)設定為最後完成的測試的第一狀態(即,儲存在「Test_Data」中的第一步驟)。接著,控制繼續進行至1009。
在1009,控制確定要重新加權的狀態是否包含連結。若是,控制進行至1012;若否,則控制轉移至第10B圖的1015。在1012,控制確定神經網路模組144中的複數神經網路是否為訓練過的。若是,控制進行至1018;若否,則控制轉移至1021。在1018,針對要重新加權的狀態的各個連結,控制使用神經網路模組144中的複數神經網路以估計該連結會到達該目標文字的機率,然後將估計的機率儲存在例如「Reweight_State」中。接著,控制進行至第10B圖的1015。
在1021,針對要重新加權的狀態的各個連結,控制分配該連結將到達該目標的一隨機機率,然後將該複數隨機機率儲存在例如「Reweight_State」中。在一些實施方式中,控制可使用蒙地卡羅模組142來產生該複數隨機機率。接著,控制進行至第10B圖的1015。
在第10B圖的1015,控制確定要重新加權的狀態(「Reweight_State」)是否包含一資料輸入欄位。若是,控制進行至1024;若否,則控制轉移至第10C圖的1027。在1024,控制確定要重新加權的狀態(「Reweight_State」)是否包含資料。若是,控制進行至1030;若否,則控制轉移至第10C圖的1027。
在1030,控制確定該複數神經網路是否是訓練過的。若是,控制繼續進行至1033;若否,則控制轉移至1036。在1033,針對要重新加權的狀態下的各個可能的資料輸入欄位和資料組合,控制使用神經網路模組144中的複數神經網路(例如,資料匹配神經網路152)以估計資料輸入欄位會匹配於該資料的機率(「P_match」)。控制繼續進行至1039,在此,針對要重新加權的狀態中的各個資料輸入欄位,控制使用神經網路模組144中的複數神經網路(例如,資料選擇神經網路154)以估計將資料輸入到該輸入欄位中會到達該目標文字的機率(「P_choice」)。控制進行至1042。
在1036,針對各個輸入欄位和在重新加權狀態的各個資料,控制分配該輸入欄位會匹配於該資料的一隨機機率(「P_match」)。控制進行至1045,在此,針對要重新加權的狀態中的各個輸入,控制分配將資料輸入該資料輸入欄位會到達該目標的一隨機機率(「P_choice」)。在一些實施方式中,控制可使用蒙地卡羅模組142以針對「P_match」和「P_choice」產生隨機機率。然後,控制進行至1042。
在1042,控制針對各個資料輸入欄位和資料組合計算一組合機率。舉例而言,控制可以在要重新加權的狀態中,針對各個資料輸入欄位和資料組合,計算「P_match」和「P_choice」的平均。控制儲存該複數組合機率,例如,儲存於「Reweight_State」中。接著,控制繼續進行至第10C圖的1027。
在第10C圖的1027,控制確定要重新加權的狀態是否包含提交。若是,控制進行至1048;若否,則控制轉移至1051。在1048,控制確定該複數神經網路是否是訓練過的。若是,控制進行至1054;若否,則控制轉移至1057。在1054,針對在要重新加權的狀態中的各個提交,控制使用神經網路模組144中的複數神經網路(例如,提交神經網路150)來估計執行該提交將到達該目標文字的機率,並且儲存估計的機率(例如,儲存在「Reweight_State」中)。接著,控制進行至1051。
在1057,針對要重新加權的狀態中的各個提交,控制分配該提交會到達該目標文字的一隨機機率,然後將該隨機機率儲存在例如「Reweight_State」中。在一些實施方式中,控制可使用蒙地卡羅模組142來產生該隨機機率。然後,控制進行至1051。
在1051,控制確定神經網路模組144中的複數神經網路是否是訓練過的。若是,控制進行至1060;若否,則控制轉移至1063。在1060,控制使用動作加權神經網路156確定每一種動作類型(例如:連結、資料輸入欄位、與提交)的機率加權。控制繼續進行至1066。在1063,控制為每一種動作類型分配一隨機機率加權(例如:連結、輸入欄位、與提交)。在一些實施方式中,控制可使用蒙地卡羅模組142來確定該複數隨機機率加權。控制繼續進行至1066。
在1066,控制針對各個連結、資料輸入欄位和資料組合、與要重新加權的狀態中的提交(也就是,針對「Reweight_State」中的各個動作),確定並儲存一更新的加權機率。如前所述,控制可使用方程式三和方程式四以計算各個加權機率。然後,控制進行至1069。
在1069,控制儲存重新加權的狀態(例如,控制可以將在「Test_Data」中且對應至該重新加權的狀態的狀態設定為「Reweight_State」)。在1069,控制也將「State_Count」減一。控制進行至1072,在此,控制確定是否有任何額外的狀態需要重新加權(即「State_Count」是否大於零)。若是,控制繼續進行至1075,在此,控制將要重新加權的狀態設定為儲存在前一次完成的測試中的下一個狀態(例如,控制將「Reweight_State」設定為儲存在「Test_Data」中的下一個狀態)。然後,控制返回至第10A圖的1009。若控制確定沒有額外的狀態需要重新加權,則控制結束。
第11圖繪示了基於選擇的動作來建立新的使用者介面對話的一示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他系統中實施。在各種實施方式中,可以由最短路徑模組120及/或對話產生模組138來執行控制。
在完成的最短路徑測試中選擇最高機率的動作後,控制從1104開始。在1104,控制將當前狀態變數(「Current_State」)設定為完成的測試中與選擇的動作相關的的步驟。在1104,控制也將一堆疊(stack)初始化,以將一狀態序列(state sequence)(「Temp_Sequence」)暫時保持為「Null」。然後,控制進行至1108,在此,控制將當前狀態(「Current_State」)推送(push)到暫時堆疊(「Temp_Sequence」)。控制繼續進行至1112,在此,控制確定該當前狀態是否為該完成的測試的初始狀態。若是,控制進行至1116;若否,則控制轉移至1120。
在1120,控制將當前狀態設定為該當前狀態之前的該步驟(例如,在「Test_Data」中的當前狀態的之前的步驟)。然後,控制將當前狀態(「Current_State」)以及與該當前狀態相關的動作推送至該暫時堆疊(「Temp_Sequence」)。然後,控制返回至1112。
在1116,控制將該新的對話的狀態序列初始化(舉例而言,控制將「Test_Data」設定為「Null」,將「Test_Distance」設定為零,將「Steps」設定為零,並針對配置資料中的各個變數,將「Used」設定為「False」)。控制進行至1124,在此,控制加載該初始URL並將該當前地點設定為該使用者介面的中心點。控制繼續進行至1128,在此,控制將最上層的輸入從該暫時堆疊(「Temp_Sequence」)中彈出(pops),並將其加至測試資料(「Test_Data」)。在1128,控制也將與該輸入相關的動作設定為該當前動作(「Current_Action」)。控制繼續進行至1132。
在1132,控制確定該當前動作的類型。若該類型是提交,則控制進行至1136;若該當前動作的類型是連結,則控制轉移至1152;若該當前動作的類型是資料輸入欄位,則控制轉移至1156。在1136,控制確定與提交相關的使用者介面元件的最接近點。然後,控制將該動作距離(「Action_Distance」)計算為「Current_Position」以及與提交相關的使用者介面元件的該最接近點之間的歐幾里德距離。接著,控制繼續進行至1144,在此,控制執行提交(例如,控制在與提交相關的使用者介面元件上加上點擊(clicks)),並將當前地點(「Current_Position」)設定為與提交相關的使用者介面元件的最接近點。接著,控制進行至1148。
在1152,控制確定與連結相關的使用者介面元件的最接近點。然後,控制將該動作距離(「Action_Distance」)計算為「Current_Position」以及與該連結相關的使用者介面元件的該最接近點之間的歐幾里德距離。接著,控制繼續進行至1160,在此,控制執行連結(例如,控制觸發與連結相關的使用者介面元件上的點擊器的點擊),並將當前地點(「Current_Position」)設定為與連結相關的使用者介面元件的最接近點。然後,控制進行至1148。
在1156,控制確定該資料輸入欄位的最接近點。然後,控制將該動作距離(「Action_Distance」)計算為「Current_Position」以及該資料輸入欄位的該最接近點之間的歐幾里德距離。接著,控制繼續進行至1164,在此,控制將與該動作相關的該變數輸入至該資料輸入欄位中;將該變數標記為使用過的(將「Used」設定為「True」),並將「Current_Position」設定為該資料輸入欄位的最接近點。然後,控制進行至1148。
在1148,控制更新該測試距離和步驟的數量。舉例而言,控制將「Action_Distance」加至「Test_Distance」,並將「Step」加一。接著,控制進行至1168。在1168,控制確定暫時堆疊(「Temp_Sequence」)是否為空的(例如「Temp_Sequence」的大小是否為零)。若是,控制繼續進行至1172;若否,控制返回至1128。在1172,控制將該測試距離加至儲存的狀態序列中(例如,控制將「Test_Distance」加至「Test_Data」)。接著,控制結束。
第12A圖至第12H圖是在一示例使用者介面中到達一目標的路徑的確定過程的圖形表示。具體地,第12A圖至第12H圖繪示了在一示例使用者介面中確定完成登入過程的路徑的一示例過程。第12A圖是該示例使用者介面的初始狀態1202的表現。該過程開始於將當前地點設定在螢幕1204的中心點。接著,使用者介面的初始狀態1202被分析。
第12B圖是使用者介面的初始狀態1202的分析結果的圖形表示,例如:對在使用者介面的初始狀態1202中可以採取的所有可能的動作的識別。具體地,該分析識別了第一連結1206、第二連結1207、第三連結1208、與第四連結1209。該分析還識別了第一資料輸入欄位1212、第二資料輸入欄位1213、與標記為「登入(login)」的提交按鈕1215。從螢幕1204的中心點發出的箭頭表示在初始狀態1202中從當前地點到各個識別的動作的距離。
在第12C圖中,被選擇為最短路徑中的第一步驟的該動作是將文字「testuser」輸入至第一資料輸入欄位1212中。如上所述,可以基於來自訓練過的神經網路的加權機率來進行該選擇。該當前地點(螢幕的中心點)與該第一資料輸入欄位的位置之間的距離,是第一步驟距離1218,其被儲存為該最短路徑的距離。執行選擇的動作會導致使用者介面從初始狀態1202轉變為第二狀態1219,並且將當前地點改變為第一資料輸入欄位1212的位置。接著,該使用者介面的第二狀態1219被分析。
第12D圖是在使用者介面的第二狀態1219中可以採取的可能的動作的分析結果的圖形表示。具體地,該分析將該第一連結1206、該第二連結1207、該第三連結1208、該第四連結1209、該第二資料輸入欄位1213、與提交按鈕1215識別為該第二步驟的可能的動作。從第一資料輸入欄位1212發出的箭頭表示在使用者介面的第二狀態1219中從當前地點到各個識別的動作的距離。
在第2E圖中,被選擇為該第二步驟的動作是將文字輸入至該第二資料輸入欄位1213中(表示為「******」)。該當前地點(該第一資料輸入欄位1212的位置)與第二資料輸入欄位1213的位置之間的距離是第二步驟距離距離1220,其被加至儲存的當前路徑距離。在第二狀態1219中執行所選擇的動作會導致使用者介面轉換到第三狀態1222,且該當前地點會被改變為第二資料輸入欄位1213的位置。接著,使用者介面的第三狀態1222被分析。
第12F圖是使用者介面的第三狀態1222的分析結果的圖形表示(也就是,在使用者介面的第三狀態1222中可以採取的所有可能的動作)。具體地,該分析將該第一連結1206、該第二連結1207、該第三連結1208、該第四連結1209、與該提交按鈕1215識別為該最短路徑的第三步驟的可能的動作。從第二資料輸入欄位1213發出的箭頭表示在第三狀態1222中從當前地點到各個識別的動作的距離。
在第12G圖中,被選擇為第三步驟的動作是點擊標記為「登入(Login)」的提交按鈕1215。該當前地點(第二資料輸入欄位1213的位置)與標記為「登入」的提交按鈕1215的位置之間的距離。是第三步驟距離距離1224,其被加至儲存的當前路徑距離。在第三狀態1222中執行選擇的該動作會導致該使用者介面轉換至第12H圖繪示的第四狀態1226,且該當前地點會被改變為標記為「登入」的提交按鈕1215的位置。
如第12H圖所示,分析該使用者介面的該第四狀態1226導致文字1230的識別。該文字1230匹配於該目標文字(例如「歡迎」),其表示該目標已被到達。從該當前地點(標示為「登入」的提交按鈕1215的前位置(former location))到該文字1230的位置之間的距離,是第四步驟距離1232,其被加至該當前路徑距離以確定該當前路徑的總距離。此路徑導致一成功的結果。可以研究額外的路徑,以確定是否可以找到具有更短的總距離的一成功路徑。 使用者介面增強
第13圖繪示了使用眼睛追蹤實驗來針對使用者介面產生提示與增強的一示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他裝置及/或系統中實施。在各種實施方式中,可以由使用者介面增強模組122及最短路徑模組120執行控制。
控制從1304開始,在此,控制取得一使用者介面的一初始URL、該使用者介面的一目標、與一增強百分比。該增強百分比是一閾值,其用以確定到達該目標的最短路徑的一步驟是否需要使用者增強。舉例而言,該增強百分比表示在該最短路徑的某一步驟被確定需要增強之前,使用者可能偏離該步驟的頻率。控制繼續進行至1306。在1306,控制確定該使用者介面中到達該目標的最短路徑。在一些實施方式中,如前述,控制可以執行第7A圖和第7B圖中揭露的方法。在其他實施方式中,控制可以(例如,從儲存裝置112)加載與該使用者介面的該目標相關的先前儲存的最短路徑。接著,控制進行至1308。
在1308,控制針對該使用者介面的各個URL確定沿著該最短路徑會遇到的(encountered)一增強距離。該增強距離是在控制確定某一步驟可能需要增強之前,使用者可能偏離適用的最短路徑的該步驟的最大距離。控制可以執行第14圖中描述的方法以確定各個URL的增強距離。然後,控制進行至1312。
在1312,控制基於針對該使用者介面的各個URL所確定的增強距離,確定該最短路徑中可能需要增強的步驟。舉例而言,控制可以執行第21圖中揭露的方法以確定哪些步驟可能需要增強。控制繼續進行至1316。
在1316,控制加載該最短路徑的第一步驟。控制也將「UI_Enhancement」初始化為「Null」。「UI_Enhancement」用以儲存與該使用者介面相關的提示和增強,這些提示和增強可用以輔助使用者到達該目標。然後,控制進行至1320。
在1320,控制確定該步驟是否包含一連結。若是,控制繼續進行1324;若否,則控制轉移至1328。在1324,控制取得對應被包含的該連結的DOM元件。控制繼續進行至1332,在此,控制根據取得的該DOM元件確定該連結是否由一按鈕來表示。若是,控制繼續進行至1336;若否,則控制轉移至1340。
在1336,控制產生一提示以指示該使用者點擊與連結相關的按鈕。舉例而言,控制可以將提示設定為「點擊<<按鈕>>」。在產生的提示中,<<按鈕>>是描述按鈕的文字(例如,按鈕的名稱或與該按鈕相關的文字)。控制可以從取得的該DOM元件中取得該按鈕的名稱或與其相關的文字。控制繼續進行至1344,如下所述。
在1340,控制產生一提示以指示該使用者從一選單中選擇一選項。舉例而言,控制可以將提示設定為「從<<選單>>中選擇<<選項>>」。在產生的提示中,<<選項>>和<<選單>>分別是描述選項和選單的文字。控制可以從取得的該DOM元件取得該文字。控制繼續進行至1344,如下所述。
返回至1328,控制確定該步驟是否包含一提交。若是,控制繼續進行至1348;若否,則控制確定該步驟包含一資料輸入欄位,且控制轉移至1352。在1348,控制取得與該步驟包含的該提交對應的DOM元件。控制繼續進行至1356,在此,控制產生一提示以指示該使用者點擊該提交。舉例而言,控制可以將該提示設定為「點擊<<提交>>」。在產生的提示中,<<提交>>是描述該提交的文字(例如,該提交的名稱或與該提交相關的文字)。控制可以從取得的該DOM元件取得該提交的名稱或與其相關的文字。控制繼續進行至1344,如下所述。
返回至1352,控制取得對應於該資料輸入欄位的DOM元件。控制繼續進行至1360,在此,控制基於取得的該DOM元件以確定該資料輸入欄位是否為一文字輸入欄位。若是,控制繼續進行至1364;若否,則控制可推斷該輸入欄位是一或多個選項的清單,並轉移至1368。在1364,控制產生一提示以指示該使用者將文字輸入至該輸入欄位。舉例而言,控制可以將該提示設定為「在<<欄位>>中輸入您的資料」。在產生的提示中,<<欄位>>是描述該輸入欄位的文字(例如,該輸入欄位的名稱或與該輸入欄位相關的文字)。控制可以從取得的該DOM元件中取得該輸入欄位的名稱或與其相關的文字。接著,控制進行至1344。
返回至1368,控制產生一提示以指示該使用者從複數選項的清單中選擇一個選項。舉例而言,控制可以將該提示設定為「從<<欄位>>中的選項中選擇<<選項>>」。在產生的該提示中,<<欄位>>是描述該輸入欄位的文字,(例如,該輸入欄位的名稱或與該輸入欄位相關的文字)。控制可以從取得的DOM元件中取得該輸入欄位的名稱或與其相關的文字。控制繼續進行至1344。
返回至1344,控制根據接收的增強百分比以確定該步驟是否需要使用者增強。舉例而言,控制可使用下述不等式六來確定該步驟是否需要增強。 (六)
「Count reinforce」表示該步驟被認為可能需要增強的次數(每當發生眼睛追蹤資料樣本偏離該步驟的距離超過對應的增強距離)。「Count total」是確定該眼睛追蹤樣本是對應於該步驟的總次數。若不等式六為真(true),則控制確定該步驟需要增強,且控制繼續進行至1372;若否,則控制轉移至1376。
在1372,控制將與取得的該DOM元件相關的該使用者介面的組件(component)標記為需要額外的增強。在一些實施方式中,當該提示被呈現給使用者時,該使用者介面的組件會被凸顯。在其他實施方式中,可以將該使用者介面的組件的位置提供給使用者。然後,控制進行至1376。
在1376,控制在「UI_Enhancement」中儲存該最短路徑步驟,該DOM元件,產生的該提示、與任何額外的增強。控制繼續進行至1380。
在1380,控制確定該最短路徑是否包含下一個步驟。若是,控制進行至1384;若否,則控制轉移至1388。在1384,控制加載該最短路徑中的下一個步驟,然後返回1320。
在1388,控制輸出「UI_Enhancement」。接著,控制結束。產生的該使用者介面的增強可用以產生新的使用者介面,其引導使用者到達該目標。舉例而言,可以將產生的提示結合至該使用者介面。「UI_Enhancement」中包含的資料也可以被一自動化系統使用以向使用者提供提示,以引導使用者到達請求的或建議的目標。
在一些實施方式中,控制只有在因應於確定最短路徑的一步驟需要增強時,才可以產生一提示。換言之,控制只有在因應於基於接收的增強百分比以確定(如在1344)該步驟需要使用者增強時,才能實施元件1320、1324、1328、1332、1336、1340、1348、1352、1356、1360、1364和1368。舉例而言,控制可使用上述的(不等式六)來確定步驟是否需要增強。
第14圖繪示了用以確定使用者介面的各個URL的增強距離的一示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他裝置及/或系統中實施。在各種實施方式中,可以由增強模組160及/或距離模組164來執行控制。
控制開始於1404,在此,控制取得一目標的一最短路徑。在一些實施方式中,控制可以加載先前已經確定且儲存的(例如儲存在儲存裝置112中的)一最短路徑。在其他實施方式中,控制可以執行第7A圖和第7B圖中揭露的方法。控制繼續進行至1408,在此,控制取得複數測試參數(例如,系統被允許執行進化的最大次數(a maximum number of evolutions)(「Max_Evolutions」)和一組適應性加權值。然後,控制進行至1412。
在1412,控制加載與該使用者介面和該目標對應的眼睛追蹤實驗。該些眼睛追蹤實驗包含追蹤操作該使用者介面的使用者的資料。該追蹤資料是以固定的取樣頻率(例如,每兩秒一次)被擷取。各個眼睛追蹤實驗基於使用者正在操作的使用者介面的頁面,將追蹤資料分組為複數頁面。也就是,眼睛追蹤實驗的各個頁面表示一使用者在單一狀態期間中在該使用者介面的移動。追蹤資料中的各個資料點包含在擷取時該使用者介面的頁面(URL)以及一組指示該使用者介面的螢幕上的位置的坐標。控制繼續進行至1416。
在1416,控制計算眼睛追蹤實驗和最短路徑之間的差異。舉例而言,控制確定追蹤資料和沿著該最短路徑的點之間的距離。控制可以執行第15圖中揭露的方法以計算該些距離。然後,控制進行至1420。
在1420,控制計算被標記為成功的複數眼睛追蹤實驗(這些實驗導致使用者到達該目標)中所包含的各個URL的中位成功距離。控制可以執行第17圖中揭露的方法以確定該些中位成功距離。然後,控制進行至1424。
在1424,控制計算被標記為失敗的複數眼睛追蹤實驗中所包含的各個URL的中位失敗距離。若該使用者未到達該目標或該追蹤資料偏離該最短路徑,則可將一實驗標記為失敗。控制可以執行第18圖中揭露的方法以確定該些中位失敗距離。控制繼續進行至1428。
在1428,控制基於對應的中位成功距離和中位失敗距離為各個URL設定邊界值。舉例而言,控制將URL的上限設定為中位成功距離,將URL的下限設定為中位失敗距離。該上限和該下限用以產生需要增強的最短路徑的偏離距離的猜測。控制也將執行進化的次數(「Evolution」)初始化為零。然後,控制進行至1432。
在1432,針對各個URL,控制基於URL的邊界值產生一隨機距離。舉例而言,控制可使用蒙地卡羅模組142以在URL的該上限和URL的該下限之間產生一隨機值。控制繼續進行至1436,在此,控制測試針對URL所產生的該值。舉例而言,控制可以執行第19圖中揭露的方法以測試產生的該些距離。然後,控制進行至1440。
在1440,控制確定執行的進化的次數是否小於允許的進化的最大次數。若是,控制繼續進行至1444;若否,則控制轉移至1448。在1444,控制增加「Evolution」並返回至1432。
在1448,控制針對各個隨機產生的增強距離計算一適應度值。控制可使用下述方程式七以計算各個適應度值。 (七)
W 1 」、「 W 2 」和「 W 3 」是在1408中取得的適應度加權值。「 SuccessCount」表示,基於針對URL隨機產生的增強距離,一預測正確地預測一眼睛追蹤實驗的結果的次數。「 FalsePositiveCount」表示,基於針對URL隨機產生的增強距離,一預測錯誤地將成功的眼睛追蹤實驗預測為失敗的眼睛追蹤實驗的次數。「 FalseNegative」表示,基於針對URL隨機產生的增強距離,一預測錯誤地將失敗的眼睛追蹤實驗預測為成功的眼睛追蹤實驗的次數。控制繼續進行至1452。
在1452,控制對確定的適應度值與相關的隨機產生的距離的圖表執行集群分析。在某些實施方式中,控制使用具有雜訊的應用的基於密度的空間集群(density-based spatial clustering of applications with noise,DBSCAN)演算法來執行集群分析。在其他實施方式中,控制使用平均移位技術(mean shift technique)來執行集群分析。又在其他實施方式中,集群分析模組170可使用任一種合適的集群分析技術或演算法來分析適應度值與隨機產生的距離的圖表。控制繼續進行至1456。
在1456,控制確定在集群分析期間針對單一URL是否有識別出多個集群。若是,控制進行至1460;若否,則控制轉移至1464。在1460,控制根據URL的最成功的集群為各個URL更新邊界值。舉例而言,針對各個URL,控制將URL的上限設定為與URL相關的最成功的集群中的最大距離,並將URL的下限設定為最成功的集群中的最小距離。控制也將執行的進化的次數重置為零。然後,控制返回至1432。
返回至1464,控制輸出增強距離。舉例而言,針對各個URL,控制輸出與具有最高適應度值的URL相關的增強距離。接著,控制結束。
第15圖繪示了用以確定眼睛追蹤實驗與沿著加載的(loaded)最短路徑的點之間的距離的一示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他裝置及/或系統中實施。在各種實施方式中,可以由增強模組160及/或距離模組164來執行控制。
控制從1502開始。在1502,控制取得複數眼睛追蹤實驗和一最短路徑。在一些實施方式中,控制可以(例如從儲存裝置112)加載先前儲存的複數眼睛追蹤實驗及/或最短路徑。在其他實施方式中,控制可使用已經加載的眼睛追蹤實驗及/或最短路徑。控制繼續進行至1504,在此,控制將變數「Current_Experiment」設定為第一個加載的眼睛追蹤實驗。控制繼續進行至1508,在此,控制將「Current_Page」設定為儲存在「Current_Experiment」的第一頁面。在1508,控制也將該最短路徑的步驟加載至一暫時佇列(temporary queue)(「Temp_Path」)中。然後,控制進行至1512。
在1512,控制使用該暫時佇列以確定該當前頁面的距離。舉例而言,控制可以執行第16圖中揭露的方法以加載「Current_Page」並基於「Temp_Path」中的最短路徑的步驟以計算該些距離。然後,控制進行至1516。在1516,控制確定與當前頁面相關的追蹤資料是否偏離了該最短路徑(例如「Result」是否等於偏差)。若是,控制繼續進行至1520;若否,則控制轉移至1524。在1520,控制記錄該當前頁面的路徑偏差。舉例而言,控制將該偏差儲存在「Current_Page」中。控制繼續進行至1524。
在1524,控制記錄確定的距離以及該當前頁面的相關資料(例如,控制可以將「Result」加至「Current_Page」)。控制繼續進行至1526,在此,控制基於與儲存在「Current_Page」中的資料相關的資料,以更新「Current_Experiment」。控制進行至1528,在此,控制確定「Current_Experiment」是否包含額外的頁面。若是,控制進行至1532;若否,則控制轉移至1536。在1532,控制將「Current_Page」設定為儲存在「Current_Experiment」中的下一個頁面。然後,控制返回至1512。
在1536,控制確定「Current_Experiment」中是否有任何頁面包含偏差。若是,控制繼續進行至1540;若否,則控制轉移至1544。在1540,控制將儲存在該當前實驗中的與該些距離(「Distance_Status」)相關的狀態設定為失敗。然後,控制進行至1548。在1544,控制將儲存在該當前實驗中的「Distance_Status」設定為該當前實驗的狀態(「Current_Experiment」)(例如,成功的或失敗的)。控制繼續進行至1548。
在1548,控制記錄與儲存在該當前實驗的該些距離相關的狀態。舉例而言,控制可以將「Distance_Status」加至「Current_Experiment」。控制進行至1550,在此,控制基於與該當前實驗相關的資料(即,儲存在「Current_Experiment」中的資料),以更新加載的眼睛追蹤實驗。然後,控制進行至1552。
在1552,控制確定加載的眼睛追蹤實驗是否包含另一個實驗。若是,控制繼續進行至1556;若否,則控制轉移至1560,在此,控制保存加載的實驗,且控制結束。在1556,控制將「Current_Experiment」設定為下一個加載的實驗。然後,控制返回至1508。
第16圖繪示了用以確定眼睛追蹤資料和沿著針對使用者介面的頁面的加載的最短路徑的點之間的距離的一示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他裝置及/或系統中實施。在各種實施方式中,可以由增強模組160及/或距離模組164來執行控制。
在接收與該使用者介面的該頁面相關的眼睛追蹤資料和包含該最短路徑的步驟的一佇列(例如,第15圖的1512中的「Current_Page」和「Temp_Path」)之後,控制開始於1604。在1604,控制確定與該眼睛追蹤資料相關的該URL,並將「Result」設定為「Null」。控制進行至1608,在此,控制從該眼睛追蹤資料(例如「Current_Page」)中提取坐標形式的複數眼睛追蹤樣本。控制繼續進行至1612,在此,控制將該些眼睛追蹤樣本繪製在網格(grid)上,並產生表示該些樣本的一向量。控制進行至1616。
在1616,控制加載一最短路徑步驟(例如,控制將一步驟從「Temp_Path」中彈出)。然後,控制將與眼睛追蹤資料相關的URL以及與該最短路徑步驟相關的URL進行比較。控制進行至1620。若該二URL相匹配,控制繼續進行1624;若否,則控制確定該眼睛追蹤資料偏離該最短路徑,且控制轉移至1628。在1628,控制將整體確定該結果(「Result」)設定為偏差,且控制繼續進行至1632。在1632,控制輸出「Result」並結束。
在1624,控制在網格上繪製最短路徑的步驟的起始和結束的坐標。然後,控制產生該步驟的起始點和結束點之間的一最短路徑向量。控制進行至1636,在此,控制確定該最短路徑中是否還有另一個步驟(例如「Temp_Path」的大小是否大於零)。若是,控制進行至1640;若否,則控制轉移至1644。
在1640,控制將與該最短路徑的下一個步驟相關的URL以及與該眼睛追蹤資料相關的URL進行比較(舉例而言,控制在不將該步驟從該堆疊中移除的情況下窺視(peek)「Temp_Path」中的下一個步驟)。然後,控制進行至1648。若該二URL相匹配,控制進行至1652;若否,則控制轉移至1644。在1652,控制加載下一個最短路徑步驟(例如,控制將一步驟從「Temp_Path」中彈出)。然後,控制基於下一個最短路徑步驟更新該網格和該最短路徑向量。然後,控制返回至1636。
在1644,控制沿著該最短路徑向量繪製與複數追蹤樣本對應的點。舉例而言,控制從該最短路徑向量的起始點開始,針對沿著該最短路徑向量所等距地(equidistantly)繪製的各個眼睛追蹤樣本,繪製一個點。控制繼續進行至1656,在此,控制將該當前點設定為該最短路徑向量的起始點。然後,控制進行至1660。
在1660,控制計算當前點與對應該當前點的眼睛追蹤樣本之間的歐幾里德距離。在1664,控制記錄該當前點和對應的眼睛追蹤樣本二者的坐標以及二者之間的距離。舉例而言,控制可以將這些值加至「Result」。然後,控制進行至1668,在此,控制確定該當前點是否位於最短路徑向量的結束端。若是,控制進行至1632,在此,控制輸出「Results」並結束;若否,則控制返回至1632。若否,則控制轉移至1672。在1672,控制將該當前點設定為該最短路徑向量上的下一個點,然後返回1660。
第17圖繪示了基於儲存在眼睛追蹤實驗中的資料,針對在一組眼睛追蹤實驗中的各個URL確定中位成功距離的一示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他裝置及/或系統中實施。在各種實施方式中,可以由增強模組160及/或距離模組164來執行控制。
控制從1702開始。在1702,控制取得複數眼睛追蹤實驗。在一些實施方式中,控制可以(例如,從儲存裝置112)加載先前儲存的複數眼睛追蹤實驗。在其他實施方式中,控制可使用已經加載的複數眼睛追蹤實驗。控制繼續進行至1704,在此,控制將該當前實驗設定為該眼睛追蹤實驗的第一個實驗,並將「Successful_Temp」設定為「Null」。控制使用「Successfull_Temp」以儲存各個成功距離和相關的URL。接著,控制進行至1708。
在1708,控制加載該當前實驗的資料和狀態。控制繼續進行至1712,在此,控制確定該當前實驗是否被標記為成功的(即,該測試使用者是否到達了該目標)。若是,控制繼續進行至1716;若否,則控制轉移至1720。在1716,控制加載與該當前實驗的第一個URL相關的所有距離。然後,控制進行至1724,在此,控制將與該URL相關的各個距離以及該URL加至「Successfull_Temp」。即,儲存在「Successful_Temp」中的各個距離都被連結至一URL。控制進行至1728,在此,控制確定該當前實驗中是否存在另一個URL。若是,控制進行至1732,在此,控制加載與當前實驗中的下一個URL相關的所有距離,然後,控制返回1724;若否,則控制轉移至1720。
在1720,控制確定是否還有另一個眼睛追蹤實驗。若是,控制繼續進行至1736;若否,則控制轉移至1740。在1736,控制加載下一個實驗的資料和狀態,然後返回至1708。在1740,控制針對各個URL確定儲存在「Successfull_Temp」中的中位距離。控制進行至1744,在此,控制針對該些眼睛追蹤實驗中各個URL輸出中位成功距離。接著,控制結束。
第18圖繪示了基於儲存在眼睛追蹤實驗中的資料,針對在一組眼睛追蹤實驗中的各個URL確定中位失敗距離的一示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他裝置及/或系統中實施。在各種實施方式中,可以由增強模組160及/或距離模組164來執行控制。
控制開始於1802,在此,控制取得複數眼睛追蹤實驗。在一些實施方式中,控制可以(例如,從儲存裝置112)加載先前儲存的複數眼睛追蹤實驗。在其他實施方式中,控制可使用已經加載的複數眼睛追蹤實驗。控制進行至1804,在此,控制將該當前實驗設定為該眼睛追蹤實驗的第一個實驗,並將「Failure_Temp」設定為「Null」。控制使用「Failure_Temp」以儲存各個失敗距離和相關的URL。接著,控制進行至1808。
在1808,控制加載該當前實驗的資料和狀態。控制繼續進行至1812,在此,在此,控制確定該當前實驗是否被標記為失敗的。因應於測試使用者未到達該目標或該追蹤資料偏離該最短路徑,可以將一實驗標記為失敗。若該實驗被標記為「失敗」,控制繼續進行至1816;若否,則控制轉移至1820。在1816,控制加載與該當前實驗的第一個URL相關的所有距離。然後,控制進行至1824,控制將與該URL相關的各個距離以及該URL加至「Failure_Temp」。即,儲存在「Failure_Temp」中的各個距離都被連結至一URL。控制繼續進行至1828,在此,控制確定該當前實驗中是否存在另一個URL。若是,控制進行至1832,在此,控制加載與當前實驗中的下一個URL相關的所有距離,然後,控制返回至1824;若否,則控制轉移至1820。
在1820,控制確定是否還有另一個眼睛追蹤實驗。若是,控制進行至1836;若否,則控制轉移至1840。在1836,控制加載下一個實驗的資料和狀態,然後返回至1808。在1840,控制針對各個URL確定儲存在「Failure_Temp」中的中位距離。控制進行至1844,在此,控制針對該些眼睛追蹤實驗中各個URL輸出中位失敗距離。接著,控制結束。
第19圖繪示了用以將眼睛追蹤實驗的複數預測結果與先前儲存的複數結果進行比較的一示例方法的流程圖。該複數預測是基於到達目標的最短路徑和一組測試距離,該組測試距離表示與該最短路徑的可接受偏差。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他裝置及/或系統中實施。在各種實施方式中,可以由增強模組160、距離模組164、及/或預測模組168來執行控制。
控制開始於1904,在此,控制取得複數眼睛追蹤實驗、一最短路徑、與複數測試距離。在一些實施方式中,控制可以(例如,從儲存裝置112)加載先前儲存的複數眼睛追蹤實驗、一最短路徑及/或複數測試距離。在其他實施方式中,控制可使用已經加載的複數眼睛追蹤實驗、一最短路徑及/或複數測試距離。控制進行至1908,在此,控制將該當前實驗設定為第一個加載的眼睛追蹤實驗,並將「Prediction」設定為「Null」。控制使用「Prediction」以儲存針對各個URL所產生的預測。控制繼續進行至1912,在此,控制將該當前頁面設定為儲存在該當前實驗中的第一頁面。在1912,控制也將該最短路徑加載至一暫時佇列(「Temp_Path」)中。接著,控制進行至1916。
在1916,控制使用儲存在該暫時佇列(「Temp_Path」)中的測試距離和最短路徑的步驟以針對該當前頁面產生預測。舉例而言,控制可以執行第20圖中揭露的方法以產生該些預測。然後,控制進行至1920,在此,控制記錄(logs)產生的預測(例如,控制將該預測加至「Prediction」)。接著,控制進行至1924。
在1924,控制確定該當前實驗中是否還有另一個頁面。若是,控制進行至1928;若否,則控制轉移至1932。在1928,控制將當前頁面設定為當前實驗的下一個頁面。接著,控制返回至1916。
在1932,控制確定是否還有另一個實驗。若是,控制進行至1936;若否,則控制轉移到1940。在1940,控制輸出針對各個URL所產生的預測(「Prediction」)。接著,控制結束。
第20圖繪示了,基於對眼睛追蹤實驗的單一頁面的分析,將眼睛追蹤實驗的一預測結果與先前儲存的複數結果進行比較的一示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他裝置及/或系統中實施。在各種實施方式中,可以由增強模組160、距離模組164、及/或預測模組168來執行控制。
當收到該眼睛追蹤實驗的一頁面、測試距離、與包含最短路徑的步驟的佇列(例如,第19圖的1916中的「Current_Page」、「Test_Distances」、與「Temp_Path」),控制從2004開始。在2004,控制確定並儲存與眼睛追蹤資料的頁面相關的實驗狀態(例如,是成功的或是失敗的)。舉例而言,控制將「Status」設定為與接收的頁面相關的實驗的儲存的結果。控制也將「Result」初始化為「Null」。控制使用「Result」以儲存針對眼睛追蹤資料的頁面的比較結果。然後,控制繼續進行至2008。
在2008,控制確定與眼睛追蹤資料的該頁面相關的該URL。然後,控制確定並儲存與確定的該URL相關的該測試距離(「Test_Dist」)。控制繼續進行至2012,在此,控制從該眼睛追蹤資料(例如「Current_Page」)中提取坐標形式的複數眼睛追蹤樣本。然後,控制進行至2016,在此,控制將該些眼睛追蹤樣本繪製在網格上,並產生表示該些樣本的一向量。控制繼續進行至2020。
在2020,控制加載一最短路徑步驟(例如,控制將一步驟從「Temp_Path」中彈出)。然後,控制將與眼睛追蹤資料相關的URL以及與最短路徑步驟相關的URL進行比較。控制進行至2024。若該二URL相匹配,則控制進行至2028;若否,則控制確定該眼睛追蹤資料和該最短路徑步驟沒有與該使用者介面的同一個螢幕相關,且控制結束。
在2028,控制在網格上繪製最短路徑的步驟的起始和結束的坐標。然後,控制產生該步驟的起始點和結束點之間的一最短路徑向量。控制進行至2032,在此,控制確定該最短路徑中是否還有另一個步驟(例如「Temp_Path」的大小是否大於零)。若是,控制進行至2032;若否,則控制轉移至2040。
在2032,控制將與該最短路徑的下一個步驟相關的URL以及與該眼睛追蹤資料相關的URL進行比較(舉例而言,控制在不將該步驟從該堆疊中移除的情況下窺視「Temp_Path」中的下一個步驟)。然後,控制進行至2044。若該二URL相匹配,則控制繼續進行至2048;若否,則控制轉移至2040。在2048,控制加載下一個最短路徑步驟(例如,控制將一步驟從「Temp_Path」中彈出)。然後,控制基於下一個步驟更新該網格和該最短路徑向量。接著,控制返回2032。
在2040,控制沿著該最短向量繪製與繪製的複數追蹤樣本對應的點。舉例而言,控制從該向量的起始點開始,針對沿著該最短路徑向量所等距地(equidistantly)繪製的各個眼睛追蹤樣本,繪製一個點。控制進行至2052,在此,控制將該當前點(「Current_Point」)設定為該最短路徑向量的起始點。接著,控制進行至2056。
在2056,控制計算「Current_Point」與對應於「Current_Point」的眼睛追蹤樣本之間的歐幾里德距離(「Calculated_Dist」)。控制進行至2060,在此,控制基於「Current_Point」與相關的追蹤樣本之間的距離,以及與「Current_Point」和追蹤樣本相關的URL的測試距離,來計算該實驗的結果的預測。舉例而言,控制確定「Calculated_Dist」是否大於「Test_Dist」。若是,控制預測該實驗是失敗的。若否,則控制預測該實驗是成功的。接著,控制進行至2064。
在2064,控制將計算的預測與先前儲存的實驗的狀態(「Status」)進行比較,並對預測進行分類。舉例而言,若預測與「Status」相匹配,則控制確定該預測是成功的。若控制預測出一失敗的實驗,而「Status」表示是成功的,則控制確定該預測為假陽性(false positive)。相反地,若控制預測出一成功的實驗,而「Status」表示是失敗的,則控制確定該預測為假陰性(false negative)。接著,控制儲存確定的該預測狀態。舉例而言,控制將確定的該狀態以及相關的URL和測試距離(「Test_Dist」)加至「Result」。然後,控制進行至2068。
在2068,控制確定「Current_Point」是否位於該最短路徑向量的結束端。若是,控制進行至2072,在此,控制輸出「Result」並結束;若否,則控制轉移到2076。在2076,控制將該當前點設定為該最短路徑向量上的下一個點。然後,控制返回至2056。
第21圖繪示了用以確定使用者介面中可能需要增強的到達目標的最短路徑的步驟的一示例方法的流程圖。該確定的步驟是基於眼睛追蹤實驗以及使用者介面中各個URL的預設增強距離。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他裝置及/或系統中實施。在各種實施方式中,可以由增強模組160來執行控制。
控制開始於2104,在此,控制取得複數眼睛追蹤實驗、該最短路徑、與複數增強距離。在一些實施方式中,控制可以(例如,從儲存裝置112)加載先前儲存的複數眼睛追蹤實驗、一最短路徑及/或複數增強距離。控制進行至2108,在此,控制將該當前實驗設定為第一個加載的眼睛追蹤實驗,並將「Reinforcement」設定為「Null」。控制使用「Reinforcement」來儲存有關哪些步驟需要增強的資訊。控制繼續進行至2112,在此,控制將該當前頁面設定為儲存在該當前實驗中的第一頁面。在2112,控制也將該最短路徑加載至一暫時佇列(「Temp_Path」)中。然後,控制進行至2116。
在2116,控制基於該當前頁面的眼睛追蹤資料和該增強距離以產生識別與可能需要增強的當前頁面相關的步驟的增強資料。舉例而言,控制可以執行第21圖中揭露的方法以確定該些步驟。然後,控制進行至2120,在此,控制記錄產生的增強資料(例如,控制將該資料加至「Reinforcement」)。接著,控制進行至2124。
在2124,控制確定該當前實驗中是否還有另一個頁面。若是,控制進行至2128;若否,則控制轉移至2132。在2128,控制將該當前頁面設定為該當前實驗的下一個頁面。接著,控制返回至2116。
在2132,控制確定是否還有另一個實驗。若是,控制繼續進行至2136;若否,則控制轉移至2140。在2136,控制將下一個實驗設定為當前實驗,然後,控制返回至2112。在2140,控制輸出該增強資料(「Reinforcement」)。接著,控制結束。
第22圖繪示了用以確定可能需要增強的與一眼睛追蹤實驗的一頁面相關的最短路徑的步驟的一示例方法的流程圖。儘管該示例方法的以下描述是關於使用者介面測試和增強裝置110,但是該方法可以在其他裝置及/或系統中實施。在各種實施方式中,可以由增強模組160來執行控制。
在收到該眼睛追蹤實驗的一頁面、增強距離、與包含最短路徑的步驟的佇列(例如:第21圖的2116中的「Current_Page」、「Test_Distances」、以及「Temp_Path」),控制從2204開始。在2204,控制確定與眼睛追蹤資料的該頁面相關的該URL。控制進行至2208,在此,控制針對與眼睛追蹤資料的該頁面相關的該URL確定一增強距離,並將「Reinforcement」設定為「Null」。控制使用「Reinforcement」來儲存有關哪些步驟需要增強的資訊。然後,控制進行至2212。
在2212,控制從該眼睛追蹤資料(例如「Current_Page」)中提取坐標形式的複數眼睛追蹤樣本。接著,控制進行至2216,在此,控制將該些提取的眼睛追蹤樣本繪製在網格上,並產生表示該些樣本的一向量。控制繼續進行至2220。
在2220,控制加載一最短路徑步驟(例如,控制將一步驟從「Temp_Path」中彈出)。然後,控制將與該眼睛追蹤資料相關的URL以及與加載的最短路徑步驟相關的URL進行比較。控制進行至2224。若該二URL相匹配,控制繼續進行至2228;若否,則控制確定該眼睛追蹤資料和該最短路徑步驟沒有與該使用者介面的同一螢幕相關,且控制結束。
在2228,控制在網格上繪製加載的該最短路徑的步驟的開始和結束坐標。然後,控制產生該步驟的起始點和結束點之間的一最短路徑向量。控制進行至2232,在此,控制確定該最短路徑中是否還有另一個步驟(例如,「Temp_Path」的大小是否大於零)。若是,控制進行至2236;若否,則控制轉移至2240。
在2232,控制將與該最短路徑的下一個步驟相關的URL以及與該眼睛追蹤資料相關的URL進行比較(舉例而言,控制在不將該步驟從該堆疊中移除的情況下窺視「Temp_Path」中的下一個步驟)。然後,控制進行至2244。若該二URL匹配,則控制繼續進行至2248;若否,則控制轉移至2240。在2248,控制加載下一個最短路徑步驟(例如,控制將一步驟從「Temp_Path」中彈出)。控制基於加載的該最短路徑的步驟更新該網格和該最短路徑向量。接著,控制返回至2232。
在2240,控制沿著該最短向量繪製與複數追蹤樣本對應的點。舉例而言,控制從該向量的起始點開始,針對沿著該最短路徑向量所等距地(equidistantly)繪製的各個眼睛追蹤樣本,繪製一個點。控制繼續進行至2252,在此,控制將該當前點設定為該最短路徑向量的起始點。然後,控制進行至2256。
在2256,控制計算當前點與對應於該當前點的眼睛追蹤樣本之間的歐幾里德距離(「Calculated_Dist」)。控制進行至2260,在此,控制確定與該當前點相關的最短路徑的步驟。然後,控制繼續進行至2264。
在2264,控制確定計算的該距離(「Calculated_Dist」)是否大於該增強距離(「Reinforce_Dist」)。若是,控制確定該步驟可能需要增強,且控制繼續進行至2268;若否,則控制轉移至2272。在2268,控制將與該當前點相關的最短路徑步驟的一參考,以及該步驟可能需要增強的一指示,加至「Reinforcement」。然後,控制繼續進行至2276。在2272,控制將與該當前點相關的最短路徑步驟的一參考,以及該步驟不需要增強的一指示,加至「Reinforcement」。然後,控制進行至2276。
在2276,控制確定該當前點是否位於該最短路徑向量的結束端。若是,控制繼續進行至2280;若否,則控制轉移至2284。在2284,控制將該當前點設定為該最短路徑向量上的下一個點。然後,控制返回至2256。在2280,控制輸出與眼睛追蹤資料相關的最短路徑的步驟的確定的增強結果(例如,控制輸出「Reinforcement」)。接著,控制結束。
第23A圖至第23E圖是針對使用者介面的一頁面產生一示例眼睛追蹤向量和一示例最短路徑向量的過程的視覺表示。第23A圖繪示了使用者介面的一示例頁面2302。該使用者介面上繪製了與頁面2302對應的眼睛追蹤實驗的第一個至第十個眼睛追蹤樣本2310-2319。各個眼睛追蹤樣本表示在擷取該樣本時,一測試使用者操作該使用者介面的焦點。舉例而言,眼睛追蹤樣本2310-2319可以表示每兩秒鐘擷取一次的滑鼠游標的位置。包含各個繪製的眼睛追蹤樣本2310-2319的一眼睛追蹤向量2320被產生。該眼睛追蹤向量可以是分段線性的(piecewise linear),也可以是平滑的(smoothed),且表示測試使用者在眼睛追蹤實驗中所採取的路徑。
在第23B圖中,頁面2302上繪示了(plot)對應於一第一最短路徑的步驟的起始端的一第一最短路徑點2330,以及對應於該第一最短路徑的步驟的結束端的一第二最短路徑點2331。在第23C圖中,頁面2302上繪示了一第三最短路徑點2332,其對應於從第二最短路徑點2331開始的一第二最短路徑步驟的結束端。在第23D圖中,頁面2302上繪示了一第四最短路徑點2333,其對應於從第三最短路徑點2332開始的一第三最短路徑步驟的結束端。
在第23E圖中,頁面2302上繪示了一最短路徑2335。該最短路徑2335是在該第一最短路徑點2330、該第二最短路徑點2331、該第三最短路徑點2332、與該第四最短路徑點2333之間的一向量。該最短路徑2335表示該使用者介面的頁面2302上對應於該最短路徑的一路徑。
沿著該最短路徑2335,第一至第十最短路徑點2340–2349等距地被繪製。最短路徑點2340–2349的各個點對應於繪製的眼睛追蹤樣本2310-2319中的一個被相似地編號與標記的樣本(即,該最終數字的匹配)。舉例而言,該第一最短路徑點2340對應於該第一眼睛追蹤樣本2310,且該第二最短路徑點2342對應於該第二眼睛追蹤樣本2311。
繪示在第23E圖的最短路徑向量點2340-2349和對應的眼睛追蹤樣本2310-2319可用以確定頁面2302的增強距離。舉例而言,最短路徑向量點2340-2349與各自對應的眼睛追蹤樣本2310-2319之間的距離可以放射出測試使用者偏離該最短路徑的距離。根據該眼睛追蹤實驗的結果,這些距離可用以確定該頁面2302的中位成功距離或中位失敗距離。此外,這些距離可用以為該頁面2302測試隨機產生的增強距離。 客戶移動
第24圖是示例客戶移動系統(customer migration system)2400的方塊圖。客戶移動系統2400包含IVR平台2402。IVR平台2402包含IVR裝置2404和IVR伺服器2408。客戶移動系統2400也可包含網頁應用程式伺服器(web application server)2412和共同瀏覽伺服器(cobrowse server)2416。
一組織可使用IVR裝置2404來實施可讓使用者致電以請求資訊或執行任務的一客戶服務號碼。舉例而言,使用者可使用電話2420來透過一公用交換電話網路2422、一網際網路協定上的語音(Voice over Internet Protocol,VoIP)、或兩者的組合,以存取IVR裝置2404。IVR裝置2404從使用者接收一語音請求,並且與IVR伺服器2408通訊以確定對該使用者的請求的適當回應。
在一些實施方式中,IVR裝置2404可使用語音辨識(speech recognition)模組2424以將使用者透過電話2420提供的口語輸入轉譯至一語音可延伸標記語言(Voice Extensible Markup Language,VoiceXML)瀏覽器2426。在其他實施方式中,IVR裝置2404可以將語音輸入的轉譯委外給遠端服務。舉例而言,IVR裝置2404可以將由VoiceXML瀏覽器2426接收的口語輸入傳送到該遠端服務,並且從該遠端服務接收該口語輸入的轉譯或轉錄(transcription)。VoiceXML瀏覽器2426將轉譯提供給IVR伺服器2408的VoiceXML應用程式2428。
VoiceXML應用程式2428可確定該使用者能夠使用該網頁應用程式伺服器2412所代管的一網頁應用程式2430,來完成該請求。因應於確定使用者能夠使用該網頁應用程式2430來完成該請求,VoiceXML應用程式2428向一共同瀏覽配置(cobrowse configuration)模組2432請求一共同瀏覽配置。共同瀏覽配置模組2432將與該使用者的請求相關的共同瀏覽配置提供給VoiceXML應用程式2428。該共同瀏覽配置用以在共同瀏覽伺服器2416上建立一共同瀏覽對話(cobrowse session)。一共同瀏覽對話將該使用者存取的網頁應用程式2430的該當前狀態提供給VoiceXML應用程式2428(即,該使用者查看的使用者介面的該當前狀態)。
在接收該共同瀏覽配置時,VoiceXML應用程式2428傳送一提示,該提示指示該使用者存取網頁應用程式2430、發起一共同瀏覽對話、並向IVR裝置2404提供該共同瀏覽對話的對話識別(ID)。VoiceXML瀏覽器2426接收該提示,並為該使用者產生一聲頻提示(例如,VoiceXML瀏覽器2426可使用文字轉語音模組2436以產生該聲頻提示)。
該使用者可使用一計算裝置2438以透過網路2440存取網頁應用程式2430。計算裝置2438可以是桌上型電腦、膝上型電腦、平板電腦、智慧型手機、或任何其他能夠存取該網頁應用程式伺服器2412的計算裝置。在某些實施方式中,該使用者可以點擊加載的網頁應用程式2430的使用者介面中的按鈕以發起該共同瀏覽對話。
因應於接收到發起共同瀏覽對話的請求,網頁應用程式2430使用網頁伺服器共同瀏覽客戶端2442來與共同瀏覽伺服器2416進行通訊,以發起共同瀏覽對話2444。在發起共同瀏覽對話2444時,共同瀏覽伺服器將共同瀏覽對話2444的對話ID傳送到網頁伺服器共同瀏覽客戶端2442。網頁應用程式2430在網頁應用程式2430的使用者介面中顯示該對話ID。在接收共同瀏覽對話2444的對話ID時,網頁伺服器共同瀏覽客戶端2442將網頁應用程式2430的使用者介面的當前狀態的DOM傳送到共同瀏覽對話2444。每當網頁應用程式2430的使用者介面的狀態發生變化時,網頁伺服器共同瀏覽客戶端2442將一個新的DOM傳送至該共同瀏覽對話2444。
該使用者可以將該對話ID提供給IVR裝置2404。VoiceXML瀏覽器2426轉譯該對話ID並將其提供給VoiceXML應用程式2428。VoiceXML應用程式2428將轉譯後的對話ID提供給無頭瀏覽器2446。瀏覽器2446使用IVR共同瀏覽客戶端2448將轉譯後的對話ID傳送到共同瀏覽對話2444。共同瀏覽伺服器2416、網頁伺服器共同瀏覽客戶端2442、共同瀏覽對話2444、與IVR共同瀏覽客戶端2448形成一共同瀏覽平台。在一些實施方式中,可透過遠端服務來提供該共同瀏覽平台,其可以由第三方來操作。
因應於接收該對話ID,共同瀏覽對話2444將網頁應用程式2430的使用者介面的當前狀態的DOM傳送到IVR共同瀏覽客戶端2448,IVR共同瀏覽客戶端2448將該DOM傳遞給無頭瀏覽器2446。無頭瀏覽器2446將該DOM提供給VoiceXML應用程式2428。VoiceXML應用程式2428可使用無頭瀏覽器2446和IVR共同瀏覽客戶端2448,以取得共同瀏覽對話2444的該當前DOM。透過這種方式,VoiceXML應用程式能夠確定網頁應用程式2430的使用者介面的當前狀態。
VoiceXML應用程式2428可使用共同瀏覽配置模組2432,以基於與使用者的請求相關的目標和使用者介面的當前狀態,向該使用者提供提示和增強。舉例而言,共同瀏覽配置模組2432包含與該目標相關的資訊,例如:到達該目標的最短路徑、針對最短路徑的各個步驟的提示、以及與該最短路徑相關的任何增強。在一些實施方式中,共同瀏覽配置模組2432可包含由系統100的使用者介面測試和增強裝置110所產生的資訊。在其他實施方式中,共同瀏覽配置模組2432可包含由另一個裝置及/或系統所產生的資訊。
第25圖繪示了在一示例的發起共同瀏覽對話的期間,該使用者、IVR裝置2404、VoiceXML應用程式2428、共同瀏覽配置模組2432、無頭瀏覽器2446、IVR共同瀏覽客戶端2448、共同瀏覽伺服器2416、與網頁應用程式伺服器2412之間的複數示例請求和複數相關回應的時序圖。
時序圖開始於該使用者向IVR裝置2404提供一聲頻請求,以請求一交易(transaction)2510。IVR裝置2404使用語音辨識模組2424轉譯該請求,並傳送轉譯後的請求2514到VoiceXML應用程式2428。因應於接收到轉譯後的請求,VoiceXML應用程式2428向共同瀏覽配置模組2432請求一共同瀏覽配置2516,該共同瀏覽配置與轉譯後的請求相關。共同瀏覽配置模組2432透過提供一共同瀏覽配置2520給VoiceXML應用程式2428,以進行回應。
因應於接收到該共同瀏覽配置,VoiceXML應用程式2428傳送一共同瀏覽提示2524至IVR裝置2404。然後,IVR裝置2404提供一共同瀏覽提示2528至該使用者,其指示該使用者使用網頁應用程式2430以發起共同瀏覽對話。網頁應用程式2430,並向IVR裝置2404提供瀏覽對話的對話ID。舉例而言,IVR裝置2404可使用文字轉語音模組2436以產生透過電話2420呈現給使用者的一聲頻提示。然後,IVR裝置2404等待來自該使用者的回應2532(例如,使用者提供該共同瀏覽對話的一對話ID)。
在接收到啟動共同瀏覽對話的指令時,該使用者向網頁應用程式伺服器2412傳送啟動一共同瀏覽對話的請求2536。因應於接收到啟動共同瀏覽對話的請求,網頁應用程式伺服器2412向共同瀏覽伺服器2416傳送一請求,以請求一共同瀏覽對話2540。因應於接收到該共同瀏覽對話請求,該共同瀏覽伺服器2416啟動一共同瀏覽對話,並回傳該共同瀏覽對話的對話ID 2544給網頁應用程式伺服器2412。因應於接收到該對話ID,網頁應用程式伺服器2412提供該對話ID 2548給該使用者。舉例而言,網頁應用程式伺服器2412在網頁應用程式2430的使用者介面中顯示該對話ID。
然後,該使用者提供該對話ID 2552給IVR裝置2404。因應於從該使用者接收到該對話ID,IVR裝置2404轉譯該對話ID,並傳送轉譯後的該對話ID 2556到VoiceXML應用程式2428。VoiceXML應用程式2428傳送連接該共同瀏覽對話的一請求2560至該無頭瀏覽器2446。連接該共同瀏覽對話的請求包含轉譯後的該對話ID。無頭瀏覽器2446傳送連接該共同瀏覽對話的該請求2564至IVR共同瀏覽客戶端2448。因應於接收到連接請求,IVR共同瀏覽客戶端2448傳送一請求2568到共同瀏覽伺服器2416,以請求連接該共同瀏覽對話。
因應於接收到連接請求,共同瀏覽伺服器2416從共同瀏覽對話2444取回該當前DOM,並傳送該當前DOM 2572給IVR共同瀏覽客戶端2448,IVR共同瀏覽客戶端2448接著提供該當前DOM 2576給無頭瀏覽器2446。然後,無頭瀏覽器2446提供該當前DOM 2580給VoiceXML應用程式2428。VoiceXML應用程式2428使用該當前DOM來監控使用者的關於到達該使用者介面中的目標的進度。
第26圖繪示了在示例的共同瀏覽對話的部分期間中,該使用者、IVR裝置2404、VoiceXML應用程式2428、共同瀏覽配置模組2432、無頭瀏覽器2446、IVR共同瀏覽客戶端2448、共同瀏覽伺服器2416、與網頁應用程式伺服器2412之間的複數示例請求和複數相關回應的一示例的共同瀏覽時序圖。在共同瀏覽時序圖2600所繪示的共同瀏覽對話的部分期間中,與使用者介面中到達目標的最短路徑中的步驟相關的動作的提示被呈現給該使用者,且VoiceXML應用程式2428監控該使用者的進度並提供增強以輔助該使用者完成與該步驟相關的動作。
共同瀏覽時序圖開始於VoiceXML應用程式2428向共同瀏覽配置模組2432針對使用者介面的當前狀態請求配置資料2603。作為回應,共同瀏覽配置模組2432提供一提示2606,該提示與使用者介面的當前狀態的相關最短路徑的當前步驟相關提供給VoiceXML應用程式2428(例如,「請輸入您的使用者名稱」)。然後,VoiceXML應用程式2428提供該提示2609給IVR裝置2404。IVR裝置2404呈現該提示2612給使用者。舉例而言,IVR裝置2404可使用文字轉語音模組2436以產生透過電話2420呈現給使用者的一聲頻提示。
在VoiceXML應用程式2428提供該提示2609給IVR裝置2404之後,VoiceXML應用程式2428延遲一段預設的時間,然後開始監控共同瀏覽對話2444的該DOM 2615。具體地,VoiceXML應用程式2428向無頭瀏覽器2446請求該DOM 2618。接收到針對DOM的請求2618後,無頭瀏覽器2446向IVR共同瀏覽客戶端2448請求DOM 2621,這使IVR共同瀏覽客戶端2448向共同瀏覽伺服器2416傳送一請求2624以請求該DOM。因應於從IVR共同瀏覽客戶端2448接收到請求DOM的該請求2624,共同瀏覽伺服器2416傳送共同瀏覽對話2444的當前DOM 2627到IVR共同瀏覽客戶端2448。IVR共同瀏覽客戶端2448提供當前DOM 2630給無頭瀏覽器2446,其又提供該當前DOM 2633給VoiceXML應用程式2428。透過這種方式,VoiceXML應用程式2428能夠確定該使用者是否已經完成提示的操作。
因應於確定DOM並非表示使用者已經執行了提示的動作,VoiceXML應用程式2428向共同瀏覽器配置模組2432請求與當前步驟相關的增強2636。因應於接收到針對該增強2636的請求,共同瀏覽配置模組2432提供與當前步驟相關的增強2639給VoiceXML應用程式2428。舉例而言,該增強可以是一個提示,其表示與提示的動作對應的資料輸入欄位的位置。
因應於接收到增強2639,VoiceXML應用程式2428確定增強所包含的坐標的相對位置2642。然後,VoiceXML應用程式2428提供該增強2645給IVR裝置2404,該IVR裝置2404向該使用者呈現該增強2648。舉例而言,IVR裝置2404可使用文字轉語音模組2436來產生一聲頻增強。
在接收該聲頻增強後,該使用者可以執行最初提示的動作2651。舉例而言,該使用者可以在使用者介面的適當的文字輸入欄位中輸入使用者名稱。因應於該使用者在文字資料輸入欄位中輸入文字,使用者介面的狀態發生改變,且網頁應用程式伺服器2412提供更新的DOM 2654給共同瀏覽伺服器2416。
在將增強2645提供給IVR裝置2404之後,VoiceXML應用程式2428延遲一段預設的時間,然後透過向無頭瀏覽器2446請求DOM 2660以開始監控DOM 2657,其中無頭瀏覽器2446是向IVR共同瀏覽客戶端2448請求DOM 2663。因應於接收到針對DOM的請求2663,IVR共同瀏覽客戶端2448傳送針對DOM的該請求2666至共同瀏覽伺服器2416。因應於接收到針對DOM的請求2666,共同瀏覽伺服器2416傳送該當前DOM 2669到IVR共同瀏覽客戶端2448。在接收該當前DOM 2669後,IVR共同瀏覽客戶端2448提供當前DOM 2672給無頭瀏覽器2446,其再提供當前DOM 2675給VoiceXML應用程式2428。因應於接收到該當前DOM 2675,VoiceXML應用程式2428確定最初提示的動作是否已被完成。若是,VoiceXML應用程式2428進行至該最短路徑中的下一個步驟2678。客戶移動系統2400繼續以進行這種方式,直到VoiceXML應用程式2428確定該使用者已經到達該目標為止。
第27A圖至第27D圖是客戶移動系統2400的一示例共同瀏覽對話的說明。參照第27A圖,其繪示了顯示著網頁應用程式2430的使用者介面的第一狀態2702的計算裝置2438的螢幕的輸出。舉例而言,第一狀態2702是網頁應用程式2430的使用者介面的初始狀態。IVR裝置2404透過電話2420產生一第一聲頻提示2704,其指示該使用者點擊位於該第一狀態2702中的共同瀏覽連結2705,以發起一共同瀏覽對話。因應於該使用者點擊該共同瀏覽連結2705,網頁應用程式伺服器2412在共同瀏覽伺服器2416上發起共同瀏覽對話2444。因應於發起共同瀏覽對話2444,共同瀏覽伺服器2416向網頁應用程式伺服器2412提供共同瀏覽對話2444的對話ID。
在第27B圖中,因應於接收到共同瀏覽對話2444的對話ID,網頁應用程式2430改變使用者介面的狀態,使得計算裝置2438的螢幕的輸出顯示網頁應用程式2430的使用者介面的第二狀態2706。該使用者介面的第二狀態2706包含窗口2710,該窗口2710包含共同瀏覽對話2444的對話ID(「123456」)。因應於產生該第一聲頻提示2704,IVR裝置2404透過電話2420產生第二聲頻提示2708,其請求該使用者將共同瀏覽對話2444的對話ID提供給IVR裝置2404。
在第27C圖中,因應於使用者點擊窗口2710中的「OK」按鈕,網頁應用程式2430改變使用者介面的狀態,使得計算裝置2438的螢幕顯示第一狀態2702。也就是,計算裝置的螢幕不再包含窗口2710。因應於該使用者介面的狀態的改變,網頁應用程式伺服器2412將第一狀態2702的DOM提供給共同瀏覽伺服器2416。因應於該使用者提供共同瀏覽對話2444的對話ID給IVR裝置2404中,IVR裝置2404將該對話ID提供給IVR伺服器2408。
然後,IVR伺服器2408連接到共同瀏覽對話2444,並接收共同瀏覽對話的該當前DOM(或者,例如第一狀態2702的該DOM)。IVR伺服器2408基於第一狀態2702的DOM和來自共同瀏覽器配置模組2432的提示資料,使IVR裝置2404產生第三聲頻提示2714。第三聲頻提示2714指示該使用者將其使用者名稱輸入至該網頁應用程式。
在第27D圖中,因應於確定該使用者尚未完成與第三聲頻提示2714相關的動作,IVR伺服器2408基於第一狀態2702的DOM和來自共同瀏覽配置模組2432的增強資訊,使IVR裝置2404產生一聲頻增強2716。聲頻增強2716指示該使用者執行該原始動作,並將完成該動作有關的額外資訊提供給該使用者。舉例而言,聲頻增強2716將用來輸入使用者的使用者名稱的資料輸入欄位的位置提供給該使用者。以此方式,IVR伺服器2408能夠透過網頁應用程式2430引導該使用者到達特定目標。 大批量藥局
第28圖是用以大批量藥局的系統2800的一示例實施方式的方塊圖。儘管通常對系統2800的描述是其被部署在大批量藥局或實現中心點(例如:郵購藥局、直接遞送藥局)中,但是也可以用其他的方式來部署系統2800及/或系統2800的組件(例如小批量藥局)。大批量藥局可以是能夠人工地為至少一些處方進行配藥的藥局。系統2800可包含直接地及/或透過網路2804地與彼此通訊的利益管理者(benefit manager)裝置2802和藥局裝置2806。
系統2800還可包含一或多個使用者裝置2808。一使用者,例如藥劑師、患者、資料分析師、健康計畫管理員,可以使用使用者裝置2808以存取利益管理者裝置2802或藥局裝置2806。使用者裝置2808可以是桌上型電腦、膝上型電腦、平板電腦、智慧型手機等。
利益管理者裝置2802是由一實體操作的裝置,該實體至少部分負責產生及/或管理藥局或藥物的利益。儘管操作利益管理者裝置2802的實體通常是藥局利益管理者(pharmacy benefit manager,PBM),但是其他的實體可以代表自己或其他實體(例如PBM)來操作利益管理者裝置2802。舉例而言,可以由一健康計畫、一零售藥局鏈(retail pharmacy chain)、一藥物批發商(drug wholesaler)、一資料分析或其他類型的軟體相關公司等來操作利益管理者裝置2802。在一些實施方式中,提供藥局利益的PBM可提供一或多額外的利益,其包含醫療或健康(medical or health)利益、牙科(dental)利益、視力(vision)利益、健康(wellness)利益、放射學(radiology)利益、寵物護理利益、保險利益、長期護理(long term care)利益、療養院(nursing home)利益、除了其PBM運營外,PBM還可以經營一或多個藥局。藥局可以是零售藥局、郵購藥局等。
操作利益管理者裝置2802的PBM的某些操作可包含下述活動和過程。一藥局利益計畫的一會員(或代表該會員的一人員)可以在零售藥局位置(例如實體店的位置)從藥劑師(pharmacist)或藥學技術人員(pharmacist technician)取得一處方藥(prescription drug)。該會員還可以透過郵購藥物遞送,從一郵購藥局位置(例如系統2800)取得處方藥。在一些實施方式中,該會員可以透過使用機器(例如資訊站(kiosk)、販賣單元(vending unit)、移動電子裝置,或其他類型的機械裝置、電氣裝置、電子通信設備和/或計算設備)直接或間接取得處方藥。藉由系統2800,這樣的機器可以被裝填處方包裝中的處方藥,其可包含多個處方成分。藥局利益計畫藉由或透過利益管理者裝置2802以被管理。
該會員可以有針對該處方藥的部份負擔金額(copayment),該部份負擔金額反映了會員為該處方藥所需支付給藥局的金額。由會員支付給藥局的錢可能來自:例如,會員的個人資金、會員或會員的家庭的健康儲蓄賬戶(health savings account,HSA)、會員或會員的家庭的健康給付安排(health reimbursement arrangement,HRA)、會員或會員的家庭的彈性支出帳戶(flexible spending account,FSA)。在某些情況下,會員的雇主可以直接或間接為該會員支付或給付該部分負擔金額。
在具有不同計畫資助者(plan sponsor)或客戶及/或針對不同處方藥的不同藥局利益計畫中,會員所需的部份負擔金額可能有所不同。會員的部份負擔金額可以是針對某些處方藥、某些類型(types)及/或類別(classes)的處方藥及/或所有處方藥的固定部份負擔金額(在一個示例中為10美元)、共同保險(coinsurance)(在一個示例中為10%)及/或自付額(例如,針對年度處方藥費用的前500美元負有責任)。部份負擔金額可以被儲存在儲存裝置2810中或由利益管理者裝置2802確定。
在某些情況下,會員可能不支付部份負擔金額或僅支付處方藥的部份負擔金額的一部份。舉例而言,若通用版本的處方藥的通常且慣例的費用為4美元,而會員的固定部份負擔金額為處方藥的20美元,則會員僅需支付4美元即可收到處方藥。在關於工人的補償請求(compensation claim)的另一個示例中,該會員可能無需針對該處方藥支付任何部份負擔金額。
此外,部份負擔金額也可以基於處方藥的不同遞送管道而變化。舉例而言,從郵購藥局位置接收處方藥的部份負擔金額可以小於從零售藥局位置接收處方藥的部份負擔金額。
結合從會員接收部份負擔金額(若有)以及配製(dispense)處方藥給會員,藥局向PBM提出關於處方藥的請求(claim)。在接收該請求之後,PBM(例如透過使用利益管理者裝置2802)可以執行某些裁定(adjudication)操作,包含驗證該會員的資格、識別/審查該會員的適用的配方(formulary)以確定任何適當的部份負擔金額、共同保險以及處方藥的自付額,以及為會員執行藥物使用情況審查(drug utilization review,DUR)。此外,在執行至少一些前述操作之後,PBM可以向藥局(例如藥局系統2800)提供回應。
作為該裁定的一部分,當成功裁定該處方藥時,計畫資助者(或代表該計畫資助者的PBM)最終要補償(reimburse)配製該處方藥的藥局。前述裁定操作通常在收到部份負擔金額和配製處方藥之前進行。但是,在某些情況下,這些操作可以同時地、基本上同時地、或以不同的順序發生。另外,可以執行更多或更少的裁定操作,以作為裁定過程的至少一部分。
可以至少部分地基於包含藥局的藥局網路的類型來確定計畫資助者支付給藥局的給付金額及/或會員支付的金額。在一些實施方式中,該金額還可以基於其他因素來確定。舉例而言,若會員在不使用PBM提供的處方或藥物利益的情況下為該處方藥付款給藥局,則會員支付的金額可能會高於會員使用該處方或藥物利益的情況。在一些實施方式中,當會員使用處方藥或藥物利益時,藥局收到的針對處方藥的配製和處方藥本身的金額可能更高。可以透過執行儲存在利益管理者裝置2802及/或額外裝置中的指令來執行部分或全部前述操作。
網路2804的示例包含:全球移動通訊系統(Global System for Mobile Communications,GSM)網路、多碼分工(code division multiple access,CDMA)網路、第三代合作夥伴計畫(3rd Generation Partnership Project,3GPP),網路協議(Internet Protocol,IP)網路、無線應用協議(Wireless Application Protocol,WAP)網路、或IEEE 802.11標準網路,以及上述網路的各種組合。網路2804可包含光纖網路(optical network)。網路2804可以是區域網路或全球通訊網路,例如網路(Internet)。在一些實施方式中,網路2804可包含專用於處方訂單的網路:一處方網路,例如由弗吉尼亞州阿靈頓(Arlington, Virginia)的「Surescripts」所經營的電子處方網路。
此外,儘管該系統僅繪示出單一網路2804,但是可以使用多個網路。多個網路可以彼此串聯及/或並聯通訊以連結至裝置2802-2810。
藥局裝置2806可以是與零售藥局位置(例如:專屬的藥局位置、具有零售藥局的雜貨店、或具有零售藥局的一般銷售店)或其他類型的藥局位置相關聯的裝置,且會員會試圖在該處取得處方。該藥局可使用該藥局裝置2806將請求提交給PBM以進行裁定。
另外,在一些實施方式中,藥局裝置2806可以提供藥局和PBM之間的資訊交換。舉例而言,這可以允許會員資訊(例如藥物歷史記錄)的共享,以允許藥局提供會員更好的服務(例如,透過提供更詳細的治療諮詢(therapy consultation)和藥物交互作用資訊)。在一些實施方式中,利益管理者裝置2802可以在非會員的使用者或尚未將自己識別為會員的使用者尋求在藥局裝填一處方的時候(或結合該時間),追蹤其處方藥的實現及/或其他資訊。
藥局裝置2806可包含直接及/或透過網路2804互相通訊的藥局實現裝置2812、訂單處理裝置2814、與藥局管理裝置2816。訂單處理裝置2814可以接收有關裝填處方的資訊,並且可以將訂單成分(order component)引導到藥局的藥局實現裝置2812的一或多個裝置。藥局實現裝置2812可以根據訂單處理裝置2814所引導的一或多個處方訂單來實現、配製、聚集(aggregate)及/或包裝處方藥的訂單成分。
通常,訂單處理裝置2814是位於藥局內或與藥局相關的裝置,其使藥局實現裝置2812能夠實現處方並配製處方藥。在一些實施方式中,訂單處理裝置2814可以是與藥局分開並且與位於藥局內的其他裝置通訊的外部訂單處理裝置。
舉例而言,外部訂單處理裝置可以與內部藥局訂單處理裝置及/或位於系統2800內的其他裝置進行通訊。在一些實施方式中,外部訂單處理裝置可具有有限的功能(例如,由使用者請求實現一處方藥),而內部藥局訂單處理裝置可具有更佳的功能(例如,由藥劑師操作)。
訂單處理裝置2814可以追蹤由藥局實現裝置2812實現的處方訂單。處方訂單可包含一或多個要由藥局裝填的處方藥。訂單處理裝置2814可以針對特定處方訂單做出藥局路線決定及/或訂單合併決定。藥局路線決定包含藥局中的哪些裝置要負責裝填或以其他方式處理處方訂單的某些部分。訂單合併決定包含是否應將一處方訂單或多個處方訂單的一部分一起運送給一使用者或一使用者家庭。訂單處理裝置2814還可以追蹤及/或安排與一起被運送的各個處方訂單或多個處方訂單相關的產品簡介(literature)或文件(paperwork)。在一些實施方式中,訂單處理裝置2814可以與藥局管理裝置2816一起進行操作。
訂單處理裝置2814可包含電路、處理器、用以儲存資料和指令的儲存器、與通訊功能。訂單處理裝置2814專用以執行本申請中描述的過程、方法及/或指令。也可使用其他類型的電子裝置,其被特別配置以實施以下進一步詳細描述的過程、方法及/或指令。
在一些實施方式中,訂單處理裝置2814中的至少一些功能可以被包含在藥局管理裝置2816中。訂單處理裝置2814可以與藥局管理裝置2816處於客戶-伺服器關係(client-server relationship)、與藥局管理裝置2816處於對等關係(peer-to-peer relationship)、或與藥局管理裝置2816處於不同類型的關係。訂單處理裝置2814及/或藥局管理裝置2816可以直接(例如,透過使用一區域儲存器)及/或透過網路2804(例如,透過使用雲端儲存配置、軟體之服務等)與儲存裝置2810進行通訊。
儲存裝置2810可包含:直接及/或透過網路2804與利益管理者裝置2802及/或藥局裝置2806進行通訊的非暫時性儲存器(non-transitory storage)(例如:儲存器、硬碟、CD-ROM)。非暫時性儲存器可以儲存訂單資料2818、會員資料2820、請求資料2822、藥物資料2824、處方資料2826及/或計畫資助者資料2828。此外,系統2800可包含額外的裝置,其可以直接或透過網路2804與彼此進行通訊。
訂單資料2818可以與處方訂單有關。訂單資料可包含處方藥的類型(例如:藥物名稱和強度)和處方藥的份量。訂單資料2818還可包含用以完成處方的資料,例如處方材料(materials)。通常,處方材料包含有關處方藥是被包含在已實現的處方中,或以其他方式與已實現的處方結合的資訊的電子副本。處方材料可包含關於藥物交互作用警告、推薦用法、可能的副作用、有效期限、開藥日期等的電子資訊。訂單資料2818可以被大批量實現中心點用以實現藥局訂單。
在一些實施方式中,訂單資料2818包含與藥局中的處方的實現相關的驗證資訊。舉例而言,訂單資料2818可包含:拍攝(i)配製之前、配製期間及/或配製之後的處方藥;(ii)用以在配製之前、配製期間及/或配製之後盛裝處方藥的處方容器(例如:處方容器和密封蓋、處方包裝);(iii)在配製之前、配製期間及/或配製之後用以運送或以其他方式遞送處方藥的包裝及/或包裝材料;(iv)藥局內的實現過程,所產生之影片及/或影像。其他類型的驗證資訊(例如從用以於藥局內運輸處方的托板(pallet)、箱(bin)、托盤(tray)、推車(cart)上讀取的條碼(barcode)資料)也可以被儲存為訂單資料2818。
會員資料2820包含關於與PBM相關的會員的資訊。被儲存為會員資料2820的資訊可包含:個人資訊、個人健康資訊、受保護的健康資訊等。會員資料2820的示例包含姓名、地址、電話號碼、電子郵件地址、處方藥歷史記錄等。會員資料2820可包含一計畫資助者識別碼及/或一會員識別碼,該計畫資助者識別碼識別出與該會員相關的計畫資助者,該會員識別碼識別出該計畫資助者的會員。會員資料2820可包含一會員識別碼及/或一使用者識別碼,該會員識別碼識別出與該計畫資助者相關的使用者,該使用者識別碼識別出該計畫資助者的使用者。會員資料2820還可包含配方(dispensation)偏好,例如:標籤類型、帽蓋(cap)類型、訊息偏好,語言偏好。
會員資料2820可以被藥局中的各種裝置(例如,大批量實現中心點)存取以取得用以實現和運送處方訂單的資訊。在一些實施方式中,由一會員或其代表所操作的外部訂單處理裝置可以存取會員資料2820的至少一部分,以進行查看、驗證或其他目的。
在一些實施方式中,會員資料2820可包含關於是藥局的使用者但不是PBM所提供的藥局利益計畫中的會員的人的資訊。舉例而言,這些使用者可以透過藥局、大批量實現中心點、或其他單位所提供的私人標籤服務(private label service),直接從藥局取得藥物。通常,用語「會員(member)」和「使用者(user)」的使用可以互換使用。
請求資料2822包含有關PBM在一藥物利益程序底下裁定的藥局之請求的資訊,該藥物利益程序是由PBM針對一或多個計畫資助者所提供。一般來說,請求資料2822包含在請求被提出的情況下發起藥物利益程序的客戶及/或購買該處方藥以導致該請求的會員的一識別碼、被該藥局裝填的處方藥(例如,國家藥物代碼等)、配藥日期、通用指標,通用產品識別碼(generic product identifier,GPI)編號、藥物類別、在該藥物利益計畫下提供的處方藥的費用、部份負擔金額/共同保險、折扣資訊及/或會員資格等。額外的資訊可以被包含。
在一些實施方式中,可以將處方藥請求以外的其他類型的請求儲存在請求資料2822中。例如:醫療請求、牙科請求、健康請求、或其他類型的與健康相關的請求可以被儲存為請求資料2822的一部分。
在一些實施方式中,請求資料2822包含識別出與該請求相關的會員的請求。額外地或可替代地,請求資料2822可包含已經被取消識別(de-identified)的請求(即,與一唯一識別碼相關,而不與一特定的、可識別的會員相關)。
藥物資料2824可包含藥物名稱(例如,技術名稱及/或通用名稱)、藥物的已知的其他名稱、有效成分,藥物的影像(例如以藥丸形式)。藥物資料2824可包含與單一藥物或多個藥物相關的資訊。
處方資料2826可包含關於處方的資訊,處方可以由使用者(其可以是藥局利益計畫的會員)來發出(例如由藥局裝填)。處方資料2826的示例包含使用者名稱、藥物或治療(例如實驗室測試)、劑量資訊(dosing information)等。處方可包含電子處方或已被掃描的或紙本處方。在一些實施方式中,劑量資訊反映了使用頻率(例如:每天一次、每天兩次、每餐之前)和使用時間(例如:幾天、一周、幾週、一個月等)。
在一些實施方式中,訂單資料2818可以連結至相關的會員資料2820、請求資料2822、藥物資料2824及/或處方資料2826。
計畫資助者資料2828包含關於PBM的計畫資助者的資訊。計畫資助者資料2828的示例包含公司名稱、公司地址、聯絡人姓名、聯絡人電話號碼、與聯絡人電子郵件地址等。
第29圖繪示了根據一示例實施方式的藥局實現裝置2812。藥局實現裝置2812可用以處理和實現複數處方以及複數處方訂單。實現後,實現的該複數處方被包裝好以進行運輸。
藥局實現裝置2812可包含直接或透過網路2804與利益管理者裝置2802、訂單處理裝置2814及/或儲存裝置2810進行通訊的裝置。具體地,藥局實現裝置2812可包含托板尺寸與圓盤(pallet sizing and pucking)裝置2906、加載裝置2908、檢查裝置(inspect device)2910、使用單元裝置(unit of use device)2912、自動配製裝置(automated dispensing device)2914、人工實現裝置(manual fulfillment device)2916、審查裝置(review devices)2918、成像裝置2920、帽蓋裝置(cap device)2922、聚積裝置(accumulation devices)2924、包裝裝置2926、產品簡介裝置2928、使用單位包裝裝置(unit of use packing device)2930、與郵件清單裝置(mail manifest device)2932。此外,藥局實現裝置2812可包含額外的裝置,這些裝置可以直接或透過網路2804互相進行通訊。
在一些實施方式中,可以依序地執行由這些裝置2906-2932的其中一個所執行的操作,或可以由訂單處理裝置2814協調的另一個裝置並行地執行操作。在一些實施方式中,基於裝置2906–2932中的一或多個所執行的操作,訂單處理裝置2814追蹤藥局的一處方。
在一些實施方式中,藥局實現裝置2812可以使用托板來輸送(例如,在大批量實現中心點中的裝置2906-2293間輸送)處方藥容器(prescription drug containers)。托板尺寸與圓盤裝置2906可以配置托板中的圓盤(puck)。一托板可以是針對多個處方容器的一運輸結構,且可包含多個凹部(cavities)。藉由托板尺寸與圓盤裝置2906,一圓盤可以被放置在托板的該些凹部的其中一或多個中。圓盤可包含尺寸和形狀可容納處方容器(prescription container)的一貯放器(receptacle)。這樣的容器可以在運輸於托板中的期間由圓盤支撐。不同的圓盤可以具有不同尺寸和形狀的貯放器,以容納不同尺寸的容器,以能夠適合不同的處方。
托板中的圓盤的佈置(arrangement)可以由訂單處理裝置2814基於訂單處理裝置2814決定發動的處方來確定。佈置邏輯(arrangement logic)可以直接在托板尺寸與圓盤裝置2906中實施。一旦一處方被設定為要發動,可以由一機械手臂或取放器(pickers)將適合該處方的合適尺寸容器的一圓盤放置在一托板中。一旦在托板中配置了圓盤,則托板尺寸與圓盤裝置2906可以發動該托板。
加載裝置2908可以透過機械手臂、拾取和放置機構(也稱為取放器)等,將處方容器加載至托板上的圓盤中。在各種實施方式中,加載裝置2908具有機器手臂或取放器,以抓住一處方藥容器並將其移入或移出托板或圓盤。加載裝置2908還可以印刷適合於將要加載至托板上的容器的標籤,並將該標籤施加至該容器上。在執行這些操作的期間,托板可以位於一輸送機組件(conveyor assembly)(例如,在大批量實現中心點)。
檢查裝置2910可以驗證托板中的容器被正確標記而且是在托板上的正確位置。檢查裝置2910可以掃描托板上的一或多個容器上的標籤。容器的標籤可以由檢查裝置2910進行全部或部分的掃描或成像。這種成像可以在由機械手臂、取放器等將容器從其圓盤中取出後進行,或可以在被保留在圓盤中的時候被掃描或成像。在一些實施方式中,由檢查裝置2910擷取的影像及/或影片可以被儲存在儲存裝置2810中,以作為訂單資料2818。
使用單元裝置2912可以暫時儲存、監控、標記及/或配製產品使用單元(unit of use products)。通常,產品使用單元是可以在不於藥局重新包裝的情況下遞送給一使用者或會員的處方藥產品。這些產品可包含:容器中的藥丸、泡型包裝(blister pack)中的藥丸、吸入器(inhalers)等。由使用單元裝置2912配製的處方藥產品可以被單獨包裝或被集中包裝以進行運輸,或可以與大批量實現中心點的其他裝置所配製的其他處方藥一起被運輸。
裝置2906-2932的至少某些操作可以由訂單處理裝置2814指導。舉例而言,人工實現裝置2916、審查裝置2918、自動配製裝置2914及/或包裝裝置2926等可以接收由訂單處理裝置2814提供的指令。
自動配製裝置2914可包含一或多個裝置,其根據一或多個處方訂單將處方藥或藥品(pharmaceuticals)分配到處方容器中。一般來說,在一些實施方式中,自動配製裝置2914可包含具備軟體及/或邏輯的機械和電子元件以便於藥品的分配,否則將由藥劑師及/或藥學技術人員以人工的方式執行。舉例而言,自動配製裝置2914可包含以快速的速率裝填多種處方藥類型的大批量裝填器,以及將藥物分配且包裝至泡型包裝中的泡型包裝機器(blister pack machines)。由自動配製裝置2914配製的處方藥可以被單獨包裝或被集中包裝以運輸,或可以與大批量實現中心點的其他裝置所配製的其他處方藥一起被運輸。
人工實現裝置2916控制如何人工地實現處方。舉例而言,人工實現裝置2916可以接收或取得一容器,並且使得藥劑師或藥局技術人員(pharmacy technician)能夠實現該容器。在一些實施方式中,人工實現裝置2916將已裝填的容器提供給藥局實現裝置2812中的另一個裝置,以與依照針對一使用者或一會員的一處方順序與其他容器結合。
一般來說,人工實現可包含至少部分地由藥劑師或藥局技術人員執行的操作。舉例而言,一人員可以取回處方藥的供應、可以進行觀察、可以計算出處方藥的份量並將其放入處方容器。可以透過使用機器,以自動化人工實現過程的某些部份。舉例而言,膠囊(capsules)、錠劑(tablets)或藥丸(pills)的計數可以至少部分地被自動化(例如透過使用藥丸計數器)。人工實現裝置2916所配製的處方藥可以被單獨包裝或被集中包裝以進行運輸,或可以與大批量實現中心點的其他裝置所配製的其他處方藥一起被運輸。
審查裝置2918可以讓藥劑師檢查處方容器,以計數藥丸的正確數量、處理例外(exception handling)、驗證處方等。根據國家或當地法律之要求,已實現的處方可以由藥劑師人工檢查及/或驗證。可根據當地及/或其他法律配製某些藥物的藥劑師或其他有執照的藥局人員可以操作審查裝置2918並目視檢查已裝有處方藥的處方容器。藥劑師可以審查、驗證及/或評估藥物份量、藥物強度及/或藥物交互作用疑慮、或以其他方式執行藥劑師服務。藥劑師還可以處理已被標記為例外的容器,例如:具有無法讀取的標籤的容器、已被取消其相關處方訂單的容器、有瑕疵的容器。在某個示例中,可以在一人工審查站(manual review station)進行人工的審查。
一旦容器已被裝滿藥品,成像裝置2920即可將該容器成像。成像裝置2920可以基於取得的影像來測量容器中藥物的裝填高度,以確定該容器是否被裝填至該藥品類型所給定的正確高度,以及處方中的藥丸的正確數量。也可以取得容器中藥丸的影像,以偵測藥丸本身的大小及其上的標記。該些影像可以被傳送到訂單處理裝置2814及/或被儲存在儲存裝置2810中以作為訂單資料2818的一部分。
帽蓋裝置2922可用以蓋住或以其他方式密封一處方容器。在一些實施方式中,帽蓋裝置2922可以根據使用者偏好(例如:關於兒童安全(child resistance)的偏好)、計畫資助者偏好、開立處方者(prescriber)偏好等,用一種帽蓋來固定處方容器。帽蓋裝置2922亦可將一訊息蝕刻(etch)到帽蓋中,儘管此處理可以由大批量實現中心點中後續的裝置來執行。
聚積裝置2924依照處方順序聚積處方藥的各種容器。聚積裝置2924可以從藥局的各種裝置或區域聚積該些處方容器。舉例而言,聚積裝置2924可以從使用單元裝置2912、自動配製裝置2914、人工實現裝置2916、與審查裝置2918聚積該些處方容器。聚積裝置2924可用以在將該些處方容器運送給會員之前,預先對其進行分組。
產品簡介裝置2928印刷或以其他方式產生產品簡介,以包含各個處方藥訂單。產品簡介可以被印刷在多片基材上,例如紙、塗料紙(coated paper)、可印刷的聚合物(polymer)、或上述基材的組合。由產品簡介裝置2928印刷的產品簡介可包含:與處方訂單中包含的處方藥所需伴隨的資訊、與該訂單中的處方藥有關的其他資訊、與該訂單相關的財務資訊(例如收據或帳戶對帳單)等。
在一些實施方式中,產品簡介裝置2928以折疊或以其他方式準備產品簡介以使其被包含在一處方藥訂單中(例如,在運輸容器中)。在其他實施方式中,產品簡介裝置2928印刷產品簡介,並且產品簡介裝置2928與準備該印刷產品簡介以使其被包含在處方訂單的另一裝置分開。
包裝裝置2926包裝處方訂單以準備運輸訂單。包裝裝置2926可以裝箱、裝袋、或以其他方式包裝已實現的處方訂單以進行遞送。包裝裝置2926可以進一步將插入物(例如,產品簡介或其他紙張)放入從產品簡介裝置2928接收的包裝中。舉例而言,可以將大規模的處方訂單被裝在箱子中運送,而其他處方訂單可以被裝在袋子中運送,其可以是包裝密封袋。
包裝裝置2926可以用地址和收件人的名字來標記箱子或袋子。可以將標籤印刷並黏貼到袋子或箱子上、將標籤直接印刷在袋子或箱子上,或者透過其他方式使標籤與袋子或箱子相關聯。包裝裝置2926可以有效的方式將郵寄用的箱子或袋子進行分類(例如,按遞送地址分類)。針對在運輸期間須保持在溫度範圍內的處方,包裝裝置2926可包含冰或溫度敏感元件(舉例而言,為了保持其功效,這可能是必需的)。接著,可以透過郵政郵件、透過陸運及/或空運(例如:UPS、FEDEX、或DHL)的郵購遞送服務、透過遞送服務、透過位於運輸地點的置物箱(例如:AMAZON置物櫃或郵政信箱(PO Box))、或透過其他方式,來運輸最終包裹。
使用單位包裝裝置2930包裝一使用單位(a unit of use)的處方訂單以準備運輸訂單。使用單位包裝裝置2930可包含人工掃描被裝袋以運輸的容器,以驗證訂單中的各個容器。在一示例實施方式中,可以在一人工掃描站執行人工掃描。藥局實現裝置2812還可包含郵件清單裝置2932以印刷包裝裝置2926所使用的郵寄標籤,並可以印刷運送清單和包裝清單。
雖然第29圖中繪示的藥局實現裝置2812包含單一裝置2906-2932,但也可以使用多個裝置。當呈現多個裝置時,該多個裝置可以具有相同的裝置類型或模型,或可以具有不同的裝置類型或模型。第19圖中繪示的裝置2906-2932的類型是示例裝置。在系統2800的其他配置中,可以包含更少、額外、或不同類型的裝置。
此外,多個裝置可以共享處理及/或儲存器資源。裝置2906–2932可以位於同一區域或不同位置。舉例而言,裝置2906–2932可以位於一棟建築物或一組相鄰的建築物中。裝置2906-2932可以互相連接(例如,透過輸送機(conveyor))、聯網及/或與彼此接觸或與彼此整合(例如,在大批量實現中心點)。另外,一裝置的功能可以被分散至多個離散裝置且/或可以與其他裝置結合。
第30圖繪示了根據一示例實施方式的訂單處理裝置2814。可以由一或多個操作員使用訂單處理裝置2814以產生處方訂單、決定路徑,決定合併處方訂單、使用系統2800追蹤產品簡介及/或查看訂單狀態以及其他與訂單相關的資訊。舉例而言,處方訂單可包含訂單成分。
訂單處理裝置2814可以在沒有操作員干預的情況下接收實現訂單的指令。訂單成分可包含使用容器並透過系統2800所實現的處方藥。訂單處理裝置2814可包含訂單驗證子系統3002、訂單控制子系統3004及/或訂單追蹤子系統3006。訂單處理裝置2814中也可以包含其他子系統。
訂單驗證子系統3002可以與利益管理者裝置2802進行通訊,以驗證會員的資格並審查配方,藉以確定處方藥的適當部份負擔金額、共同保險和自付額,及/或執行藥物使用審查(drug utilization review,DUR)。為了多種目的,可以執行訂單驗證子系統3002與利益管理者裝置2802之間的其他通訊。
訂單控制子系統3004透過系統2800,在過程中控制容器及/或托板的各種移動以及各種裝填功能。在一些實施方式中,訂單控制子系統3004可以識別出一或多種訂單中能夠被自動配製裝置2914實現的處方藥。訂單控制子系統3004可確定要發動哪些處方,並且可確定自動裝填容器的一托板要被發動。
訂單控制子系統3004可確定一特定藥品的一自動裝填處方要被發動,並且可檢查正在等待實現其他處方訂單的訂單佇列,該訂單將被相同的藥品裝填。然後,訂單控制子系統3004可以在托板中向自動配製裝置2914發動具有類似自動裝填藥物需求的訂單。由於裝置2906–2932可以透過輸送機系統或其他容器移動系統以互相連接,因此訂單控制子系統3004可以控制各種輸送機,例如:將托板從加載裝置2908遞送到產品簡介裝置2928的人工實現裝置2916、遞送裝填該處方所需的文件。
訂單追蹤子系統3006可以在一處方訂單被實現的期間追蹤其進度。訂單追蹤子系統3006可以追蹤、記錄及/或更新訂單歷史、訂單狀態等。訂單追蹤子系統3006可以將資料儲存在本地(例如在儲存器中)或將其作為儲存在儲存裝置2810中的訂單資料2818的一部分。 結論
前述的說明在本質上僅是為了說明,絕非為了限制本揭露、其應用、或用途。本揭露的廣泛教示可以以多種形式實施。因此,儘管本揭露包含特定示例,本揭露的真實範圍不應受此限制,因為在研讀本案的圖式、說明書和下述申請專利範圍之後,其他修改將變得顯而易見。應理解,在不改變本揭露的原理的情況下,可以依照不同的順序(或同時)執行方法內的一或多個步驟。此外,儘管上述的各個實施例被繪示為具有某些特徵,然而關於本揭露的任何實施例之描述中的該些特徵中的任何一或多個特徵可以在任何其他實施例的特徵中實施及/或與其他實施例的特徵進行組合以實施,即使該組合沒有被明確描述。也就是說,上述的實施例並非互相排斥的,並且一或多個實施例與彼此之間的組合仍在本揭露的範圍內。
可使用各種用語來描述元件之間(例如,模組之間)的空間和功能關係,包含:「連接(connected)」、「嚙合(engaged)」、「接合(interfaced)」、與「耦合(coupled)」。除非明確描述為「直接」,否則上述揭露所描述的第一元件和第二元件之間的關係,包含第一元件和第二元件之間不存在其他中間元件的直接關係,以及第一元件和第二元件之間存在(在空間上或在功能上)一或多個中間元件的間接關係。如本文所使用,短語「A、B、與C中的至少一個」應被解釋為非排他性的「OR邏輯(A OR B OR C)」的邏輯表示,且不應被解釋為表示「至少一個A、至少一個B、與至少一個C」。
在圖式中,如箭頭所指示,箭頭的方向大致上可表示成作為示例的資訊(例如資料或指令)的流向。舉例而言,當元件A和元件B交換各種資訊,但從元件A傳送到元件B的資訊與圖示相關時,箭頭可從元件A指向元件B。此單向箭頭並非暗示沒有其他資訊從元件B傳送到元件A。此外,針對從元件A傳送到元件B的資訊,元件B可向元件A傳送一請求以請求該資訊,或可向元件A確認接收該資訊。用語「子集」不一定需要適當的子集。換言之,第一集合的第一子集可以與第一集合共存(可以等於第一集合)。
在本申請案中,包含以下定義。用語「模組」或用語「控制器」可以被用語「電路」所取代。用語「模組」可以表示:為處理器硬體的一部分,或包含執行程式碼的處理器硬體(共享、專用或群組處理器)以及儲存處理器硬體所執行的程式碼的記憶硬體。
模組可包含一或多個介面電路。在一些示例中,介面電路可以實現連接到區域網路(local area network,LAN)或無線個人區域網路(wireless personal area network,WPAN)的有線或無線介面。LAN的一示例是電機電子工程師協會(Institute of Electrical and Electronics Engineers,IEEE)之標準(Standard)802.11-2016(亦稱為Wifi無線網路標準)以及IEEE之標準802.3-2015(亦稱為Ethernet有線網路標準)。WPAN的一示例是來自藍芽技術聯盟(Bluetooth Special Interest Group)的藍芽無線網路標準以及IEEE標準802.15.4。
該模組可使用介面電路以與其他模組通訊。儘管模組在本揭露中可以被描述以直接與其他模組進行邏輯通訊,但是在各種實施方式中,模組實際上可以透過通訊系統進行通訊。該通訊系統包含實體及/或虛擬聯網裝置,例如集線器(hubs)、交換機(switches)、路由器(routers)、與閘道器(gateways)。在一些實施方式中,通訊系統連接至或通過例如網路(Internet)的廣域網路(wide area network,WAN)。舉例而言,通訊系統可包含:使用包含多協議標籤交換(Multiprotocol Label Switching,MPLS)和虛擬專用網(virtual private networks,VPN)的技術以透過網路或點對點租用線路(point-to-point leased lines)與彼此連接的多個LAN。
在各種實施方式中,模組的功能可以分佈在由通訊系統連接的多個模組之間。舉例而言,多個模組可以實施由負載平衡系統分配的相同功能。在另一個示例中,模組的功能可以被分散至伺服器(亦稱為遠端(remote)或雲端(cloud))模組和客戶端(或使用者)模組之間。
以上所使用的用語「程式碼」可包含軟體、韌體(firmware)及/或微程式碼(microcode),並且可以涉及程式(programs)、常規(routines)、功能(functions)、類(classes)、資料結構(data structures)及/或對象(objects)。共享處理器硬體(Shared processor hardware)包含單一微處理器,該微處理器執行來自多個模組的一些或全部程式碼。群組處理器硬體(Group processor hardware)包含單一微處理器,該微處理器與其他微處理器組合,可以執行來自一或多個模組的一些或全部程式碼。多個微處理器的引用包含:離散晶片(discrete dies)上的多個微處理器、單一晶片上的多個微處理器、單一微處理器的多個核(cores)、單一微處理器的多個線程(threads)、或上述的組合。
共享記憶硬體包含單一記憶裝置,該記憶裝置儲存來自多個模組的一些或全部程式碼。群組記憶硬體包含一記憶裝置,該記憶裝置與其他記憶裝置結合使用,可儲存來自一或多個模組的一些或全部程式碼。
用語記憶硬體(memory hardware)是用語「計算機可讀取媒體」的子集。本文中所使用的用語「計算機可讀取媒體」不涵蓋透過媒體(例如在載波上)所傳播的暫時電訊號或電磁訊號;因此,用語「計算機可讀取媒體」被認為是有形且非暫時性的。非暫時性計算機可讀取媒體的非限制性示例是非揮發性(nonvolatile)記憶裝置(例如:快閃(flash)記憶裝置、可消除可程式化唯讀(erasable programmable read-only)記憶裝置、或遮罩式唯讀(mask read-only)記憶裝置)、揮發性(volatile)記憶裝置(例如:靜態隨機存取記憶裝置或動態隨機存取儲存裝置)、磁性儲存媒體(例如類比或數位磁帶(magnetic tape)或硬體驅動器)、與光學儲存媒體(例如:CD、DVD、或藍光光碟)。
本申請案中所描述的裝置與方法可以被一特殊用途計算機部分或完全地實施,該特殊用途計算機是透過將一般用途計算機配置以執行計算機程式中實施的一或多個特定功能所產生。上述功能方塊和流程圖元件被用以作為軟體的規格說明,其可透過技術人員或程式設計員的例行工作被轉換為計算機程式。
計算機程式包含處理器可執行的複數指令,該複數指令儲存在至少一非暫時性計算機可讀取媒體中。計算機程式也可包含或仰賴於儲存的資料。計算機程式可包含與特殊用途計算機的硬體互動的基本輸入/輸出系統(basic input/output system,BIOS)、與特殊用途計算機的特定裝置互動的裝置驅動器、一或多個操作系統、使用者應用程式、後台服務、以及後台應用程式等。
所述計算機程式可包含:(i)要解析的描述性文件,例如超文件標示語言(hypertext markup language,HTML)、可延伸標記語言(extensible markup language,XML)、或JavaScript物件表示法(JavaScript Object Notation,JSON),(ii)組合碼(assembly code),(iii)由編譯器從原始碼(source code)所產生的目標碼(object code),(iv)由解釋器(interpreter)執行的原始碼,(v)由及時編譯器(just-in-time compiler)編譯和執行的原始碼。僅作為示例,可以使用包含C、C++、C#、Objective-C、Swift、Haskell、Go、SQL、R、Lisp、Java®、Fortran、Perl、Pascal、Curl、OCaml、Javascript®、超文件標記語言第5版(Hypertext Markup Language 5th revision,HTML5)、Ada、活動伺服器頁面(Active Server Pages,ASP)、超文件預處理器(Hypertext Preprocessor,PHP)、Scala、Eiffel、Smalltalk、Erlang、Ruby、Flash®、Visual Basic®、Lua、MATLAB、SIMULINK、以及Python®等語言的語法來編寫原始碼。
如下所示 100:系統 110:使用者介面測試和增強裝置 112:儲存裝置 114:操作員裝置 120:最短路徑模組 122:使用者介面增強模組 124:人工智慧(AI)模組 126:無頭瀏覽器 128:測試產生模組 130:測試執行模組 132:分析模組 134:訓練模組 136:重新加權模組 138:對話產生模組 142:蒙地卡羅模組 144:神經網路模組 146:自然語言辨識模組 148:連結神經網路 150:提交神經網路 152:資料匹配神經網路 154:資料選擇神經網路 156:動作加權神經網路 158:網頁伺服器 160:增強模組 162:提示產生模組 164:距離模組 166:步驟分析模組 168:預測模組 170:集群分析模組 202:長短期記憶(LSTM)神經網路 204:輸入層 208:隱藏層 212:輸出層 204a、204b、...、204n:輸入 208a、208b、...、208n:神經元 212a、212b、...、212n:輸出 304:輸入層 308:隱藏層 312:輸出層 304a、304b、304c:輸入 308a、308b、308c:神經元 312a、312b、312c:輸出 404:輸入層 408:隱藏層 412:輸出層 404a、404b、404c:輸入 408a、408b、408c:神經元 412a、412b、412c:輸出 504:輸入層 508:隱藏層 512:輸出層 504a、504b、504c:輸入 508a、508b、508c:神經元 512a、512b、512c:輸出 524:輸入層 528:隱藏層 532:輸出層 524a、524b、524c:輸入 528a、528b、528c:神經元 532a、532b:輸出 604:輸入層 608:隱藏層 612:輸出層 604a、604b、604c:輸入 608a、608b、608c:神經元 612a、612b、612c:輸出 703、756、757、761、762、706、712、715、718、721、727、758、709、776、773、770、764、724、730、733、739、736、740、742、738、741、:步驟 802、804、806、808、809、810、816、814、818、820、824、826、830、828、832、822、834、836、840、854、844、848、842、846、852、850、838、856、858、862、864、866、868、860、870、872、876、878、880、882、874:步驟 904、908、912、916、920、924、928、930、932、936、940、944、948、952、956、960、964、966、968、972、980、976、970、988、984、992、996、998:步驟 1003、1006、1009、1012、1018、1021、1015、1024、1030、1033、1039、1036、1045、1042、1027、1048、1054、1057、1051、1060、1075、1063、1066、1069、1072:步驟 1104、1128、1136、1144、1108、1112、1120、1124、1116、1140、1152、1160、1156、1164、1148、1168、1172:步驟 1202、1204、1212、1213、1215、1206、1207、1208、1209、1219、1218、1222、1220、1221、1232、1230、1226:步驟 1304、1306、1308、1312、1316、1320、1324、1332、1328、1348、1336、1340、1356、1352、1360、1368、1384、1364、1380、1376、1344、1388、1372:步驟 1404、1408、1412、1424、1420、1416、1428、1432、1436、1444、1440、1460、1448、1456、1452、1464:步驟 1502、1504、1508、1512、1526、1524、1520、1516、1528、1532、1536、1544、1548、1540、1550、1556、1552、1560:步驟 1604、1608、1612、1616、1620、1628、1624、1636、1640、1648、1652、1632、1644、1656、1660、1664、1668、1672:步驟 1702、1704、1716、1724、1708、1732、1728、1712、1720、1740、1744、1736:步驟 1802、1804、1808、1812、1820、1836、1816、1832、1824、1828、1840、1844:步驟 1904、1908、1912、1916、1920、1924、1928、1936、1932、1940:步驟 2004、2008、2012、2016、2020、2024、2028、2032、2036、2044、2048、2072、2040、2052、2056、2060、2064、2068、2076:步驟 2104、2108、2112、2116、2120、2124、2128、2132、2136、2140:步驟 2204、2208、2212、2216、2220、2224、2228、2232、2236、2244、2248、2284、2276、2280、2240、2252、2256、2260、2264、2268、2272:步驟 2302:頁面 2310、2311、2312、2313、2314、2315、2316、2317、2318、2319:眼睛追蹤樣本 2320:眼睛追蹤向量 2330、2331、2332、2333:最短路徑點 2335:最短路徑 2340、2341、2342、2343、2344、2345、2346、2347、2348、2349:最短路徑點 2400:客戶移動系統 2402:互動式語音回應(IVR)平台 2404:IVR裝置 2408:IVR伺服器 2412:網頁應用程式伺服器 2416:共同瀏覽伺服器 2420:電話 2422:公用交換電話網路 2424:語音辨識模組 2426:語音可延伸標記語言(VoiceXML)瀏覽器 2428:VoiceXML應用程式 2430:網頁應用程式 2432:共同瀏覽配置模組 2436:文字轉語音模組 2438:計算裝置 2440:網路 2442:網頁伺服器共同瀏覽客戶端 2444:共同瀏覽對話 2446:無頭瀏覽器 2448:IVR共同瀏覽客戶端 2510、2514、2516、2520、2524、2528、2532、2536、2540、2544、2548、2552、2556、2560、2564、2568、2572、2576、2580:動作 2603、2606、2609、2612、2615、2618、2621、2624、2627、2630、2633、2636、2639、2642、2645、2648、2651、2654、2657、2660、2663、2666、2669、2672、2675、2678:動作 2702:狀態 2704:聲頻提示 2705:共同瀏覽連結 2706:狀態 2708:聲頻提示 2710:窗口 2714:聲頻提示 2716:聲頻增強 2800:系統 2802:利益管理者裝置 2804:網路 2806:藥局裝置 2808:使用者裝置 2810:儲存裝置 2812:藥局實現裝置 2814:訂單處理裝置 2816:藥局管理裝置 2818:訂單資料 2820:會員資料 2822:請求資料 2824:藥物資料 2826:處方資料 2828:計畫資助者資料 2906:托板尺寸與圓盤裝置 2908:加載裝置 2910:檢查裝置 2912:使用單元裝置 2914:自動配製裝置 2916:人工實現裝置 2918:審查裝置 2920:成像裝置 2922:帽蓋裝置 2924:聚積裝置 2926:包裝裝置 2928:產品簡介裝置 2930:使用單位包裝裝置 2932:郵件清單裝置 3002:訂單驗證子系統 3004:訂單控制子系統 3006:訂單追蹤子系統
透過詳細說明和附加的圖式,本揭露將更加全面地被理解。
第1圖是用以測試一使用者介面的一示例系統的功能方塊圖。
第2圖是一示例長短期記憶神經網路的功能方塊圖。
第3圖是一示例連結神經網路的功能方塊圖。
第4圖是一示例提交神經網路的功能方塊圖。
第5A圖是一示例資料選擇神經網路的功能方塊圖。
第5B圖是一示例資料匹配神經網路的功能方塊圖。
第6圖是一示例動作加權神經網路的功能方塊圖。
第7A圖和第7B圖繪示了確定使用者介面中到達給定目標的最短路徑的一示例方法的流程圖。
第8A圖至第8C圖繪示了分析使用者介面的狀態的一示例方法的流程圖。
第9A圖和第9B圖繪示了使用完成的最短路徑測試以訓練神經網路的一示例方法的流程圖。
第10A圖至第10C圖繪示了在儲存狀態下重新加權動作的一示例方法的流程圖。
第11圖繪示了基於選擇的最短路徑動作來建立新的使用者介面對話(UI session)的一示例方法的流程圖。
第12A圖至第12H圖是在特定示例使用者介面中確定到達目標的最短路徑的圖形表示。
第13圖繪示了基於眼睛追蹤實驗來增強使用者介面的一示例方法的流程圖。
第14圖繪示了針對基於網路的使用者介面確定各個URL的增強距離的一示例方法的流程圖。
第15圖繪示了用以確定眼睛追蹤實驗與沿著加載的(loaded)最短路徑的點之間的距離的一示例方法的流程圖。
第16圖繪示了用以確定追蹤資料和沿著針對使用者介面的頁面的加載的最短路徑的點之間的距離的一示例方法的流程圖。
第17圖繪示了基於儲存在眼睛追蹤實驗中的資料,針對在一組眼睛追蹤實驗中的各個URL確定中位成功距離的一示例方法的流程圖。
第18圖繪示了基於儲存在眼睛追蹤實驗中的資料,針對在一組眼睛追蹤實驗中的各個URL確定中位失敗距離的一示例方法的流程圖。
第19圖繪示了用以將眼睛追蹤實驗的複數預測結果與先前儲存的複數結果進行比較的一示例方法的流程圖。
第20圖繪示了用以將眼睛追蹤實驗的一預測結果與先前儲存的複數結果進行比較的一示例方法的流程圖。
第21圖繪示了用以確定使用者介面中可能需要增強的到達目標的最短路徑的步驟的一示例方法的流程圖。
第22圖繪示了用以確定可能需要增強的與眼睛追蹤實驗的頁面相關的最短路徑的步驟的一示例方法的流程圖。
第23A圖至第23E圖是針對使用者介面的一頁面產生眼睛追蹤向量和最短路徑向量的一示例過程的視覺表示。
第24圖是一示例客戶移動系統的功能方塊圖。
第25圖是表示一示例的由客戶移動系統發起的共同瀏覽對話時序圖。
第26圖是表示客戶移動系統的一示例共同瀏覽對話的時序圖。
第27A圖至第27D圖是根據本揭露的原理的客戶移動系統的示例共同瀏覽對話的說明。
第28圖是包含大批量藥局(high-volume pharmacy)的一示例系統的功能方塊圖。
第29圖是一示例藥局實現裝置的功能方塊圖,其可以被部署在第28的系統內的功能方塊圖。
第30圖是一示例訂單處理裝置的功能方塊圖,該示例訂單處理裝置可被部署在第28圖的系統內。
在圖式中,元件符號可以被重複使用以識別相似及/或相同的元件。
100:系統
110:使用者介面測試和增強裝置
112:儲存裝置
114:操作員裝置
120:最短路徑模組
122:使用者介面增強模組
124:人工智慧(AI)模組
126:無頭瀏覽器
128:測試產生模組
130:測試執行模組
132:分析模組
134:訓練模組
136:重新加權模組
138:對話產生模組
142:蒙地卡羅模組
144:神經網路模組
146:自然語言辨識模組
148:連結神經網路
150:提交神經網路
152:資料匹配神經網路
154:資料選擇神經網路
156:動作加權神經網路
158:網頁伺服器
160:增強模組
162:提示產生模組
164:距離模組
166:步驟分析模組
168:預測模組
170:集群分析模組

Claims (20)

  1. 一種用以改良一使用者介面的計算機系統,該計算機系統包含: 一增強模組,用以取得(i)指示該使用者介面中到達一目標的一最短路徑的路徑資訊,以及(ii)與尋找該目標相關的一組使用者互動實驗,其中: 該組使用者互動實驗中的各個實驗包含使用者追蹤資料, 該路徑資訊包含複數步驟,且 該複數步驟中的各個步驟與該使用者介面的一頁面相關; 一距離模組,用以針對該使用者介面的各個頁面,基於該組使用者互動實驗,確定該頁面的一增強距離;以及 一步驟分析模組,用以針對該複數步驟中的各個步驟,確定該組使用者互動實驗的該使用者追蹤資料指示偏離該步驟的次數的一計數,其中該確定的操作是基於針對與該步驟相關的該使用者介面的該頁面所確定的該增強距離, 其中,該增強模組用以,針對該複數步驟中的各個步驟: 基於該計數確定該步驟是否需要增強,且 因應於確定該步驟需要增強,針對該步驟產生一增強,其中產生該增強的操作包含以下至少一操作:為與該步驟相關的一動作產生一提示、以及改變與該步驟相關的一使用者介面元件。
  2. 如請求項1所述的計算機系統,其中確定一頁面的一增強距離的操作包含:確定該組使用者互動實驗的使用者追蹤資料與該最短路徑之間的至少一距離。
  3. 如請求項1所述的計算機系統,其中確定一頁面的一增強距離的操作包含:(i)基於成功到達該目標的使用者互動實驗的一第一子集的該使用者追蹤資料,針對該頁面確定一中位成功距離;以及(ii)基於使用者互動實驗的一第二子集的該使用者追蹤資料,針對該頁面確定一中位失敗距離。
  4. 如請求項3所述的計算機系統,其中: 該距離模組用以:針對該使用者介面的各個頁面,產生至少一隨機距離,該隨機距離小於該頁面的該中位成功距離且大於該頁面的該中位失敗距離; 該計算機系統還包含一預測模組,該預測模組用以,針對該組使用者互動實驗的一實驗的使用者追蹤資料中的各個樣本: 基於(i)針對該頁面所產生的與該樣本相關的一隨機距離,(ii)該樣本的坐標,以及(iii)沿著該最短路徑的一點的坐標,預測該實驗的一結果;且 將預測的該結果與該實驗的一儲存結果進行比較;且 該預測模組用以輸出該複數比較的一結果。
  5. 如請求項4所述的計算機系統,其中: 預測該實驗的一結果的操作包含: 計算該樣本的該坐標與沿著該最短路徑的該點的該坐標之間的一距離,以及 基於確定的該距離以及與該樣本相關的該頁面的該隨機距離的一比較,確定預測的該結果; 將預測的該結果與該儲存結果進行比較的操作包含:因應於預測的該結果與該儲存結果相匹配,增加一成功預測計數;且 輸出該複數比較的該結果的操作包含:輸出該成功預測計數。
  6. 如請求項5所述的計算機系統,其中: 該距離模組用以:針對各個隨機產生的距離,基於至少該預測模組輸出的該成功預測計數,產生一適應度值;且 該計算機系統還包含一分析模組,該分析模組用以對產生的該複數適應度值進行一集群分析。
  7. 如請求項6所述的計算機系統,其中該距離模組用以:針對該使用者介面的各個頁面,因應於將產生的該複數適應度值識別為一單一集群的該集群分析,將具有最高適應度值的與該頁面相關的隨機產生的該距離設定為該頁面的該增強距離。
  8. 一種改良一使用者介面的方法,該方法包含: 取得(i)指示該使用者介面中到達一目標的一最短路徑的路徑資訊,以及(ii)與尋找該目標相關的一組使用者互動實驗,其中: 該組使用者互動實驗中的各個實驗包含使用者追蹤資料, 該路徑資訊包含複數步驟,且 該複數步驟中的各個步驟與該使用者介面的一頁面相關; 針對該使用者介面的各個頁面,基於該組使用者互動實驗,確定該頁面的一增強距離;以及 針對該複數步驟中的各個步驟: 確定該組使用者互動實驗的該使用者追蹤資料指示偏離該步驟的次數的一計數,其中該確定的步驟是基於針對與該步驟相關的該使用者介面的該頁面所確定的該增強距離, 基於該計數確定該步驟是否需要增強,且 因應於確定該步驟需要增強,針對該步驟產生一增強,其中產生該增強的步驟包含以下至少一步驟:為與該步驟相關的一動作產生一提示、以及改變與該步驟相關的一使用者介面元件。
  9. 如請求項8所述的方法,其中確定一頁面的該增強距離的步驟包含:確定該組使用者互動實驗的使用者追蹤資料與該最短路徑之間的至少一距離。
  10. 如請求項8所述的方法,其中確定一頁面的該增強距離的步驟包含:(i)基於成功到達該目標的使用者互動實驗的一第一子集的該使用者追蹤資料,針對該頁面確定一中位成功距離;以及(ii)基於使用者互動實驗的一第二子集的該使用者追蹤資料,針對該頁面確定一中位失敗距離。
  11. 如請求項10所述的方法,其中確定一頁面的該增強距離的步驟包含: 產生至少一隨機距離,該隨機距離小於該頁面的該中位成功距離且大於該頁面的該中位失敗距離;以及 針對該組使用者互動實驗的一實驗的使用者追蹤資料中的各個樣本: 基於(i)針對該頁面所產生的與該樣本相關的一隨機距離,(ii)該樣本的坐標,以及(iii)沿著該最短路徑的一點的坐標,預測該實驗的一結果;且 將預測的該結果與該實驗的一儲存結果進行比較。
  12. 如請求項11所述的方法,其中: 預測該實驗的該結果的步驟包含: 計算該樣本的該坐標與沿著該最短路徑的該點的該坐標之間的一距離,以及 基於確定的該距離以及與該樣本相關的該頁面的該隨機距離的一比較,確定預測的該結果;且 將預測的該結果與該儲存結果進行比較的步驟包含:因應於預測的該結果與該儲存結果相匹配,增加一成功預測計數。
  13. 如請求項12所述的方法,其中確定一頁面的該增強距離的指令包含: 針對隨機產生的各個距離,基於至少該預測模組輸出的該成功預測計數,產生一適應度值;以及 對產生的該複數適應度值進行一集群分析。
  14. 如請求項13所述的方法,其中確定一頁面的該增強距離的步驟包含:因應於將產生的該複數適應度值識別為一單一集群的該集群分析,將具有最高適應度值的與該頁面相關的隨機產生的該距離設定為該頁面的該增強距離。
  15. 一種非暫時性計算機可讀取媒體,其儲存處理器可執行的複數指令,且該複數指令包含: 取得(i)指示一使用者介面中到達一目標的一最短路徑的路徑資訊,以及(ii)與尋找該目標相關的一組使用者互動實驗,其中: 該組使用者互動實驗中的各個實驗包含使用者追蹤資料, 該路徑資訊包含複數步驟,且 該複數步驟中的各個步驟與該使用者介面的一頁面相關; 針對該使用者介面的各個頁面,基於該組使用者互動實驗,確定該頁面的一增強距離;以及 針對該複數步驟中的各個步驟: 確定該組使用者互動實驗的該使用者追蹤資料指示偏離該步驟的次數的一計數,其中該確定的指令是基於針對與該步驟相關的該使用者介面的該頁面所確定的該增強距離, 基於該計數確定該步驟是否需要增強,且 因應於確定該步驟需要增強,針對該步驟產生一增強,其中產生該增強的指令包含以下至少一指令:為與該步驟相關的一動作產生一提示、以及改變與該步驟相關的一使用者介面元件。
  16. 如請求項15所述的非暫時性計算機可讀取媒體,其中確定一頁面的該增強距離的指令包含:(i)基於成功到達該目標的使用者互動實驗的一第一子集的該使用者追蹤資料,針對該頁面確定一中位成功距離;以及(ii)基於使用者互動實驗的一第二子集的該使用者追蹤資料,針對該頁面確定一中位失敗距離。
  17. 如請求項16所述的非暫時性計算機可讀取媒體,其中確定一頁面的該增強距離的指令包含: 產生至少一隨機距離,該隨機距離小於該頁面的該中位成功距離且大於該頁面的該中位失敗距離;以及 針對該組使用者互動實驗的一實驗的使用者追蹤資料中的各個樣本: 基於(i)針對該頁面所產生的與該樣本相關的一隨機距離,(ii)該樣本的坐標,以及(iii)沿著該最短路徑的一點的坐標,預測該實驗的一結果;且 將預測的該結果與該實驗的一儲存結果進行比較。
  18. 如請求項17所述的非暫時性計算機可讀取媒體,其中: 預測該實驗的該結果的指令包含: 計算該樣本的該坐標與沿著該最短路徑的該點的該坐標之間的一距離,以及 基於確定的該距離以及與該樣本相關的該頁面的該隨機距離的一比較,確定預測的該結果;且 將預測的該結果與該儲存結果進行比較的指令包含:因應於預測的該結果與該儲存結果相匹配,增加一成功預測計數。
  19. 如請求項18所述的非暫時性計算機可讀取媒體,其中確定一頁面的該增強距離的指令包含: 針對隨機產生的各個距離,基於至少該預測模組輸出的該成功預測計數,產生一適應度值;且 對產生的該複數適應度值進行一集群分析。
  20. 如請求項19所述的非暫時性計算機可讀取媒體,其中確定一頁面的該增強距離的指令包含:因應於將產生的該複數適應度值識別為一單一集群的該集群分析,將具有最高適應度值的與該頁面相關的隨機產生的該距離設定為該頁面的該增強距離。
TW112142969A 2018-11-20 2019-11-20 改良使用者介面的計算機系統與方法 TW202409831A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/196,321 2018-11-20
US16/196,321 US10747655B2 (en) 2018-11-20 2018-11-20 Method and system for programmatically testing a user interface

Publications (1)

Publication Number Publication Date
TW202409831A true TW202409831A (zh) 2024-03-01

Family

ID=70726351

Family Applications (3)

Application Number Title Priority Date Filing Date
TW112142967A TW202409830A (zh) 2018-11-20 2019-11-20 整合電話系統與計算系統的系統與方法
TW108142171A TWI825225B (zh) 2018-11-20 2019-11-20 編程化地測試使用者介面的方法與系統
TW112142969A TW202409831A (zh) 2018-11-20 2019-11-20 改良使用者介面的計算機系統與方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
TW112142967A TW202409830A (zh) 2018-11-20 2019-11-20 整合電話系統與計算系統的系統與方法
TW108142171A TWI825225B (zh) 2018-11-20 2019-11-20 編程化地測試使用者介面的方法與系統

Country Status (8)

Country Link
US (3) US10747655B2 (zh)
EP (3) EP4293516A3 (zh)
CN (1) CN113056736A (zh)
CA (3) CA3202017A1 (zh)
ES (1) ES2966532T3 (zh)
PH (1) PH12021550928A1 (zh)
TW (3) TW202409830A (zh)
WO (1) WO2020106686A1 (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
DE212014000045U1 (de) 2013-02-07 2015-09-24 Apple Inc. Sprach-Trigger für einen digitalen Assistenten
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US10747655B2 (en) * 2018-11-20 2020-08-18 Express Scripts Strategic Development, Inc. Method and system for programmatically testing a user interface
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US10983898B2 (en) * 2019-03-29 2021-04-20 Usablenet, Inc. Methods for improved web application testing using remote headless browsers and devices thereof
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK180649B1 (en) * 2019-05-31 2021-11-11 Apple Inc Voice assistant discoverability through on-device targeting and personalization
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
USD931324S1 (en) * 2019-07-12 2021-09-21 Express Scripts Strategic Development, Inc. Display screen with graphical user interface
CN110704304B (zh) * 2019-09-06 2022-09-27 平安普惠企业管理有限公司 一种应用程序测试方法、装置、存储介质和服务器
US11392484B2 (en) * 2019-10-31 2022-07-19 Express Scripts Strategie Development, Inc. Method and system for programmatically testing user interface paths
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US20220035640A1 (en) * 2020-07-28 2022-02-03 Electronic Arts Inc. Trainable agent for traversing user interface
US11635903B2 (en) * 2021-06-15 2023-04-25 International Business Machines Corporation Cloud data migration
US11520692B1 (en) * 2021-09-08 2022-12-06 International Business Machines Corporation Performing software testing with best possible user experience
US20230153837A1 (en) * 2021-11-17 2023-05-18 Evernorth Strategic Development, Inc. System and method for generating persona data objects using big data analytics
TWI806412B (zh) * 2022-02-08 2023-06-21 中華精測科技股份有限公司 標記產品全域高點的方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115167A1 (en) * 2000-07-11 2003-06-19 Imran Sharif Web browser implemented in an Internet appliance
US6925454B2 (en) * 2000-12-12 2005-08-02 International Business Machines Corporation Methodology for creating and maintaining a scheme for categorizing electronic communications
US7137103B2 (en) * 2001-03-08 2006-11-14 International Business Machines Corporation Coverage analysis of message flows
AT411802B (de) * 2001-06-01 2004-05-25 Siemens Ag Oesterreich Verfahren zum testen von software
US7415437B2 (en) * 2001-10-31 2008-08-19 The United States Of America As Represented By The Secretary Of The Navy Business development process
US7363099B2 (en) * 2002-06-07 2008-04-22 Cadence Design Systems, Inc. Integrated circuit metrology
US20050114829A1 (en) * 2003-10-30 2005-05-26 Microsoft Corporation Facilitating the process of designing and developing a project
US7308418B2 (en) * 2004-05-24 2007-12-11 Affinova, Inc. Determining design preferences of a group
JP4176741B2 (ja) * 2005-05-25 2008-11-05 株式会社スクウェア・エニックス 移動先情報設定装置及び方法、プログラム、並びに記録媒体
US7673019B2 (en) 2005-11-04 2010-03-02 Palo Alto Research Center Incorporated System and method for determining a quantitative measure of qualitative usability of related Web pages
US9165040B1 (en) 2006-10-12 2015-10-20 Google Inc. Producing a ranking for pages using distances in a web-link graph
US20080222530A1 (en) * 2007-03-06 2008-09-11 Microsoft Corporation Navigating user interface controls on a two-dimensional canvas
US20090043621A1 (en) * 2007-08-09 2009-02-12 David Kershaw System and Method of Team Performance Management Software
US20090125821A1 (en) * 2007-11-08 2009-05-14 Carolynn Rae Johnson Graphical user interface feature for enabling faster discrete navigation among monitors in a multiple monitor workstation
CN101256596B (zh) * 2008-03-28 2011-12-28 北京搜狗科技发展有限公司 一种站内导航的方法及系统
US20100064282A1 (en) * 2008-09-05 2010-03-11 Microsoft Corporation Declarative testing for user interfaces
WO2011031777A2 (en) * 2009-09-08 2011-03-17 Core Sdi, Incorporated System and method for probabilistic attack planning
US9311619B2 (en) * 2010-09-10 2016-04-12 Visible Technologies Llc Systems and methods for consumer-generated media reputation management
US8688418B2 (en) 2011-09-01 2014-04-01 Mcmoran Oil & Gas, Llc Engineered methodology for design verification and validation of ultra-deep high pressure high temperature oil and gas well control equipment
US9514027B2 (en) * 2011-11-08 2016-12-06 Microsoft Technology Licensing, Llc Context-aware model-driven hierarchical monitoring metadata
US20130326427A1 (en) * 2012-05-30 2013-12-05 Red Hat, Inc. Automated assessment of user interfaces
WO2014014695A1 (en) * 2012-07-19 2014-01-23 Glance Networks, Inc Integrating co-browsing with other forms of information sharing
US9753960B1 (en) * 2013-03-20 2017-09-05 Amdocs Software Systems Limited System, method, and computer program for dynamically generating a visual representation of a subset of a graph for display, based on search criteria
US20150120717A1 (en) * 2013-10-25 2015-04-30 Marketwire L.P. Systems and methods for determining influencers in a social data network and ranking data objects based on influencers
US20150169430A1 (en) * 2013-12-13 2015-06-18 International Business Machines Corporation Selecting webpage test paths
WO2015138724A1 (en) 2014-03-12 2015-09-17 Landmark Graphics Corporation Horizontal well design for field with naturally fractured reservoir
US10649634B2 (en) * 2014-06-06 2020-05-12 International Business Machines Corporation Indexing and annotating a usability test recording
CN107003799A (zh) * 2015-01-16 2017-08-01 夏普株式会社 终端装置和用于控制终端装置的程序
JP6549959B2 (ja) 2015-10-02 2019-07-24 株式会社日立製作所 障害切り分け方法および障害切り分けを行う管理サーバ
US9983892B2 (en) * 2015-11-06 2018-05-29 Samsung Electronics Co., Ltd. Deep linking to mobile application states through programmatic replay of user interface events
US20170212651A1 (en) * 2016-01-27 2017-07-27 Amadeus S.A.S. Short cut links in a graphical user interface
US10310965B2 (en) 2016-02-25 2019-06-04 Dell Products, Lp Dynamic virtual testing environment for webpages
US10146664B2 (en) 2016-02-25 2018-12-04 Dell Products, Lp Virtual test environment for webpages with automation features
KR102667413B1 (ko) * 2016-10-27 2024-05-21 삼성전자주식회사 음성 명령에 기초하여 애플리케이션을 실행하는 방법 및 장치
US20180130464A1 (en) * 2016-11-08 2018-05-10 Sap Se User interface based voice operations framework
US10489126B2 (en) * 2018-02-12 2019-11-26 Oracle International Corporation Automated code generation
US11099640B2 (en) 2018-11-20 2021-08-24 Express Scripts Strategie Development, Inc. System and method for enhancing a user interface using eye tracking data
US10795701B2 (en) 2018-11-20 2020-10-06 Express Scripts Strategic Development, Inc. System and method for guiding a user to a goal in a user interface
US10747655B2 (en) * 2018-11-20 2020-08-18 Express Scripts Strategic Development, Inc. Method and system for programmatically testing a user interface

Also Published As

Publication number Publication date
CA3202017A1 (en) 2020-05-28
TWI825225B (zh) 2023-12-11
PH12021550928A1 (en) 2021-11-08
CN113056736A (zh) 2021-06-29
US20230393967A1 (en) 2023-12-07
ES2966532T3 (es) 2024-04-22
EP3841466B1 (en) 2023-11-15
EP3841466A4 (en) 2022-05-04
US11734162B2 (en) 2023-08-22
US10747655B2 (en) 2020-08-18
TW202409830A (zh) 2024-03-01
US20200159651A1 (en) 2020-05-21
WO2020106686A1 (en) 2020-05-28
EP3841466A1 (en) 2021-06-30
EP4293516A3 (en) 2024-01-31
TW202036281A (zh) 2020-10-01
WO2020106686A8 (en) 2021-04-15
EP3841466C0 (en) 2023-11-15
EP4293516A2 (en) 2023-12-20
CA3202034A1 (en) 2020-05-28
CA3113839A1 (en) 2020-05-28
EP4350510A1 (en) 2024-04-10
US20200371904A1 (en) 2020-11-26

Similar Documents

Publication Publication Date Title
TWI825225B (zh) 編程化地測試使用者介面的方法與系統
US11609630B2 (en) System and method for enhancing a user interface using eye tracking data
US11243787B2 (en) System and method for guiding a user to a goal in a user interface
US11803465B2 (en) Method and system for programmatically testing user interface paths
US11862315B2 (en) System and method for natural language processing
US20230376173A1 (en) Machine learning model automation of user interface transformation
US20230395220A1 (en) Systems and methods for providing an interactive digital personalized experience interface for users to engage in various aspects of behavioral healthcare
US20230050921A1 (en) Systems and methods for transforming a user interface according to predictive models
US11783186B2 (en) Methods and systems for predicting prescription directions using machine learning algorithm
US11423067B1 (en) System and method for identifying data object combinations