TW202240379A - 軟體測試報告產生方法及裝置 - Google Patents
軟體測試報告產生方法及裝置 Download PDFInfo
- Publication number
- TW202240379A TW202240379A TW110113319A TW110113319A TW202240379A TW 202240379 A TW202240379 A TW 202240379A TW 110113319 A TW110113319 A TW 110113319A TW 110113319 A TW110113319 A TW 110113319A TW 202240379 A TW202240379 A TW 202240379A
- Authority
- TW
- Taiwan
- Prior art keywords
- test
- test report
- report generator
- screen content
- platform
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
一種軟體測試報告產生方法及裝置。所述方法包括下列步驟:提供一測試平台,支援擷取被測應用程式的螢幕截圖、類似DOM結構文件等與螢幕內容相關的一或多個文件,並分析上述文件以獲得螢幕內容的描述資料;選擇執行一測試報告產生器,而由測試報告產生器從測試平台查詢描述資料、在被測系統上執行過的多個測試腳本及可執行的多個測試動作,用以評估被測應用程式的執行記錄並計算對被測應用程式的至少一項測試動作及測試資料,以回傳測試平台;以及由測試平台在被測系統上對被測應用程式執行測試動作,以產生被測應用程式的測試報告。
Description
本發明是有關於一種測試方法及裝置,且特別是有關於一種軟體測試報告產生方法及裝置。
軟體測試人員在測試軟體的過程中,需要自行搜尋各種測試細部工作的解決方案,並將之組建為測試計劃中的品質控管(QA)解決方案,這些過程需耗費大量時間與成本,且難以評估各項細部工作之解決方案的成本效益。
對於自動化測試技術提供者而言,目前只有下列兩種途徑可與他人進行交流:一種途徑是參與自動測試工具開發公司或團隊,但採用此途徑必須以此公司作為媒介,才能與實際使用者交易;另一種途徑則是在容許外掛的開放式測試平台(例如,selenium)上開發外掛模組,但這類外掛都是專注於單一測試細部工作,無法針對軟體整體進行測試。
因此,有必要提供一種可整合自動化測試技術資源的開放平台,讓測試自動化技術使用者與開發者可以進行技術交流。
本發明提供一種軟體測試報告產生方法及裝置,可提供軟體測試人員與他人交流測試技術。
本發明提供一種軟體測試報告產生方法,適用於具有處理器的電子裝置。所述方法包括下列步驟:提供一測試平台,支援擷取被測應用程式(Application under Test,AuT)的螢幕截圖、類似DOM結構文件等與螢幕內容相關的一或多個文件,並分析上述文件以獲得螢幕內容的描述資料;選擇執行一測試報告產生器,而由測試報告產生器從測試平台查詢上述描述資料、在被測系統(System under Test,SuT)上執行過的多個測試腳本及可執行的多個測試動作(actionable),用以評估被測應用程式的執行記錄並計算對被測應用程式的至少一項測試動作及測試資料,以回傳測試平台;以及由測試平台在被測系統上對被測應用程式執行所述測試動作,以產生被測應用程式的測試報告。
本發明提供一種軟體測試報告產生裝置,其包括顯示裝置、輸入裝置、儲存裝置及處理器。輸入裝置用以接收使用者的輸入操作。儲存裝置用以儲存電腦程式。處理器耦接顯示裝置、輸入裝置及儲存裝置,經配置以載入並執行電腦程式以:提供一測試平台,利用此測試平台擷取與被測應用程式的螢幕內容相關的一或多個文件,並分析此文件以獲得螢幕內容的描述資料;選擇執行一測試報告產生器,而由測試報告產生器從測試平台查詢描述資料、在被測系統上執行過的多個測試腳本及可執行的多個測試動作,用以評估被測應用程式的執行記錄並計算對被測應用程式的至少一項測試動作及測試資料,以回傳測試平台;以及由測試平台在被測系統上對被測應用程式執行所述測試動作,以產生被測應用程式的測試報告。
本發明的軟體測試報告產生方法及裝置,通過對與被測應用程式的螢幕內容相關的一或多個文件進行分析並採用類似DOM的語法來描述,使得使用此描述資料的測試報告產生器可具備支持跨平台與跨應用程式之測試能力。測試報告產生器通過從測試平台查詢資料,可評估並計算出適用於被測應用程式的測試動作,最終由測試平台執行測試動作並產生測試報告。藉此,本發明實施例可提供一個易於分享、測試及使用測試報告產生器的測試平台,而可增進軟體測試技術的交流。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
本發明實施例的軟體測試報告產生方法及裝置係建構一個可供測試報告產生器的開發者與使用者互相交流及交易測試報告產生器的測試平台。測試報告產生器是為了促進軟體測試技術交流而設計的一項產品,其可由任意第三方開發。本發明實施例的測試平台則提供開發者易於將所開發的測試報告產生器接入測試平台,並提供一鍵式的測試報告產生功能,讓使用者容易在測試平台上測試並選擇執行適用的測試報告產生器。
圖1是根據本發明一實施例所繪示的測試報告產生器測試平台的使用者介面。請參照圖1,本實施例的使用者介面10提供多項功能,以方便開發者和使用者分享及使用測試報告產生器。其中,被測應用程式螢幕12中會顯示當前使用者所啟動的被測應用程式(Application under Test,AuT)的執行畫面122。可測試動作項目欄141會顯示測試平台於當前螢幕介面上分析所得之可觸發螢幕元件(如圖中所示的可觸發螢幕元件Act1~Act6)。測試報告產生器項目欄142顯示使用者已取得且可執行的測試報告產生器(如圖中所示的測試報告產生器TRG1~TRG4)。使用者可按下可測試動作項目欄141中的任意可觸發螢幕元件,而由測試平台執行此元件。當可觸發螢幕元件無法於一個畫面內全部呈現時,可以分頁呈現,使用者並以切換按鍵16切換顯示的上下頁。使用者可按下測試報告產生器項目欄142中的任意測試報告產生器的按鍵,而啟動該測試報告產生器自動產生測試報告。當可用之測試報告產生器無法於一個畫面內全部呈現時,亦可以分頁呈現,使用者並以切換按鍵18切換顯示的上下頁。舉例來說,當使用者按下測試報告產生器TRG1的按鍵1421時,測試平台即會使用測試報告產生器TRG1自動對被測應用程式螢幕12中顯示的執行畫面122進行一連串的自動測試動作並產生測試報告。藉此,本發明實施例可提供一個簡化且易於使用者選擇並執行測試報告產生器的使用者介面10,其中僅顯示可用的測試報告產生器,並未顯示軟體測試相關技術的細節,而因此可提高使用者操作軟體測試的便利性。
圖2是根據本發明一實施例所繪示的軟體測試報告產生裝置的方塊圖。請參考圖2,本實施例的軟體測試報告產生裝置20例如是具有運算能力的檔案伺服器、資料庫伺服器、應用程式伺服器、工作站或個人電腦等計算機裝置,或是手機、平板電腦等行動裝置,本實施例不限制其種類。其中,軟體測試報告產生裝置20包括顯示裝置22、輸入裝置24、儲存裝置26及處理器28等元件,這些元件的功能分述如下:
顯示裝置22例如是採用液晶顯示器(Liquid Crystal Display,LCD)、發光二極體(Light-Emitting Diode,LED)、場發射顯示器(Field Emission Display,FED)或其他種類的面板做為顯示面板,並採用冷陰極螢光燈管(Cold Cathode Fluorescent Lamp,CCFL)或發光二極體做為背光模組的顯示器或電視等等,在此不設限。
輸入裝置24例如是可偵測使用者的輸入操作的鍵盤、滑鼠、遙控器、觸控板、觸碰螢幕等輸入工具,在此亦不設限。在一些實施例中,輸入裝置24例如是觸碰面板,而可與顯示裝置22整合為觸控螢幕,以同時提供顯示與操作功能。
儲存裝置26例如是任意型式的固定式或可移動式隨機存取記憶體(Random Access Memory,RAM)、唯讀記憶體(Read-Only Memory,ROM)、快閃記憶體(Flash memory)、硬碟或類似元件或上述元件的組合,而用以儲存可由處理器28執行的電腦程式及其所使用之資料。
在一些實施例中,軟體測試報告產生裝置20額外包括連接裝置(未繪示),其可用以連接使用者的行動運算裝置,例如手機、平板電腦之類的裝置,但本實施例不限於此。在一些實施例中,處理器28可從儲存裝置26把被測行動應用程式(AuT)的物件檔裝設至行動運算裝置,以進行對該AuT之測試。上述的連接裝置例如是通用序列匯流排(universal serial bus,USB)、RS232、通用非同步連接裝置/傳送器(universal asynchronous receiver/transmitter,UART)、內部整合電路(I2C)、序列周邊介面(serial peripheral interface,SPI)、顯示埠(display port)、雷電埠(thunderbolt)或區域網路(local area network,LAN)介面等有線的連接裝置,或是支援無線保真(wireless fidelity,Wi-Fi)、RFID、藍芽、紅外線、近場通訊(near-field communication,NFC)或裝置對裝置(device-to-device,D2D)等通訊協定的無線連接裝置,本實施例亦不限於此。
處理器28例如是中央處理單元(Central Processing Unit,CPU),或是其他可程式化之一般用途或特殊用途的微處理器(Microprocessor)、微控制器(Microcontroller)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似裝置或這些裝置的組合,但本實施例不限於此。在本實施例中,處理器28可從儲存裝置26載入電腦程式,以執行本發明實施例的軟體測試報告產生方法。
圖3是依照本發明一實施例所繪示的軟體測試報告產生方法的流程圖。請同時參照圖2及圖3,本實施例的方法適用於上述的軟體測試報告產生裝置20,以下即搭配軟體測試報告產生裝置20的各項元件說明本實施例的軟體測試報告產生方法的詳細步驟。
在步驟S302中,軟體測試報告產生裝置20是由處理器28提供一測試平台,此測試平台選取一個被測應用程式(AuT),並由處理器28選擇執行一個測試報告產生器。
在步驟S304中,此測試平台擷取與此被測應用程式的螢幕內容相關的一或多個文件,並分析所述文件以獲得螢幕內容的描述資料。所述的文件例如是螢幕截圖、類似DOM結構文件等等的螢幕內容文件(screen content document,SCD)。
在一些實施例中,處理器28例如是採用三階段辨識方式來分析螢幕內容文件並獲得螢幕內容的描述資料,例如使用者介面分析描述(user-interface analytic description,UIAD)。此描述資料例如是採用可作為多種被測系統(SuT)的統一表示的文件物件模型(Document Object Model,DOM)的語法來描述,以支持測試報告產生器的跨平台(作業系統)測試能力,而適用於不同種類的系統或裝置。
詳細而言,圖4是依照本發明一實施例所繪示的螢幕內容描述資料的產生方法的流程圖。請同時參照圖2及圖4,本實施例的方法適用於上述的軟體測試報告產生裝置20,用以提供被測應用程式(AuT)的螢幕內容的文件物件模型(DOM)結構的資訊。
在步驟S402中,由處理器28解析螢幕截圖的標記文件中的多個標籤,以獲得螢幕內容的文件物件模型DOM結構。
在一些實施例中,處理器28例如是執行語法解析(parser)程序,以解析當前螢幕內容的標記文件,例如超文件標記語言(HyperText Markup Language,HTML)或是可延伸標記語言(Extensible Markup Language,XML),從而獲得螢幕內容的DOM結構。所述DOM結構也可利用影像分析技術來構建,在此不設限。
在步驟S404中,由處理器28利用機器學習模型預測DOM結構中的多個元件的每一個的圖像主題。
詳細而言,處理器28例如是利用影像分析及/或機器學習技術,訓練一個機器學習模型,並用以針對螢幕截圖的DOM結構中的元件,預測其圖像主題(topic)。例如,螢幕截圖中的向右三角形可歸類為「播放」。所述的圖像可經由網路從伺服器取得,或是直接從螢幕截圖中擷取,且所述的預測值可為:圖像主題標記;具有較高信心值(confidence value)的多個圖像主題標記;或不同圖像主題標記的信心值的向量。
在步驟S406中,由處理器28將所預測的各個元件的圖像主題及標記文件中對應於該元件或周圍元件的標籤資訊導入機器學習模型或分類演算法,以預測各個元件的元件主題。
詳細而言,對於DOM結構中的每一個元件,處理器28例如是將經由上述技術取得的圖像主題,連同標記文件中對應於該元件或周圍元件的標籤名稱與屬性值以及該元件的相鄰元件,一併用來預測該元件的元件主題。此預測步驟可通過機器學習技術或採用監督式或非監督式的機器學習技術的任何自然語言處理技術或分類演算法來實現。
在步驟S408中,由處理器28結合所有元件的元件主題,以預測螢幕內容的應用主題與該主題之元件結構。
詳細而言,在取得當前螢幕畫面中的關鍵元件的元件主題後,處理器28可將這些元件主題結合,用以預測當前螢幕內容的應用主題,以及各個關鍵元件在此應用主題中所扮演的角色。所述的應用主題例如包括註冊(包括帳號名稱、通訊電子郵件、密碼、密碼確認、許可協議、地址、電話號碼等關鍵元件)、登入(包括帳號名稱、密碼、許可協議等關鍵元件)、購物(包括產品清單、購物車按鍵、信用卡資訊、銀行帳戶資訊等關鍵元件)等,在此不設限。其中,處理器28例如是使用自然語言處理、機器學習、穩定配對(stable-marriage)演算法等技術來實現上述步驟,在此不設限。
在一些實施例中,針對被測應用程式(AuT)的螢幕內容的DOM結構中的資訊,處理器28還可進一步將冗長的DOM描述資訊精簡,並提供給測試報告產生器的開發者,方便開發者檢視並修改其所開發的測試報告產生器。
詳細而言,處理器28例如會解析標記文件中各個標記的屬性,從中判斷出與視覺與反應效果(即可被人類使用者觀察到的效果)無關的屬性,從而將其對應的屬性或DOM元件移除。
此外,處理器28可針對所有裝置和所有類型的被測應用程式,將其元件標記名稱、屬性名稱和屬性值統一化,使得測試報告產生器能夠跨裝置使用,所述裝置包括採用Windows、iOS、MacOS、Unix、Linux、內嵌式作業系統等作業系統的桌上型電腦、筆記型電腦、手機或平板電腦,在此不設限。
在一些實施例中,若DOM元件e僅具有一個子元件f,則處理器28可將元件e、f合併為一個新元件e’,使得子元件f的子元件成為新元件e’的子元件,且元件e的母元件成為新元件e’的母元件。其中,新元件e’的屬性值可為元件e、f的屬性值的聯集(union)。最終,元件e、f將被摒棄而從DOM結構中移除。若元件e、f的屬性間存在衝突,則可採用合適的作法將這些衝突屬性的數值合併。此外,不具有屬性的DOM元件亦可從DOM結構中移除,且將其子元件改為該DOM元件的母元件的子元件。
回到圖3的流程,在步驟S306中,而由測試報告產生器從測試平台查詢螢幕內容描述資料、在被測系統(System under Test,SuT)上執行過的多個測試腳本及可執行的多個測試動作(actionable),用以評估被測應用程式的執行記錄並計算對被測應用程式的至少一項測試動作及各測試動作所對應的測試資料,以回傳測試平台。其中,所述的測試動作例如也是採用統一表示的語法(例如DOM)來描述,以支持測試報告產生器的跨平台(作業系統)測試能力。
在一些實施例中,處理器28例如是查詢測試平台的多個環境設定、被測系統的種類、執行狀態及多個屬性、測試報告產生器的使用者資訊以及與測試報告產生器相關聯的其他測試報告產生器其中之一或其組合,在此不設限。
詳細而言,在本實施例中,測試報告產生器是作為一個可提供下一個測試動作建議的物件。在此物件中,可藉由測試平台執行一個函式來呼叫測試報告產生器之應用程式介面(Application Programming Interface,API),以增進測試報告產生器的開發獨立性與執行效率。
舉例來說,圖5是依照本發明一實施例所繪示的測試報告產生器的程式碼,其中程式碼52為測試報告產生器的介面範例,在此以類似Python之虛擬程式碼表達,實際製作可以使用其他程式語言達成相同效果,在此不設限。
詳細而言,在本實施例中,請參照圖5,其中程式碼50是本實施例假設使用者針對當前的被測系統(SuT),選擇執行一個名稱為「myTRG」的測試報告產生器。響應於使用者的選擇操作,軟體測試報告產生裝置例如會執行如程式碼50中所描述的迴圈,其中包括由測試平台執行函式「myTRG.getTestInput()」,以恢復程式碼52中myTRG物件執行,並由測試報告產生器myTRG查詢當前被測系統的狀態及測試平台所辨識出的螢幕狀態中的元件,並用以計算適用於被測應用程式(AuT)的測試動作(actionables)「testAction」,直到該測試報告產生器回傳字串「exitAlgorithm」為止。
需說明的是,上述的API可在測試報告產生器的執行中使用,以增進測試報告產生器的開發與執行效率。這些API可提供下列功能:
查詢測試平台中已註冊使用者的識別碼(ID);
查詢測試平台的作業系統(OS)資訊、解譯器(interpreter)資訊或其他環境資訊;
列印出螢幕截圖的DOM結構(或其子結構);
查詢被測應用程式(AuT)的種類,所述種類包括Windows、Android、iOS、MacOS、Unix、Linux、內嵌式作業系統等作業系統的應用程式(app)或網頁app;
查詢螢幕內容的網址,即統一資源定位符(Uniform Resource Locator,URL);
查詢被測應用程式(AuT)的啟動頁面的網址;
查詢測試系統的當前使用者已購買的測試報告產生器;
查詢可供測試系統的當前使用者執行的測試報告產生器;
在電腦記憶體或磁碟中創建測試記錄(log);
查詢當前執行的測試報告產生器的資訊;
查詢特定測試報告產生器的資訊;
查詢當前螢幕內容的DOM元件是否可被觸發執行;
查詢與當前使用者及被測應用程式(AuT)相關的某些測試回合(session)資訊;
修改與當前使用者及AuT相關的某些測試回合資訊;
查詢AuT的資訊;
查詢測試平台的檔案在電腦檔案系統中的目錄路徑;
查詢AuT的執行狀態;
將AuT的執行狀態通知測試平台;
控制及監視AuT運行的裝置,所述控制及監視的項目包括裝置揚聲器、電源按鍵、螢幕背光、全球定位系統(Global Position System,GPS)、使用者身分模組(Subscriber Identity Module,SIM)卡、安全數位(Secure Digital,SD)卡、無線保真(Wireless Fidelity,Wi-Fi)、螢幕轉向、由AuT裝置外撥的電話、由AuT裝置接聽的電話、AuT裝置的螢幕姿態(gesture)、AuT裝置的網路連接等;
在AuT裝置中安裝應用程式;
查詢AuT裝置的檔案系統的相關資訊;
查詢AuT裝置的前景和背景應用程式;
查詢由測試平台記錄的測試腳本(test script);
請求測試平台提供記錄測試軌跡(test trace)並將軌跡轉換為重播測試腳本的服務;
重播所記錄的測試腳本;
查詢螢幕截圖的圖像;
查詢當前螢幕截圖的DOM結構;
查詢當前或前次測試回合的測試軌跡;
查詢當前測試軌跡中的測試動作步驟的計數或其他統計值;
查詢所有訪問過的測試覆蓋率資訊,所述資訊例如是關於相同或近似螢幕截圖的叢集的清單、所有叢集的可動作元件的清單、曾在當前或前次測試回合中在叢集中動作的元件的清單等;
選擇部分或所有的測試資料卡;
創建或修改測試資料卡;
查詢當前螢幕內容的DOM結構;
查詢當前螢幕內容的部分或所有可動作元件;
查詢AuT裝置的部分或所有硬體按鍵;
通知測試平台啟動新的測試軌跡;
查詢測試平台所預測的螢幕內容的主題;
查詢DOM結構中的DOM元件的主題;
查詢用以填入測試動作用的文字輸入元件的資料的建議;
經由測試平台發出一或多個測試報告,例如藉由電子郵件向許多人送出測試報告、將測試報告存入一或多個議題追蹤系統(例如:Redmine、Bugzilla)、將測試報告存入磁碟、列印測試報告等;
啟動與測試平台使用者的對話回合,以便使用者可以在測試回合進行期間輸入測試資料、測試動作、測試指令、測試報告等;
檢查是否AuT仍在運行中;
管理電話簿或聯絡人資訊;
查詢AuT裝置的序號、型號、版本或其他資訊;
查詢連接到AuT裝置或測試平台執行測試任務的環境的裝置;以及
監測及更換AuT裝置的電池。
回到圖3的流程,在步驟S308中,由處理器28執行的測試平台在被測系統上對被測應用程式執行前述由測試報告產生器回傳的測試動作,並產生被測應用程式的測試報告。其中,處理器28在執行完測試動作後,例如會重新擷取並分析螢幕內容,並在步驟S310中判斷是否進入被測應用程式的下一個畫面。其中,若判斷進入下一個畫面,則回到步驟S304,以由處理器28創建螢幕內容的描述資料,從而提供給測試報告產生器來計算下一輪的測試動作。反之,若判斷未進入下一個畫面,則在步驟S312,由處理器28完成測試報告。
詳細而言,圖6是依照本發明一實施例所繪示的軟體測試報告產生方法的範例。請參照圖6,本實施例說明測試平台60與測試報告產生器62之間的互動操作。
在步驟S602中,由使用者登入測試平台60。其中,使用者例如是經由網路連接至提供測試平台60的伺服器,並輸入帳號、密碼等驗證資料,以登入測試平台60。
在步驟S604中,由使用者在測試平台60啟動所欲測試的被測應用程式(AuT),且在步驟S606中,由使用者在測試平台60選擇所欲執行的測試報告產生器。以圖1為例,使用者例如是在測試平台的使用者介面10中選擇開啟一個計畫,並啟動被測應用程式AuT1。此時,使用者介面10會在螢幕12中顯示被測應用程式AuT1的執行畫面122。此外,使用者可在使用者介面10的測試報告產生器項目欄142中選擇所欲執行的測試報告產生器,以觸發測試平台自動執行軟體測試,並產生測試報告。
在步驟S606中,由測試平台60分析與被測應用程式的螢幕內容相關的文件,以創建螢幕內容的描述資料,例如使用者介面分析描述(UIAD)。其中,測試平台60例如是採用上述的三階段辨識方式來分析螢幕截圖並獲得描述資料。此描述資料例如是採用適用於不同被測系統的DOM語法來描述,但不限於此。
在步驟S610中,由使用者選擇執行測試報告產生器62,而執行函式「getTestInput()」。
在步驟S612中,由測試報告產生器62執行應用程式介面(API),以自測試平台60查詢描述資料、在被測系統(SuT)上執行過的測試腳本及可執行的測試動作等資料,並在步驟S614中,使用所查詢的資料,評估被測應用程式的執行記錄並計算對被測應用程式的測試動作。
在步驟S616中,由測試報告產生器62將所計算的測試動作(例如其索引)以及各測試動作所對應的測試資料回傳測試平台60,而在步驟S618中,由測試平台60在被測系統上對被測應用程式執行測試動作,以產生被測應用程式的測試報告。
在一些實施例中,測試平台60在執行測試動作的過程中,若發現被測應用程式的畫面出現改變,則可回到步驟S608,重新擷取及分析螢幕內容,並創建描述資料,而由測試報告產生器62重新評估及計算該螢幕內容下適用的測試動作,以重新執行測試動作。通過反覆執行上述分析螢幕內容、計算測試動作及執行測試動作的步驟,最終可產生能夠完整反映被測應用程式運作的測試報告。
在本實施例中,由測試報告產生器62回傳的測試動作可支持跨平台測試能力,因此在本實施例的測試平台60上開發的測試報告產生器62具備跨不同被測系統(SuT)和作業系統的可重用性(reusability)。
藉由上述流程,本實施例的測試平台60可提供一個高效且經濟的測試報告產生器開發與分享平台,方便測試報告產生器的開發者與使用者彼此分享、測試及使用測試報告產生器,從而增進軟體測試技術的交流。
基於上述測試平台的架構,本發明實施例額外提供智慧填表、測試報告產生器協同工作及資料保密功能,以提供開發者及使用者在使用測試平台上的便利性及安全性,以下將各舉實施例詳細說明。
[智慧填表]
為了簡化測試報告產生器執行過程中的常規表格填寫工作,本發明實施例提供可供測試報告產生器呼叫的自動填表服務。所述服務包括:
根據當前的螢幕內容的描述資料,選擇合適的測試資料卡。所述選擇的演算法可藉由機器學習技術、自然語言處理技術或是可將DOM元件的元件主題與多個測試資料卡中的資料欄位匹配的演算法來實施。在一些實施例中,上述的測試資料卡也可以在運行產生測試報告的過程中即時創建。舉例來說,若既有的測試資料卡無法與當前螢幕內容的描述資料完全匹配,則可從多個測試資料卡中分別找尋可匹配的欄位,並用以組建出可與當前螢幕內容的描述資料相匹配的測試資料卡,而不限於既有的測試資料卡。
使用所選擇測試資料卡中的資料欄位,與目標螢幕內容的DOM結構中的其他關鍵測試動作元件進行匹配。此匹配的演算法可藉由機器學習技術、自然語言處理技術或是可將DOM元件的主題與多個測試資料卡中的資料欄位匹配的演算法(例如,穩定配對演算法)來實施。
在執行上述兩個步驟之後,測試平台可在這些DOM元件中自動填入其所匹配的資料卡中資料欄位值。
[協同工作]
為了最大化可供測試平台使用者使用的測試報告產生器,本發明實施例可提供服務,以促進測試報告產生器之間的協作。例如,在本實施例中,許多測試報告產生器x可呼叫其他測試報告產生器y。此服務例如可允許測試報告產生器x執行getTestInput()函數,以回傳下列清單:
“callAlgorithm”、“y”、“callingParameters”。
其中,“callingParameters”可以是數值、清單或是複合結構,且是可選的。在從測試報告產生器x接收到回傳值時,測試平台可開始執行測試報告產生器y,直到測試報告產生器y執行getTestInput()函數時回傳下列清單:
“exitAlgorithm”、“returnData”。
其中,“returnData”可以是數值、清單或是複合結構,且是可選的。在本實施例中,測試平台中的測試報告產生器呼叫其他測試報告產生器的方式與傳統程式化語言中的方法呼叫另一方法的方式相類似。為了維持測試報告產生器的呼叫及回傳功能,本實施例例如會維持一個測試報告產生器的呼叫堆疊。
[資料保密]
為了保護經由測試報告產生器交換的資料,本發明實施例提供下列的保護和安全機制。
為了保護測試報告產生器的智慧財產權,避免其技術在測試平台上顯露給其他測試報告產生器的使用者或測試平台的使用者,本發明實施例僅允許測試報告產生器開發者將測試報告產生器的物件檔案提交至測試平台。所述的物件檔案例如是實體CPU或如JVM、Python解譯器等虛擬機器的機器碼。藉此,測試報告產生器的使用者只允許從測試平台下載測試報告產生器的物件檔案。
為了保護測試報告產生器的使用者的隱私及裝置安全,本發明實施例使用病毒掃描器去檢視測試報告產生器的物件檔案中是否存在任何安全威脅,並且在偵測到可能的威脅時,拒絕或阻擋該測試報告產生器被使用者下載。本發明實施例亦將產生掃描報告,並提供給測試報告產生器的開發者。
本發明實施例使用安全測試腳本來檢測測試報告產生器是否具有任何惡意或不正常的行為。此針對測試報告產生器的安全測試可以在測試報告產生器被提交至測試平台供所有使用者下載之前,在測試平台的客戶端執行。此安全測試也可以在測試平台的伺服器端接收到測試報告產生器的物件檔案之後,在測試平台的伺服器端執行。本發明實施例亦將產生安全測試報告,並提供給測試報告產生器的開發者。
為了確保測試平台使用者所下載的測試報告產生器的品質,本發明實施例使用品質保證(Quality assurance,QA)測試腳本來找出測試報告產生器的缺陷。此對於測試報告產生器的QA測試可以在測試報告產生器被提交至測試平台供所有使用者下載之前,在測試平台的客戶端執行。此QA測試也可以在測試平台的伺服器端接收到測試報告產生器的物件檔案之後,在測試平台的伺服器端執行。本發明實施例亦將產生QA測試報告,並提供給測試報告產生器的開發者。
為了防止不被允許使用測試報告產生器的使用者盜版測試報告產生器,本發明實施例提供一種機制以強制使用者不能將測試報告產生器的物件檔案直接或間接地從一台機器複製到另一台機器,並在另一台機器上執行測試報告產生器。此機制例如是使用認證演算法或秘密訊標(token)來拒絕或阻擋未能通過認證程序或未能適當地處理秘密訊標的使用者或機器。詳細而言,測試平台例如會根據測試報告產生器的使用者資訊產生訊標,用以對測試報告產生器的資料進行加密,而在實際執行測試報告產生時,則會取得測試報告產生器的當前使用者的使用者資訊,用以產生訊標並對經加密的測試報告產生器的資料進行解密,以執行經解密的測試報告產生器或其傳回值。
綜上所述,在本發明實施例的軟體測試報告產生方法及裝置中,通過對被測應用程式的螢幕內容進行分析並採用DOM的語法來描述,使得使用此描述資料的測試報告產生器可具備支持跨平台測試能力。測試報告產生器通過從測試平台查詢資料,可評估並計算出適用於被測應用程式的測試動作,最終由測試平台執行測試動作並協助測試報告產生器產生測試報告。藉此,本發明實施例可提供一個易於分享、測試及使用測試報告產生器的測試平台,而可增進軟體測試技術的交流。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10:使用者介面
12:被測應用程式螢幕
16、18:上下頁切換按鍵
122:被測應用程式的執行畫面
141:可觸發螢幕元件項目欄
142:測試報告產生器項目欄
20:軟體測試報告產生裝置
22:顯示裝置
24:輸入裝置
26:儲存裝置
28:處理器
50:程式碼
52:程式碼
60:測試平台控制流程
62:測試報告產生器
S302~S312、S402~S408、S602~S618:步驟
圖1是根據本發明一實施例所繪示的測試報告產生器測試平台的使用者介面。
圖2是根據本發明一實施例所繪示的軟體測試報告產生裝置的方塊圖。
圖3是依照本發明一實施例所繪示的軟體測試報告產生方法的流程圖。
圖4是依照本發明一實施例所繪示的螢幕截圖描述資料的產生方法的流程圖。
圖5是依照本發明一實施例所繪示的測試報告產生器的程式碼的範例。
圖6是依照本發明一實施例所繪示的軟體測試報告產生方法的範例。
S302~S312:步驟
Claims (15)
- 一種軟體測試報告產生方法,適用於具有處理器的電子裝置,所述方法包括下列步驟: 提供一測試平台,利用所述測試平台擷取與被測應用程式(Application under Test,AuT)的螢幕內容相關的一或多個文件,並分析所述文件以獲得所述螢幕內容的描述資料; 選擇執行一測試報告產生器,而由所述測試報告產生器從所述測試平台查詢所述描述資料、在被測系統(System under Test,SuT)上執行過的多個測試腳本及可執行的多個測試動作(actionable),用以評估所述被測應用程式的執行記錄並計算對所述被測應用程式的至少一測試動作及測試資料,以回傳所述測試平台;以及 由所述測試平台在所述被測系統上對所述被測應用程式執行所述至少一測試動作,以產生所述被測應用程式的測試報告。
- 如請求項1所述的方法,其中分析所述文件以獲得所述螢幕內容的描述資料的步驟包括: 解析所述螢幕內容的標記文件中的多個標籤,以獲得所述螢幕內容的文件物件模型(Document Object Model,DOM)結構; 利用機器學習模型預測所述DOM結構中的多個元件的每一個的圖像主題; 將所預測的各所述元件的圖像主題及所述標記文件中對應於該元件或周圍元件的標籤資訊導入所述機器學習模型或分類演算法,以預測各所述元件的元件主題;以及 結合所述元件的所述元件主題,以預測所述螢幕內容的應用主題。
- 如請求項2所述的方法,其中解析所述螢幕內容的標記文件中的多個標籤,以獲得所述螢幕內容的DOM結構的步驟包括: 分析各所述標籤的屬性,並根據所述屬性與對應的所述元件之間的關聯,合併或刪除所述元件。
- 如請求項1所述的方法,其中由所述測試報告產生器從所述測試平台查詢所述描述資料、在被測系統上執行過的多個測試腳本及可執行的多個測試動作的步驟更包括: 查詢所述測試平台的多個環境設定、所述被測系統的種類、執行狀態及多個屬性、所述測試報告產生器的使用者資訊以及與所述測試報告產生器相關聯的其他測試報告產生器其中之一或其組合。
- 如請求項1所述的方法,其中由所述測試平台在所述被測系統上對所述被測應用程式執行所述至少一測試動作的步驟更包括: 接收所述測試報告產生器對另一測試報告產生器的呼叫,以將被呼叫的所述另一測試報告產生器加入一執行堆疊並執行所述另一測試報告產生器;以及 接收所述另一測試報告產生器的離開指令,以從所述執行堆疊中移除所述另一測試報告產生器,並執行所述執行堆疊中的下一測試報告產生器。
- 如請求項1所述的方法,其中由所述測試平台在所述被測系統上對所述被測應用程式執行所述至少一測試動作的步驟更包括: 將所述螢幕內容與既有的多筆測試資料卡進行整體比對,計算所述螢幕內容中多個資料輸入元件與所述測試資料卡所提供的多個欄位組合匹配的可能性,找出最匹配的所述欄位組合,以將執行所述至少一測試動作所需的資料欄位內容填入所述測試資料卡的所述欄位組合。
- 如請求項1所述的方法,更包括: 由所述測試平台根據所述測試報告產生器的使用者資訊產生訊標(token),用以對所述測試報告產生器的資料進行加密,其中選擇執行所述測試報告產生器的步驟包括: 取得所述測試報告產生器的當前使用者的使用者資訊,用以產生所述訊標並對經加密的所述測試報告產生器的資料進行解密,以執行經解密的所述測試報告產生器或其傳回值。
- 一種軟體測試報告產生裝置,包括: 顯示裝置; 輸入裝置,接收使用者的輸入操作; 儲存裝置,儲存電腦程式;以及 處理器,耦接所述顯示裝置、所述輸入裝置及所述儲存裝置,經配置以載入並執行所述電腦程式以: 提供一測試平台於所述顯示裝置,利用所述測試平台擷取與被測應用程式的螢幕內容相關的一或多個文件,並分析所述文件以獲得所述螢幕內容的描述資料; 根據所述輸入操作選擇執行一測試報告產生器,而由所述測試報告產生器從所述測試平台查詢所述描述資料、在被測系統上執行過的多個測試腳本及可執行的多個測試動作,用以評估所述被測應用程式的執行記錄並計算對所述被測應用程式的至少一測試動作及測試資料,以回傳所述測試平台;以及 由所述測試平台在所述被測系統上對所述被測應用程式執行所述至少一測試動作,以產生所述被測應用程式的測試報告。
- 如請求項8所述的軟體測試報告產生裝置,其中所述處理器包括: 解析所述螢幕內容的標記文件中的多個標籤,以獲得所述螢幕內容的DOM結構; 利用機器學習模型預測所述DOM結構中的多個元件的每一個的圖像主題; 將所預測的各所述元件的圖像主題及所述標記文件中對應於該元件或周圍元件的標籤資訊導入所述機器學習模型或分類演算法,以預測各所述元件的元件主題;以及 結合所述元件的所述元件主題,以預測所述螢幕內容的應用主題。
- 如請求項9所述的軟體測試報告產生裝置,其中所述處理器包括: 分析各所述標籤的屬性,並根據所述屬性與對應的所述元件之間的關聯,合併或刪除所述元件。
- 如請求項8所述的軟體測試報告產生裝置,其中所述處理器更查詢所述測試平台的多個環境設定、所述被測系統的種類、執行狀態及多個屬性、所述測試報告產生器的使用者資訊以及與所述測試報告產生器相關聯的其他測試報告產生器其中之一或其組合。
- 如請求項8所述的軟體測試報告產生裝置,其中所述處理器更包括: 接收所述測試報告產生器對另一測試報告產生器的呼叫,以將被呼叫的所述另一測試報告產生器加入一執行堆疊並執行所述另一測試報告產生器;以及 接收所述另一測試報告產生器的離開指令,以從所述執行堆疊中移除所述另一測試報告產生器,並執行所述執行堆疊中的下一測試報告產生器。
- 如請求項8所述的軟體測試報告產生裝置,其中所述處理器更將所述螢幕內容與既有的多筆測試資料卡進行整體比對,計算所述螢幕內容中多個資料輸入元件與所述測試資料卡所提供的多個欄位組合匹配的可能性,找出最匹配的所述欄位組合,以將執行所述至少一測試動作所需的資料欄位內容填入所述測試資料卡的所述欄位值組合。
- 如請求項8所述的軟體測試報告產生裝置,其中所述處理器更由所述測試平台根據所述測試報告產生器的使用者資訊產生訊標,用以對所述測試報告產生器的資料進行加密,其中所述處理器包括取得所述測試報告產生器的當前使用者的使用者資訊,用以產生所述訊標並對經加密的所述測試報告產生器的資料進行解密,以執行經解密的所述測試報告產生器或其傳回值。
- 如請求項8所述的軟體測試報告產生裝置,更包括: 連接裝置,連接一行動運算裝置,其中所述處理器回應所述行動運算裝置的測試請求,以對所述行動運算裝置上的被測應用程式執行所述至少一測試動作,並產生所述被測應用程式的測試報告。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110113319A TWI811663B (zh) | 2021-04-14 | 2021-04-14 | 軟體測試報告產生方法及裝置 |
US17/718,299 US11846972B2 (en) | 2021-04-14 | 2022-04-11 | Method and apparatus for generating software test reports |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110113319A TWI811663B (zh) | 2021-04-14 | 2021-04-14 | 軟體測試報告產生方法及裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202240379A true TW202240379A (zh) | 2022-10-16 |
TWI811663B TWI811663B (zh) | 2023-08-11 |
Family
ID=83602557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110113319A TWI811663B (zh) | 2021-04-14 | 2021-04-14 | 軟體測試報告產生方法及裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11846972B2 (zh) |
TW (1) | TWI811663B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11876686B2 (en) * | 2022-03-31 | 2024-01-16 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for conducting a network traffic simulation using hypertext transfer protocol archive data |
CN116467223B (zh) * | 2023-06-20 | 2023-09-19 | 建信金融科技有限责任公司 | 测试报告的生成方法、装置、系统、设备及介质 |
CN117060998B (zh) * | 2023-10-11 | 2024-02-02 | 国网山东省电力公司博兴县供电公司 | 电网通信光模块故障自动检测方法、装置、设备及介质 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5754755A (en) * | 1996-10-10 | 1998-05-19 | Microsoft Corporation | Method and system for generating test scripts |
US6002871A (en) * | 1997-10-27 | 1999-12-14 | Unisys Corporation | Multi-user application program testing tool |
US7480640B1 (en) * | 2003-12-16 | 2009-01-20 | Quantum Leap Research, Inc. | Automated method and system for generating models from data |
US7386521B2 (en) * | 2005-01-21 | 2008-06-10 | Intranational Business Machines Corporation | Automatic test program generation using extended conditional constraint satisfaction |
US8065663B2 (en) * | 2006-07-10 | 2011-11-22 | Bin1 Ate, Llc | System and method for performing processing in a testing system |
US7937622B2 (en) * | 2006-12-29 | 2011-05-03 | International Business Machines Corporation | Method and system for autonomic target testing |
US20090199047A1 (en) * | 2008-01-31 | 2009-08-06 | Yahoo! Inc. | Executing software performance test jobs in a clustered system |
US8397217B2 (en) * | 2010-02-22 | 2013-03-12 | International Business Machines Corporation | Integrating templates into tests |
US9213625B1 (en) * | 2010-07-27 | 2015-12-15 | Intuit Inc. | Method and apparatus for performing automated user-interface layout testing |
US9047414B1 (en) * | 2011-03-15 | 2015-06-02 | Symantec Corporation | Method and apparatus for generating automated test case scripts from natural language test cases |
US9424167B2 (en) * | 2014-05-21 | 2016-08-23 | Cgi Technologies And Solutions Inc. | Automated testing of an application system |
US9753843B2 (en) * | 2014-11-20 | 2017-09-05 | Accenture Global Services Limited | Automated testing of web-based applications |
CA3064771A1 (en) * | 2017-06-01 | 2018-12-06 | Royal Bank Of Canada | System and method for test generation |
CN107273298B (zh) * | 2017-07-07 | 2019-02-15 | 北京深思数盾科技股份有限公司 | 一种加壳工具的测试方法、装置及系统 |
US10671435B1 (en) * | 2017-10-19 | 2020-06-02 | Pure Storage, Inc. | Data transformation caching in an artificial intelligence infrastructure |
US10642721B2 (en) * | 2018-01-10 | 2020-05-05 | Accenture Global Solutions Limited | Generation of automated testing scripts by converting manual test cases |
US11048619B2 (en) * | 2018-05-01 | 2021-06-29 | Appdiff, Inc. | AI software testing system and method |
US11755919B2 (en) * | 2018-05-07 | 2023-09-12 | Sauce Labs Inc. | Analytics for an automated application testing platform |
US10747651B1 (en) * | 2018-05-31 | 2020-08-18 | The Ultimate Software Group, Inc. | System for optimizing system resources and runtime during a testing procedure |
US10949338B1 (en) * | 2019-02-07 | 2021-03-16 | Architecture Technology Corporation | Automated software bug discovery and assessment |
US11200154B2 (en) * | 2019-03-11 | 2021-12-14 | International Business Machines Corporation | Function modification for software application testing |
US11727274B1 (en) * | 2022-04-15 | 2023-08-15 | Sas Institute Inc. | Deep learning model training system |
-
2021
- 2021-04-14 TW TW110113319A patent/TWI811663B/zh active
-
2022
- 2022-04-11 US US17/718,299 patent/US11846972B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TWI811663B (zh) | 2023-08-11 |
US20220334959A1 (en) | 2022-10-20 |
US11846972B2 (en) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11588922B2 (en) | Capturing and replaying application sessions using resource files | |
TWI811663B (zh) | 軟體測試報告產生方法及裝置 | |
WO2018113596A1 (zh) | 应用程序审核操作权限处理方法、装置和存储介质 | |
US11281763B2 (en) | Integrated development environment information sharing for authentication provisioning | |
US20090271493A1 (en) | System and Apparatus for Managing Social Networking and Loyalty Program Data | |
CN102306117B (zh) | 一种硬件检测自动报警的方法及装置 | |
CN105956474A (zh) | Android平台软件异常行为检测系统 | |
CN104995630A (zh) | 基于动态污点的安全性扫描 | |
TW201610735A (zh) | 利用運行期代理器及動態安全分析之應用程式逐點保護技術 | |
Berger et al. | Extracting and analyzing the implemented security architecture of business applications | |
EP3176719B1 (en) | Methods and devices for acquiring certification document | |
CN112738138B (zh) | 云安全托管方法、装置、设备及存储介质 | |
US11709759B2 (en) | Contextual drill back to source code and other resources from log data | |
CN112671605A (zh) | 一种测试方法、装置及电子设备 | |
WO2022127743A1 (zh) | 内容显示方法及终端设备 | |
WO2022247226A1 (zh) | 一种小程序监控方法及装置 | |
US20170249685A1 (en) | System and method for communicating with retail customers with a sustainability standard | |
CN111488580A (zh) | 安全隐患检测方法、装置、电子设备及计算机可读介质 | |
CN111666581A (zh) | 数据保护方法、装置、设备及介质 | |
CN111651766A (zh) | 越权访问的测试方法及装置 | |
US11316843B1 (en) | Systems for authenticating users from a separate user interface | |
Bunke et al. | Towards supporting software assurance assessments by detecting security patterns | |
CN114121049B (zh) | 一种数据处理方法、装置以及存储介质 | |
JP2014123298A (ja) | 情報管理プログラム及び情報管理方法 | |
US20220350641A1 (en) | Securely cascading pipelines to various platforms based on targeting input |