欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

測試軟件的方法和設備的制作方法

文檔序號:6502268閱讀:538來源:國知局
測試軟件的方法和設備的制作方法
【專利摘要】本發(fā)明公開了一種測試軟件的方法和設備。所述方法包括:監(jiān)視在軟件測試實例中是否發(fā)生預定義的事件;響應于發(fā)生預定義的事件,根據(jù)該事件的性質生成軟件測試實例的不同類型的快照,所述快照用于記錄發(fā)生所述預定義的事件時的軟件測試實例的狀態(tài);以及在與所述預定義的事件相關的信息中存儲所述不同類型的快照。通過所述設備和方法,測試者能夠正確地監(jiān)視并反饋測試結果,開發(fā)者能夠迅速再現(xiàn)軟件測試實例的狀態(tài),并且定位和修改軟件中存在的缺陷,而管理者能夠及時掌握測試進度,從而加快了“測試-發(fā)生事件-產(chǎn)生快照-定位和修復問題-測試”的測試流程,提高了測試效率。
【專利說明】測試軟件的方法和設備

【技術領域】
[0001] 本發(fā)明涉及軟件測試領域,更具體地涉及一種測試軟件的方法和設備。

【背景技術】
[0002] 在軟件編寫完成之后,為了確定軟件的正確性和穩(wěn)定性等,需要進行軟件測試。在 測試期間,測試者記錄發(fā)生的各種問題(例如由于測試結果與預期結果不一致導致的各種 異常以及各種嚴重或不嚴重的錯誤等),并且將這些問題報告給軟件的管理者(例如項目經(jīng) 理)和開發(fā)者,使得管理者能夠了解軟件測試的進度和狀態(tài),并且開發(fā)者能夠根據(jù)所述問題 修改軟件以消除其缺陷。
[0003] 目前,測試者向管理者和開發(fā)者直接地口頭報告所發(fā)現(xiàn)的問題,或者通過項目管 理工具間接地書面報告所發(fā)現(xiàn)的問題。然而,在某些測試場景中,例如在諸如黑盒測試之類 的復雜測試場景中,測試者對問題的描述可能并不全面和準確,使得管理者不能準確地掌 握測試進度和狀態(tài),同時開發(fā)者也不能準確地了解所出現(xiàn)的問題并且再現(xiàn)該問題出現(xiàn)的場 景,導致不能完美地修改軟件以消除其中存在的缺陷。


【發(fā)明內容】

[0004] 為了解決上述問題,本發(fā)明的一個目的是提供一種測試軟件的方法和設備,其使 得測試者能夠準確地記錄和反饋軟件測試期間出現(xiàn)的問題以及出現(xiàn)該問題時的測試環(huán)境, 從而開發(fā)者能夠容易地了解和再現(xiàn)所述問題出現(xiàn)的場景以準確地消除軟件中存在的缺陷。
[0005] 根據(jù)本發(fā)明的一個方面,提供了一種測試軟件的方法,包括:監(jiān)視在軟件測試實 例中是否發(fā)生預定義的事件;響應于發(fā)生預定義的事件,根據(jù)該事件的性質生成軟件測試 實例的不同類型的快照,所述快照用于記錄發(fā)生所述預定義的事件時的軟件測試實例的狀 態(tài);以及在與所述預定義的事件相關的信息中存儲所述不同類型的快照。
[0006] 根據(jù)本發(fā)明的另一個方面,提供了一種測試軟件的設備,包括:監(jiān)視裝置,被配置 為監(jiān)視在軟件測試實例中是否發(fā)生預定義的事件;快照裝置,被配置為響應于發(fā)生預定義 的事件,根據(jù)該事件的性質生成軟件測試實例的不同類型的快照,所述快照用于記錄發(fā)生 所述預定義的事件時的軟件測試實例的狀態(tài);以及存儲裝置,被配置為在與所述預定義的 事件相關的信息中存儲所述不同類型的快照。
[0007] 利用根據(jù)本發(fā)明上述方面的方法和系統(tǒng),在軟件測試期間,當在軟件測試實例中 發(fā)生諸如異?;蝈e誤之類的事件時,根據(jù)該問題的性質(例如,嚴重性),產(chǎn)生軟件測試實例 的不同類型的快照,使得測試者可以準確地記錄并反饋所述事件,由此開發(fā)者可以基于所 述快照迅速地再現(xiàn)發(fā)生所述事件的場景,從而準確地定位并修復軟件中存在的缺陷。

【專利附圖】

【附圖說明】
[0008] 通過結合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其 它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號 通常代表相同部件。
[0009] 圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務器12的框 圖。
[0010] 圖2示意性地示出了指導文件的內容。
[0011] 圖3是示出根據(jù)本發(fā)明實施例的測試軟件的方法的流程圖。
[0012] 圖4示出了管理者的交互界面(S卩,管理者視圖)的示例。
[0013] 圖5示出了測試者的交互界面卿,測試者視圖)的示例。
[0014] 圖6示出了開發(fā)者的交互界面(S卩,開發(fā)者視圖)的示例。
[0015] 圖7示意性地示出當在軟件測試期間發(fā)生某種事件時測試者與開發(fā)者的工作流 程。
[0016] 圖8是示出根據(jù)本發(fā)明實施例的測試軟件的設備的框圖。
[0017] 圖9是示出圖8所示的監(jiān)視裝置的詳細結構的框圖。

【具體實施方式】
[0018] 下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開 的優(yōu)選實施方式,然而應該理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施方 式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠將本公開的 范圍完整地傳達給本領域的技術人員。
[0019] 所屬【技術領域】的技術人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。 因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括 固件、駐留軟件、微代碼等),還可以是硬件和軟件結合的形式,本文一般稱為"電路"、"模 塊"或"系統(tǒng)"。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質 中的計算機程序產(chǎn)品的形式,該計算機可讀介質中包含計算機可讀的程序代碼。
[0020] 可以采用一個或多個計算機可讀的介質的任意組合。計算機可讀介質可以是計 算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是--但不限 于--電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算 機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便 攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲 器(EPROM或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、 或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程 序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。
[0021] 計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號, 其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括一但 不限于一電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是 計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發(fā)送、傳播或者 傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用的程序。
[0022] 計算機可讀介質上包含的程序代碼可以用任何適當?shù)慕橘|傳輸,包括--但不限 于--無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0023] 可以以一種或多種程序設計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機 程序代碼,所述程序設計語言包括面向對象的程序設計語言一諸如Java、Smalltalk、C++, 還包括常規(guī)的過程式程序設計語言一諸如" C"語言或類似的程序設計語言。程序代碼可以 完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部 分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在 涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡--包括局域網(wǎng)(LAN)或 廣域網(wǎng)(WAN)-連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務提 供商來通過因特網(wǎng)連接)。
[0024] 下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或 框圖描述本發(fā)明。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方 框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專 用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種虛擬機,這些計算機程序 指令通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框 中規(guī)定的功能/操作的裝置。
[0025] 也可以把這些計算機程序指令存儲在能使得計算機或其它可編程數(shù)據(jù)處理裝置 以特定方式工作的計算機可讀介質中,這樣,存儲在計算機可讀介質中的指令就產(chǎn)生出一 個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruction means)的制造品(manufacture)。
[0026] 也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設備 上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設備上執(zhí)行一系列操作步驟,以產(chǎn)生計 算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖 和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0027] 圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務器12的框 圖。圖1顯示的計算機系統(tǒng)/服務器12僅僅是一個示例,不應對本發(fā)明實施例的功能和使 用范圍帶來任何限制。
[0028] 如圖1所示,計算機系統(tǒng)/服務器12以通用計算設備的形式表現(xiàn)。計算機系統(tǒng) /服務器12的組件可以包括但不限于:一個或者多個處理器或者處理單元16,系統(tǒng)存儲器 28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0029] 總線18表示幾類總線結構中的一種或多種,包括存儲器總線或者存儲器控制器, 外圍總線,圖形加速端口,處理器或者使用多種總線結構中的任意總線結構的局域總線。舉 例來說,這些體系結構包括但不限于工業(yè)標準體系結構(ISA)總線,微通道體系結構(MAC) 總線,增強型ISA總線、視頻電子標準協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0030] 計算機系統(tǒng)/服務器12典型地包括多種計算機系統(tǒng)可讀介質。這些介質可以是 任何能夠被計算機系統(tǒng)/服務器12訪問的可用介質,包括易失性和非易失性介質,可遷移 的和不可遷移的介質。
[0031] 系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質,例如隨機存 取存儲器(RAM)30和/或高速緩存存儲器32。計算機系統(tǒng)/服務器12可以進一步包括其 它可遷移/不可遷移的、易失性/非易失性計算機系統(tǒng)存儲介質。僅作為舉例,存儲系統(tǒng)34 可以用于讀寫不可遷移的、非易失性磁介質(圖1未顯示,通常稱為"硬盤驅動器")。盡管圖 1中未示出,可以提供用于對可遷移非易失性磁盤(例如"軟盤")讀寫的磁盤驅動器,以及對 可遷移非易失性光盤(例如CD-ROM,DVD-ROM或者其它光介質)讀寫的光盤驅動器。在這些 情況下,每個驅動器可以通過一個或者多個數(shù)據(jù)介質接口與總線18相連。存儲器28可以 包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被 配置以執(zhí)行本發(fā)明各實施例的功能。
[0032] 具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在例如存儲器 28中,這樣的程序模塊42包括--但不限于--操作系統(tǒng)、一個或者多個應用程序、其它 程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡環(huán)境的實現(xiàn)。程 序模塊42通常執(zhí)行本發(fā)明所描述的實施例中的功能和/或方法。
[0033] 計算機系統(tǒng)/服務器12也可以與一個或多個外部設備14 (例如鍵盤、指向設備、 顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統(tǒng)/服務器12交互的設 備通信,和/或與使得該計算機系統(tǒng)/服務器12能與一個或多個其它計算設備進行通信的 任何設備(例如網(wǎng)卡,調制解調器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22 進行。并且,計算機系統(tǒng)/服務器12還可以通過網(wǎng)絡適配器20與一個或者多個網(wǎng)絡(例如 局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡,例如因特網(wǎng))通信。如圖所示,網(wǎng)絡適配器20 通過總線18與計算機系統(tǒng)/服務器12的其它模塊通信。應當明白,盡管圖中未示出,可以 結合計算機系統(tǒng)/服務器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設備驅 動器、冗余處理單元、外部磁盤驅動陣列、RAID系統(tǒng)、磁帶驅動器以及數(shù)據(jù)備份存儲系統(tǒng)等。 [0034] 下面,將參照附圖來描述根據(jù)本發(fā)明實施例的測試軟件的方法和設備。
[0035] 在軟件編寫完成之后,可以在安裝有操作系統(tǒng)的計算機(物理機或虛擬機)上測試 該軟件,以檢驗在軟件中是否存在缺陷。如果在軟件中存在缺陷,則在測試過程中會發(fā)生各 種事件,例如異常、錯誤、或者其他類型的問題。在本發(fā)明的實施例中,可以響應于所述事件 的發(fā)生而產(chǎn)生軟件測試實例的不同類型的快照,并且將與該事件相關的信息以分級的方式 顯示在為軟件的管理者、開發(fā)者和測試者三者中的至少兩者提供的交互界面上,使得測試 者能夠準確地記錄并反饋軟件測試期間發(fā)生的問題,開發(fā)者能夠根據(jù)該快照迅速地再現(xiàn)發(fā) 生所述事件時的軟件測試實例,從而修改軟件以消除其中的缺陷,而管理者能夠及時掌握 測試進度,從而提高軟件測試的效率。所述交互界面可以采用網(wǎng)頁的形式,或者可以采用根 據(jù)需要選擇的任何其他形式。
[0036] 軟件的管理者負責組織對該軟件的測試工作。具體地,管理者制定軟件的測試計 劃,例如測試時間表等,并且指定測試時應當使用的測試用例。管理者可以通過其交互界面 來輸入軟件測試計劃,并且將測試任務分配給測試者和開發(fā)者。
[0037] 管理者指定的測試用例描述了軟件測試的測試目標、測試場景、測試步驟、預期測 試結果等。在自動測試的情況下,可以通過例如解析引擎分析所述測試用例,以生成機器可 讀的指導文件以供計算機執(zhí)行。通過解析引擎分析測試用例并且生成指導文件的方法是本 領域公知的,在這里省略其描述。所生成的指導文件可以被部署到操作系統(tǒng)中,以便通過執(zhí) 行該指導文件來執(zhí)行軟件測試。在手動測試的情況下,可以不生成所述指導文件,而是由測 試者手動執(zhí)行所述測試步驟。在下文中,以自動測試的情況為例來描述本發(fā)明的實施例。
[0038] 指導文件可以包含測試需要的信息。圖2示意性地示出了指導文件的內容。如圖 2所示,指導文件可以包含測試步驟,即根據(jù)測試用例確定的在進行軟件測試時需要遵循的 步驟。由于軟件可以包括多個模塊,因此,指導文件還可以指定在軟件測試時要調用的所述 軟件的一個或多個模塊,以測試這些模塊是否正確。相應地,指導文件可以指定對于每個模 塊期望獲得的預期執(zhí)行結果(預期值)。此外,指導文件還可以包括描述該指導文件的基本 信息的屬性信息,所述基本信息例如可以包括該指導文件的部署環(huán)境、版本信息等。
[0039] 如圖2所示,指導文件還可以定義一個或多個快照觸發(fā)器(snapshot trigger), 用于觸發(fā)產(chǎn)生軟件測試實例的一種或多種類型的快照的操作。具體地,每個快照觸發(fā)器可 以定義一個觸發(fā)條件和相應類型的快照產(chǎn)生操作,使得當滿足該觸發(fā)條件時,通過調用該 快照觸發(fā)器,可以觸發(fā)產(chǎn)生軟件測試實例的對應類型的快照的操作。在本發(fā)明的實施例中, 可以根據(jù)在測試期間發(fā)生的事件的性質來定義不同的快照觸發(fā)器。例如,通過調用不同的 觸發(fā)器,對于具有第一性質的事件,可以產(chǎn)生軟件測試實例的多個快照,而對于具有第二性 質的事件,可以產(chǎn)生軟件測試實例的單個快照。所述事件的性質可以包括事件的嚴重性、事 件發(fā)生的次數(shù)以及所述事件本身的類型、或者所述事件的其他性質。例如,在所述事件的性 質是事件的嚴重性的情況下,可以將事件的嚴重性分為三個等級:第一嚴重性等級(例如, 嚴重)、第二嚴重性等級(例如,中等)和第三嚴重性等級(例如輕微)。相應地,可以在指導文 件中定義兩個快照觸發(fā)器。第一個快照觸發(fā)器以嚴重性達到第一嚴重性等級為觸發(fā)條件, 通過調用該快照觸發(fā)器,可以對于第一嚴重性等級的事件,觸發(fā)產(chǎn)生軟件測試實例的多個 快照的操作。第二個快照觸發(fā)器以嚴重性達到第二嚴重性等級為觸發(fā)條件,通過調用該快 照觸發(fā)器,可以對于第二嚴重性等級的事件,觸發(fā)產(chǎn)生軟件測試實例的單個快照的操作。對 于輕微事件,可以不產(chǎn)生軟件測試實例的快照,因此可以不定義快照觸發(fā)器。例如,可以根 據(jù)所發(fā)生的事件是否影響軟件或模塊功能的實現(xiàn)和/或是否影響執(zhí)行結果的正確性來確 定其嚴重性等級,其中,當所述事件不會影響所述功能的實現(xiàn)和執(zhí)行結果的正確性時,可以 將該事件確定為第三嚴重性等級,當所述事件不影響所述功能的實現(xiàn)但是會影響執(zhí)行結果 的正確時,可以將該事件確定為第二嚴重性等級,當所述事件會導致所述功能不能實現(xiàn)時, 可以將該事件確定為第一嚴重性等級。在其他實施例中,確定事件的嚴重性等級的標準不 限于上述標準,而是可以是根據(jù)實際需要選擇的任何其他標準,此外,可以將事件的嚴重性 分為更多或更少的等級,并且在指導文件中定義相應類型的快照觸發(fā)器。所述快照產(chǎn)生操 作的類型也不限于上文所述的兩種類型,而是也可以是根據(jù)實際需要設定的其他類型,例 如連續(xù)產(chǎn)生多個快照的操作和間歇地產(chǎn)生多個快照的操作等等。
[0040] 測試者經(jīng)由其交互界面接收管理者分配的任務,并且執(zhí)行測試操作。具體地,測試 者可以將要測試的軟件安裝在操作系統(tǒng)中,從而初始化一個測試實例。此時,可以拍攝該測 試實例的快照,作為軟件測試的起點。此時拍攝的快照記錄了軟件測試實例的當前狀態(tài),例 如當前執(zhí)行的軟件測試步驟、軟件/模塊中的相關變量/參數(shù)的狀態(tài)或值等。該快照可以 采用根據(jù)實際需要選擇的任何形式。例如,當在虛擬機上創(chuàng)建軟件測試實例從而執(zhí)行軟件 測試時,所述快照可以是數(shù)據(jù)文件,該數(shù)據(jù)文件可以包括指示拍攝該快照時執(zhí)行的軟件測 試步驟的信息、以及此時運行所述軟件測試實例的虛擬機的盤鏡像文件等。在其他情況下, 該快照也可以采用屏幕截圖的形式,在該屏幕截圖中記錄指示軟件測試實例的當前狀態(tài)的 信息。該快照可以被存儲在快照庫中。產(chǎn)生測試實例的快照的方法是本領域公知的,在這 里不再贅述。如下文所述,可以通過快照裝置來產(chǎn)生所述快照。
[0041] 在完成準備工作之后,可以開始軟件測試。下面,將參照圖3來描述根據(jù)本發(fā)明實 施例的測試軟件的方法。如上文所述,以自動測試為例來描述該方法。
[0042] 如圖3所示,在步驟S301,監(jiān)視在軟件測試實例中是否發(fā)生預定義的事件。如上文 所述,所述事件可以是異常、錯誤或者其他類型的事件,在下文中,以異常作為所述事件的 示例??梢酝ㄟ^在被測試的軟件中安裝監(jiān)視插件來執(zhí)行這一監(jiān)視操作,該監(jiān)視插件基于編 程語言框架,使得該插件可以獨立于軟件的模塊。這樣,可以在測試開始時將該插件安裝到 軟件中以便在被激活時執(zhí)行上述監(jiān)視操作,而不需要修改軟件本身的代碼,并且在軟件測 試結束之后卸載該插件。
[0043] 如上文所述,可以通過執(zhí)行指導文件中給出的各個測試步驟來測試所述軟件。在 執(zhí)行所述測試步驟期間,將調用在指導文件中指定的一個或多個模塊,并且輸出執(zhí)行結果 (實際執(zhí)行結果)??梢酝ㄟ^分析所述實際執(zhí)行結果來監(jiān)視在軟件測試實例中是否發(fā)生預定 義的事件。
[0044] 具體地,當根據(jù)測試步驟調用軟件的某個模塊時,該模塊將執(zhí)行測試步驟指定的 操作,并且輸出實際執(zhí)行結果??梢越邮赵搶嶋H執(zhí)行結果,并且將其與在指導文件中對于該 模塊指定的預期執(zhí)行結果進行比較,以確定二者是否一致,從而監(jiān)視在軟件測試實例中發(fā) 生的事件。如果實際執(zhí)行結果與預期執(zhí)行結果一致,則實際執(zhí)行結果是正確的,即,沒有發(fā) 生"異常"事件。反之,如果實際執(zhí)行結果與預期執(zhí)行結果不一致,則該實際執(zhí)行結果是錯誤 的,即,在軟件測試期間發(fā)生了"異常"事件。在這里,可以在實際執(zhí)行結果與預期執(zhí)行結果 相同時,確定它們是一致的,否則確定它們不一致。可替換地,可以在實際執(zhí)行結果相對于 預期執(zhí)行結果的偏差小于預定的可接受范圍時,確定它們是一致的,否則確定它們不一致。 [0045] 當確定發(fā)生"異常"事件時,可以記錄與該事件相關聯(lián)的軟件的模塊以及其中的類 和/或函數(shù)以供以后使用。例如,如果在調用某個模塊時發(fā)生"異常"事件,可以以消息的 形式來記錄該事件,該消息可以采用下表1所示的格式。
[0046] 表 1
[0047] 事件名稱函數(shù)名稱類名稱 輸入 輸出 ... 結果 異常1 H A XI Y1 ... 不一致
[0048] 在表1中,"事件名稱"表示在調用所述模塊時發(fā)生的事件的名稱,"函數(shù)名稱"表 示與該事件相關聯(lián)的所述模塊的函數(shù),"類名稱"表示與該事件相關聯(lián)的所述模塊的類,"輸 入值"表示在調用該模塊時對于該模塊的輸入值,"輸出值"表示通過調用該模塊獲得的輸 出值,"結果"表示所述輸出值與預期執(zhí)行結果的比較結果。通過這樣的消息,可以將所發(fā)生 的"異常"事件與軟件的各個組件(模塊/類/函數(shù))相關聯(lián)。
[0049] 然后,可以確定所發(fā)生的事件是否已經(jīng)被預先記錄在事件庫中。具體地,可以將該 事件與在事件庫中預先存儲的各個事件進行匹配,以確定該事件是否是在事件庫中預定義 的事件。事件庫是例如由測試者預先建立的數(shù)據(jù)庫,其存儲在軟件測試期間可能出現(xiàn)的各 種類型的事件作為其條目。例如,在所述事件為"異常"的情況下,可以將該"異常"與事件 庫中預先存儲的各種"異常"進行匹配,以確定該"異常"是否是預定義的"異常"。
[0050] 如果在事件庫中不存在與所發(fā)生的事件匹配的條目,則所發(fā)生的事件不是預定義 的事件,在這種情況下,可以忽略該事件,或者可以將該事件記錄在候選事件庫中,然后將 其選擇性地添加到上述事件庫中,以便在以后的測試中使用。如稍后詳細描述的,可以通過 自學習過程將所述事件選擇性地添加到事件庫中。
[0051] 另一方面,如果在事件庫中存在與所發(fā)生的事件匹配的條目,則可以確定所發(fā)生 的事件是預定義的事件。接下來,在步驟S302,響應于發(fā)生該預定義的事件,根據(jù)該事件的 性質而產(chǎn)生軟件測試實例的不同類型的快照。所述快照用于記錄發(fā)生所述預定義的事件時 的軟件測試實例的狀態(tài)。
[0052] 如上文所述,在本發(fā)明的實施例中,所述事件的性質可以包括事件的嚴重性、事件 發(fā)生的次數(shù)以及所述事件本身的類型、或者所述事件的其他性質。例如,在所述事件的性質 是事件的嚴重性的情況下,可以將事件的嚴重性分為三個等級:第一嚴重性等級(例如,嚴 重)、第二嚴重性等級(例如,中等)和第三嚴重性等級(例如輕微)。劃分嚴重性等級的標準 可以根據(jù)實際需要靈活地設定。當確定發(fā)生預定義的事件時,可以根據(jù)所述標準確定該事 件的嚴重性等級,然后根據(jù)該嚴重性等級,通過調用指導文件中的相應的快照觸發(fā)器來產(chǎn) 生軟件測試實例的不同類型的快照。具體地,對于第一嚴重性等級的事件,可以執(zhí)行第一類 型的快照產(chǎn)生操作,例如產(chǎn)生對于軟件測試實例的多個快照,例如在發(fā)生所述事件的時間 點前后的多個時間點處的軟件測試實例的多個快照。對于第二嚴重性等級的事件,可以執(zhí) 行第二類型的快照產(chǎn)生操作,例如產(chǎn)生對于軟件測試實例的單個快照。對于第三嚴重性等 級的事件,可以不執(zhí)行快照產(chǎn)生操作。在這里,響應于發(fā)生預定義的事件而拍攝的快照可以 采用根據(jù)實際需要選擇的任何形式。例如,當所述軟件測試實例在虛擬機上運行以執(zhí)行軟 件測試時,所述快照可以是數(shù)據(jù)文件,該數(shù)據(jù)文件可以包括指示發(fā)生預定義的事件時執(zhí)行 的軟件測試步驟的信息、以及發(fā)生預定義的事件時該虛擬機的盤鏡像文件。在其他情況下, 該快照可以采用屏幕截圖的形式,在該屏幕截圖中記錄指示發(fā)生預定義的事件時軟件測試 實例的當前狀態(tài)的信息。此外,所述嚴重性等級不限于上述三種,并且所執(zhí)行的快照產(chǎn)生操 作的類型也不限于上述兩種。
[0053] 這樣,通過在發(fā)生預定義的事件(例如異?;蝈e誤)時產(chǎn)生軟件測試實例的快照, 可以及時準確地記錄發(fā)生該事件時的軟件測試實例的狀態(tài),例如正在執(zhí)行的測試步驟、軟 件中的各函數(shù)/變量的狀態(tài)或值等,使得開發(fā)者可以根據(jù)該快照迅速地恢復發(fā)生所述事件 時的場景(即,軟件測試實例的狀態(tài)),從而定位和解決軟件中的缺陷。此外,通過根據(jù)所發(fā) 生的事件的性質產(chǎn)生不同類型的快照,可以使所產(chǎn)生的快照更充分地反映所述事件發(fā)生的 背景。例如,當在軟件測試過程中發(fā)生嚴重事件時,通過分析發(fā)生所述事件的時間點前后的 多個時間點處的軟件測試實例的多個快照,可以更清楚地了解該事件的整個發(fā)生過程,從 而準確地定位和解決軟件中存在的缺陷。
[0054] 接下來,在步驟S303中,在與所述預定義的事件相關的信息中存儲所述不同類型 的快照。
[0055] 在發(fā)生所述預定義的事件之后,可以存儲與所述預定義的事件相關的信息,以便 在適當?shù)臅r候呈現(xiàn)給測試者、開發(fā)者和管理者。為此,可以在與所述預定義的事件相關的信 息中存儲所述不同類型的快照。除了所述快照以外,還可以在與所述預定義的事件相關的 信息中存儲根據(jù)需要選擇的其他信息,例如指示發(fā)生了所述事件的信息、所述事件的內容、 與所述事件相關聯(lián)的軟件的模塊和代碼等,例如稍后參照圖4-6描述的信息??梢砸远喾N 方式存儲所述預定義的事件相關的信息。例如,可以將該信息與所述快照相關聯(lián)地存儲在 快照庫中,或者可以將該信息存儲在單獨的數(shù)據(jù)庫(例如事件庫)中,而且,可以用任何適當 格式的數(shù)據(jù)文件來存儲該信息。
[0056] 在本發(fā)明的實施例中,還可以以分級的方式,在軟件的開發(fā)者、測試者和管理者三 者中的至少兩者的交互界面上顯示與所述預定義的事件相關的信息。
[0057] 具體地,如上文所述,可以為軟件的開發(fā)者、測試者和管理者提供交互界面。當在 步驟S301中檢測到諸如異常、錯誤之類的事件的發(fā)生時,可以以分級的方式,在軟件的開 發(fā)者、測試者和管理者三者中的至少兩者的交互界面上顯示與所述預定義的事件相關的信 息,即,根據(jù)三者的不同角色,將與所述預定義的事件相關的不同信息顯示在軟件的開發(fā) 者、測試者和管理者的交互界面上,從而以分級的方式將所述事件報告給開發(fā)者、測試者和 管理者。此外,隨著軟件測試的進行,還可以經(jīng)由所述交互界面將測試進度可視化地呈現(xiàn)給 管理者,使得管理者容易地掌握測試進度。
[0058] 圖4示出了管理者的交互界面的示例。在管理者的交互界面上,除了用于輸入軟 件測試計劃和分配測試任務的內容(未示出)以外,還可以顯示管理者指定的各個測試用例 的進度。如圖4所示,在管理者的交互界面上,可以顯示管理者指定的多個測試用例(在圖4 中示出4個)以及每個測試用例的測試步驟(在圖4中,對于測試用例1 一 4,分別示出測試 步驟1 一 nl、l-n2、l-n3和1-η4)??梢杂弥庇^的方式來顯示所述測試用例及其操作步驟。 在圖4所示的示例中,用圓圈表示每個測試用例的測試步驟。在管理者的交互界面上,還可 以以多種方式直觀地顯示測試的進度。在圖4所示的示例中,可以用小圓圈表示已經(jīng)完成 的測試步驟,用大圓圈表示尚未完成的測試步驟。此外,可以用圓圈的顏色表示在執(zhí)行測試 步驟時是否出現(xiàn)問題。例如,當在執(zhí)行某個測試步驟期間發(fā)生上文所述的事件時,可以將該 測試步驟所對應的圓圈從白色改變?yōu)榛疑?例如測試用例1的步驟3和測試用例3的步驟 5),以便向管理者傳達這一情況。此外,當一個測試用例的某個測試步驟的完成是執(zhí)行另一 測試用例的某個測試步驟的前提時,如果作為前提的測試步驟由于發(fā)生所述事件而未能完 成,則除了將表示該測試步驟的圓圈改為灰色以外,還可以將表示所述另一測試用例的對 應測試步驟的圓圈修改為灰色。在圖4的示例中,由于測試用例2的測試步驟1的執(zhí)行以測 試用例1的測試步驟3的完成為前提,測試用例1的測試步驟4的執(zhí)行以測試用例3的測 試步驟5的完成為前提,而在測試用例1的測試步驟3和測試用例3的測試步驟5為由于 發(fā)生了上述事件而未能完成,因此,測試用例2的測試步驟1和測試用例1的測試步驟4所 對應的圓圈也呈現(xiàn)灰色。通過圖4所示的交互界面,管理者可以容易地了解到已經(jīng)完成測 試的測試用例(測試用例4)、發(fā)生問題的測試用例(測試用例1 一 3)以及發(fā)生問題的具體測 試步驟,從而從整體上掌握軟件測試進度。應當注意,圖4所示的交互界面只是示例性的, 也可以采用任何其他形式的交互界面,只要該交互界面可以向管理者清楚地呈現(xiàn)上述信息 即可。例如,可以采用除了圓圈以外的其他圖形來表示測試步驟,并且可以用不同的顏色來 表示測試步驟是否完成以及是否發(fā)生問題。
[0059] 圖5示出了測試者的交互界面的示例。如圖5所示,在該交互界面上,除了圖4 所示的內容以外,可以顯示更多與測試有關的內容。具體地,在測試者的交互界面上,還可 以顯示測試者負責的測試用例("我的測試用例")、所述測試用例對應的測試實例("測試實 例")及其狀態(tài)("完成")、基于測試實例進行測試期間發(fā)生的事件("事件")等等。此外,還可 以在該交互界面上顯示每個測試用例對應的指導文件("指導文件"),使得測試者能夠在必 要時修改所述指導文件。例如,測試者可以通過稍后描述的自學習過程修改指導文件。通 過顯示這些信息,測試者可以了解他所負責的每個測試用例的進度,從而可以合理地安排 他的工作,以免在不能執(zhí)行的測試用例上浪費時間。
[0060] 圖6示出了開發(fā)者的交互界面的示例。如圖6所示,在該交互界面上,可以顯示在 軟件測試期間發(fā)生的事件(異常或錯誤)、發(fā)生所述事件的測試用例、該測試用例對應的指 導文件和測試實例。此外,還可以在開發(fā)者的交互界面上顯示與所述事件相關聯(lián)的軟件的 模塊以及該模塊的代碼。如在上文中參照表1所述,在發(fā)生所述事件時記錄與該事件相關 的信息,可以通過分析這些信息來確定并且顯示與所述事件相關聯(lián)的軟件的模塊,并且相 應地顯示所述模塊的代碼。也就是說,當發(fā)生所述事件時,與該事件相關的軟件模塊及其代 碼可以被自動地顯示在開發(fā)者的交互界面上,使得開發(fā)者能夠很容易地定位存在缺陷的模 塊和代碼,從而提高其工作效率。
[0061] 下面描述根據(jù)本發(fā)明實施例的自學習過程。如上文所述,當在步驟S301中確定所 發(fā)生的事件不是預定義的事件時,可以將該事件記錄在候選事件庫中。然后,例如在測試完 成之后,可以評估候選事件庫中的事件,以便將所述事件選擇性地添加到事件庫中以供以 后的測試使用,從而進行事件庫的自學習??梢愿鶕?jù)預定的標準來評估所述事件,以確定是 否有必要將該事件添加到事件庫中。所述標準可以是根據(jù)實際需要預先選擇的任何適當?shù)?標準。例如,所述標準可以是該事件是否會影響軟件功能的實現(xiàn)、或者該事件是否會導致軟 件無法運行等等。例如,如果該事件會影響軟件功能的實現(xiàn),則可以將該事件添加到事件庫 中,反之則可以忽略該事件。這樣,在以后的測試中,當發(fā)生該事件時,可以執(zhí)行對應的快照 產(chǎn)生操作,以記錄此時的軟件測試實例的狀態(tài)。
[0062] 此外,還可以根據(jù)在測試期間發(fā)生的所述非預定義的事件來修改指導文件。如本 領域所知,如果指導文件撰寫不當,例如指導文件中的測試步驟設置不合理,可能會導致在 軟件測試期間發(fā)生諸如異?;蝈e誤之類的未預料到的事件(或問題)。因此,可以分析所發(fā) 生的非預定義的事件,確定該事件發(fā)生的原因,如果該事件是由于指導文件不適當導致的, 則可以修改指導文件。可以由測試者或開發(fā)者例如使用下文所述的提取裝置進行這一修 改。
[0063] 在本發(fā)明的實施例中,測試者和開發(fā)者可以在軟件測試期間更緊密地合作。圖7 示意性地示出了當在軟件測試期間發(fā)生諸如異?;蝈e誤之類的事件時測試者與開發(fā)者的 工作流程。
[0064] 如圖7所示,假設在使用測試用例3測試軟件期間,在執(zhí)行測試步驟5時發(fā)生"異 常"事件。測試者將與該"異常"事件有關的信息以及發(fā)生該事件時的測試實例的快照經(jīng) 由測試者的交互界面發(fā)送給開發(fā)者。如上文所述,在必要時,測試者可以修改該測試用例的 指導文件。開發(fā)者經(jīng)由其交互界面接收測試者發(fā)送的上述信息和快照件,并且基于該信息 和快照定位并修正軟件中存在缺陷的模塊(例如模塊1和5),然后將修正后的測試實例返 回給測試者,使得測試者基于該測試實例重新進行基于測試用例3的軟件測試,以確認開 發(fā)者是否確實消除了軟件中的缺陷,并且向管理者報告測試結果。此外,在必要時,開發(fā)者 也可以修改該測試用例的指導文件,并且將修改后的指導文件提供給測試者以用于軟件測 試。顯然,通過這樣的工作循環(huán),測試者和開發(fā)者的工作流程可以被無縫地連接,從而使軟 件測試工作更高效。
[0065] 此外,通過根據(jù)本發(fā)明實施例的方法,管理者可以更方便地控制軟件測試進程和 調整軟件測試計劃。如上文所述,管理者可以通過其交互界面制定軟件測試計劃,并且將測 試任務分配給測試者,以開始軟件測試。當發(fā)生諸如異?;蝈e誤之類的事件時,該事件可以 通過例如嵌入軟件中的監(jiān)視插件而被迅速通知給管理者,使得管理者可以及時了解軟件測 試出現(xiàn)的問題,從而安排開發(fā)者處理該問題和/或調整測試計劃。這種雙向交互過程進一 步提高了軟件測試的效率。
[0066] 這樣,通過本發(fā)明的方法,軟件的開發(fā)者、測試者和管理者被緊密地關聯(lián)起來。具 體地,由于在發(fā)生預定義的事件時產(chǎn)生軟件測試實例的快照,并且將與該預定義的事件相 關的信息以分級的方式呈現(xiàn)在開發(fā)者、測試者和管理者三者中的至少兩者的視圖上,因此, 測試者能夠正確地監(jiān)視并反饋測試結果,開發(fā)者能夠容易地定位和修改軟件中存在的缺 陷,而管理者能夠及時掌握測試進度,從而加快了 "測試一發(fā)生事件一產(chǎn)生快照一定位和修 復問題一測試"的測試流程,提高了測試效率。在本發(fā)明的實施例中,還可以建立快照庫, 以便將初始化測試實例時產(chǎn)生的快照、以及在后續(xù)的軟件測試過程中產(chǎn)生的快照或包括所 述快照的、與所述預定義的事件相關的信息存儲在快照庫中。這樣,在必要時,可以從快照 庫中取出相關的快照或與所述預定義的事件相關的信息,從而恢復相應的測試實例。此外, 還可以建立測試實例庫,以便將不同進度的測試實例保存在其中,例如,當某個測試者基于 第一測試用例進行的軟件測試通過之后,可以將此時的測試實例保存在測試實例庫中。這 樣,當其他測試者使用以該第一測試用例為基礎的第二測試用例測試軟件時,可以從測試 實例庫中提取完成了第一測試用例的測試實例,并且在此測試用例的基礎上繼續(xù)測試所述 軟件,而不需要重新執(zhí)行基于第一測試用例的軟件測試,從而加快測試速度。
[0067] 下面,將參照圖8來描述根據(jù)本發(fā)明實施例的測試軟件的設備。該設備可以執(zhí)行 上文所述的方法。
[0068] 如圖8所示,根據(jù)本發(fā)明實施例的測試軟件的設備80可以包括顯示裝置81、監(jiān)視 裝置82、快照裝置83、存儲裝置84。優(yōu)選地,設備80還可以包括提取裝置85。
[0069] 顯示裝置81可以分別向軟件的管理者、測試者和開發(fā)者呈現(xiàn)上文所述的交互界 面,使得這三者可以經(jīng)由交互界面來彼此協(xié)作。
[0070] 監(jiān)視裝置82監(jiān)視在軟件測試實例中是否發(fā)生預定義的事件。如上文所述,所述事 件可以是異常、錯誤或者其他類型的事件。如上文所述,監(jiān)視裝置81可以被實現(xiàn)為監(jiān)視插 件,該監(jiān)視插件基于編程語言框架,使得該插件可以獨立于軟件的模塊,并且可以在軟件開 始時安裝到軟件中,以便在被激活時執(zhí)行上述監(jiān)視操作,或者可以被實現(xiàn)為獨立于該軟件 并且監(jiān)視該軟件的運行的硬件。
[0071] 圖9示出了監(jiān)視裝置82的詳細結構。如圖9所示,監(jiān)視裝置82包括監(jiān)視單元821 和確定單元822。
[0072] 監(jiān)視單元821監(jiān)視在軟件測試實例中發(fā)生的事件,例如異?;蝈e誤等。
[0073] 如上文所述,通過執(zhí)行指導文件中給出的各個測試步驟來測試所述軟件。在執(zhí)行 所述測試步驟期間,將調用在指導文件中指定的模塊,并且輸出實際執(zhí)行結果。監(jiān)視單元 821可以接收通過所述模塊獲得的實際執(zhí)行結果,并且將其與在指導文件中對于該模塊指 定的預期執(zhí)行結果進行比較,以確定二者是否一致。如果實際執(zhí)行結果與預期執(zhí)行結果一 致,則監(jiān)視單元821可以確定沒有發(fā)生所述事件。反之,如果實際執(zhí)行結果與預期執(zhí)行結果 不一致,則監(jiān)視單元821可以確定在軟件測試期間發(fā)生了所述事件。如上文所述,可以在實 際執(zhí)行結果與預期執(zhí)行結果相同時,或者在實際執(zhí)行結果相對于預期執(zhí)行結果的偏差小于 預定的可接受范圍時,確定它們是一致的。
[0074] 確定單元822確定監(jiān)視單元821檢測到的事件是否已經(jīng)被預先記錄在事件庫中, 并且響應于確定該事件已經(jīng)被預先記錄在事件庫中,將所述事件確定為預定義的事件。具 體地,確定單元821可以將該事件與在事件庫中預先存儲的各個事件進行匹配,以確定該 事件是否是在事件庫中預定義的事件。如果在事件庫中不存在與所發(fā)生的事件匹配的條 目,則確定單元822可以確定所發(fā)生的事件不是預定義的事件。在這種情況下,可以忽略該 事件,或者可以將該事件記錄在候選事件庫中,然后將其選擇性地添加到上述事件庫中,以 便在以后的測試中使用。另一方面,如果在事件庫中存在與所發(fā)生的事件匹配的條目,則確 定單元822可以確定所發(fā)生的事件是預定義的事件。
[0075] 快照裝置83響應于發(fā)生預定義的事件,根據(jù)該事件的性質而產(chǎn)生軟件測試實例 的不同類型的快照。所述快照用于記錄發(fā)生所述預定義的事件時的軟件測試實例的狀態(tài)。
[0076] 如上文所述,在本發(fā)明的實施例中,所述事件的性質可以包括事件的嚴重性、事件 發(fā)生的次數(shù)、所述事件本身的類型、或者所述事件的其他性質。相應地,快照裝置83對于具 有第一性質的事件,可以產(chǎn)生軟件測試實例的多個快照,而對于具有第二性質的事件,可以 產(chǎn)生軟件測試實例的單個快照。例如,在所述事件的性質是事件的嚴重性的情況下,可以將 事件的嚴重性分為三個等級:第一嚴重性等級(例如,嚴重)、第二嚴重性等級(例如,中等) 和第三嚴重性等級(例如輕微)。劃分嚴重性等級的標準可以根據(jù)實際需要靈活地設定。當 確定發(fā)生預定義的事件時,監(jiān)視裝置82可以根據(jù)所述標準確定該事件的嚴重性等級。然 后,快照裝置83根據(jù)該嚴重性等級,通過調用指導文件中的相應的快照觸發(fā)器來產(chǎn)生軟件 測試實例的不同類型的快照。具體地,對于第一嚴重性等級的事件,快照裝置83可以執(zhí)行 第一類型的快照產(chǎn)生操作,例如產(chǎn)生對于軟件測試實例的多個快照(例如在發(fā)生所述事件 的時間點前后的多個時間點處的軟件測試實例的多個快照)。對于第二嚴重性等級的事件, 快照裝置83可以執(zhí)行第二類型的快照產(chǎn)生操作,例如產(chǎn)生對于軟件測試實例的單個快照。 對于第三嚴重性等級的事件,快照裝置83可以不執(zhí)行快照產(chǎn)生操作。如上文所述,所述快 照可以采用根據(jù)實際需要選擇的任何形式,在這里不再贅述。此外,所述嚴重性等級不限于 上述三種,并且所執(zhí)行的快照產(chǎn)生操作的類型也不限于上述兩種。
[0077] 這樣,通過在發(fā)生預定義的事件(例如異?;蝈e誤)時使用快照裝置產(chǎn)生軟件測試 實例的快照,可以記錄發(fā)生該事件時的軟件測試實例的狀態(tài),使得開發(fā)者可以根據(jù)該快照 迅速地恢復發(fā)生所述事件時的場景,從而定位和解決軟件中的缺陷。此外,如上文所述,通 過根據(jù)所發(fā)生的事件的性質產(chǎn)生不同類型的快照產(chǎn)生,可以使所產(chǎn)生的快照充分地反映所 述事件發(fā)生的背景,使得開發(fā)者能夠更準確地定位和解決軟件中存在的缺陷。
[0078] 在產(chǎn)生所述不同類型的快照之后,存儲裝置84可以在與所述預定義的事件相關 的信息中存儲所述不同類型的快照。如上文所述,除了所述不同類型的快照以外,存儲裝置 84還可以在與所述預定義的事件相關的信息中存儲根據(jù)需要選擇的其他信息,例如指示發(fā) 生了所述事件的信息、所述事件的內容、與所述事件相關聯(lián)的軟件的模塊和代碼等,例如在 上文中參照圖4-6描述的信息。存儲裝置84可以以多種方式存儲所述預定義的事件相關 的信息。例如,存儲裝置84可以將該信息與所述快照相關聯(lián)地存儲在快照庫中,或者可以 將該信息存儲在單獨的數(shù)據(jù)庫(例如事件庫)中,而且,存儲裝置84可以用任何適當格式的 數(shù)據(jù)文件來存儲該信息。
[0079] 此外,在發(fā)生所述預定義的事件之后,顯示裝置81還可以以分級的方式在管理 者、測試者和開發(fā)者三者中的至少兩者的交互界面(視圖)上顯示與所述預定義的事件相關 的信息。這樣,管理者、測試者和開發(fā)者能夠及時了解軟件測試中出現(xiàn)的問題并獲取自己所 需的信息,然后根據(jù)自己的角色而執(zhí)行不同的操作。顯示裝置81顯示的交互界面以及在該 交互界面上顯示內容與上文所述相同,在這里不再贅述。
[0080] 提取裝置85可以執(zhí)行自學習過程。具體地,當監(jiān)視裝置82確定所發(fā)生的事件不 是預定義的事件時,可以將該事件記錄在候選事件庫中。在測試完成之后,測試者可以評估 候選事件庫中的事件。提取裝置85可以根據(jù)測試者的評估結果,從候選事件庫中選擇性地 提取事件以便將其添加到事件庫中,以供以后的測試使用。這樣,在以后的測試中,該事件 成為預定義的事件,并且當發(fā)生該事件時,可以執(zhí)行對應的快照產(chǎn)生操作,以記錄軟件測試 實例的狀態(tài)。
[0081] 提取裝置85還可以用于根據(jù)在測試期間發(fā)生的所述非預定義的事件來修改指導 文件。提取裝置85可以根據(jù)測試者或開發(fā)者的指令,按照上文所述的方式來執(zhí)行這一修 改,在這里不再贅述。
[0082] 利用根據(jù)本發(fā)明實施例的測試軟件的設備,可以在軟件測試實例中發(fā)生諸如異常 或錯誤之類的事件時,根據(jù)該問題的性質,產(chǎn)生軟件測試實例的不同類型的快照,并且將軟 件測試實例的當前狀態(tài)顯示在管理者、測試者和開發(fā)者的視圖上,使得測試者能夠正確地 監(jiān)視并反饋測試結果,開發(fā)者可以基于所述快照迅速地再現(xiàn)發(fā)生所述事件的場景,從而準 確地定位并修復軟件中存在的缺陷,而管理者可以及時掌握測試進度,并且根據(jù)該事件對 測試進程的影響而調整軟件測試計劃,從而優(yōu)化測試流程。由此,加快了"測試一發(fā)生事 件一產(chǎn)生快照一定位和修復問題一測試"的測試流程,提高了測試效率。
[0083] 附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程 序產(chǎn)品的可能實現(xiàn)的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以 代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個 用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現(xiàn)中,方框中所 標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框實際上可以 基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的 是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行 規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的 組合來實現(xiàn)。
[0084] 以上已經(jīng)描述了本發(fā)明的各實施例,上述說明是示例性的,并非窮盡性的,并且也 不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本技 術領域的普通技術人員來說許多修改和變更都是顯而易見的。本文中所用術語的選擇,旨 在最好地解釋各實施例的原理、實際應用或對市場中的技術的技術改進,或者使本技術領 域的其它普通技術人員能理解本文披露的各實施例。
【權利要求】
1. 一種測試軟件的方法,包括: 監(jiān)視在軟件測試實例中是否發(fā)生預定義的事件; 響應于發(fā)生預定義的事件,根據(jù)該事件的性質生成軟件測試實例的不同類型的快照, 所述快照用于記錄發(fā)生所述預定義的事件時的軟件測試實例的狀態(tài);以及 在與所述預定義的事件相關的信息中存儲所述不同類型的快照。
2. 如權利要求1所述的方法,還包括: 以分級的方式在軟件的開發(fā)者、測試者和管理者三者中的至少兩者的交互界面上顯示 與所述預定義事件相關的信息。
3. 如權利要求1或2所述的方法,其中,監(jiān)視在軟件測試實例中是否發(fā)生預定義的事件 包括: 監(jiān)視在軟件測試實例中發(fā)生的事件; 確定該事件是否已經(jīng)被預先記錄在事件庫中;以及 響應于確定該事件已經(jīng)被預先記錄在事件庫中,將所述事件確定為預定義的事件。
4. 如權利要求3所述的方法,還包括: 響應于確定該事件沒有被預先記錄在事件庫中,將該事件確定為非預定義的事件,并 且將該非預定義的事件選擇性地添加到事件庫中。
5. 如權利要求4所述的方法,還包括:根據(jù)所述非預定義的事件修改用于測試該軟件 的指導文件。
6. 如權利要求1或2所述的方法,其中所述事件是在軟件測試實例中發(fā)生的異?;蝈e 誤。
7. 如權利要求1或2所述的方法,其中,所述事件的性質包括事件的嚴重性、事件發(fā)生 的次數(shù)以及所述事件本身的類型,并且其中,所述響應于發(fā)生預定義的事件,根據(jù)該事件的 性質生成軟件測試實例的不同類型的快照包括: 對于具有第一性質的事件,產(chǎn)生軟件測試實例的多個快照,以及 對于具有第二性質的事件,產(chǎn)生軟件測試實例的單個快照。
8. -種測試軟件的設備,包括: 監(jiān)視裝置,被配置為監(jiān)視在軟件測試實例中是否發(fā)生預定義的事件; 快照裝置,被配置為響應于發(fā)生預定義的事件,根據(jù)該事件的性質生成軟件測試實例 的不同類型的快照,所述快照用于記錄發(fā)生所述預定義的事件時的軟件測試實例的狀態(tài); 以及 存儲裝置,被配置為在與所述預定義的事件相關的信息中存儲所述不同類型的快照。
9. 如權利要求8所述的設備,其中還包括: 顯示裝置,以分級的方式在軟件的開發(fā)者、測試者和管理者三者中的至少兩者的交互 界面上顯示與所述預定義事件相關的信息。
10. 如權利要求8或9所述的設備,其中,所述監(jiān)視裝置包括: 監(jiān)視單元,被配置為監(jiān)視在軟件測試實例中發(fā)生的事件;以及 確定單元,被配置為確定該事件是否已經(jīng)被預先記錄在事件庫中,并且響應于確定該 事件已經(jīng)被預先記錄在事件庫中,將所述事件確定為預定義的事件。
11. 如權利要求9所述的設備,其中,所述確定單元響應于確定該事件沒有被預先記錄 在事件庫中,將所述事件確定為預定義的事件,并且其中, 所述設備還包括:提取裝置,被配置為響應于確定該事件沒有被預先記錄在事件庫中 而被確定為非預定義的事件,并且將該非預定義的事件選擇性地添加到事件庫中。
12. 如權利要求10所述的設備,其中,所述提取裝置還被配置為根據(jù)所述非預定義的 事件修改用于測試該軟件的指導文件。
13. 如權利要求8或9所述的設備,其中所述事件是在軟件測試實例中發(fā)生的異?;蝈e 誤。
14. 如權利要求8或9所述的設備,其中,所述事件的性質包括事件的嚴重性、事件發(fā)生 的次數(shù)以及所述事件本身的類型,并且其中,所述快照裝置對于具有第一性質的事件,產(chǎn)生 軟件測試實例的多個快照,并且對于具有第二性質的事件,產(chǎn)生軟件測試實例的單個快照。
【文檔編號】G06F11/36GK104123219SQ201310154235
【公開日】2014年10月29日 申請日期:2013年4月28日 優(yōu)先權日:2013年4月28日
【發(fā)明者】李揚, 趙蘇寧, 趙國新, 張穎 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
博兴县| 大足县| 定襄县| 屯昌县| 日土县| 桃源县| 凤翔县| 屏南县| 根河市| 澄城县| 合水县| 宜昌市| 凤山市| 涿州市| 沁源县| 镇康县| 石屏县| 漳平市| 陵川县| 梧州市| 朝阳区| 宁都县| 临朐县| 易门县| 丰镇市| 马山县| 古田县| 健康| 元氏县| 九台市| 定边县| 贵港市| 遂昌县| 东宁县| 黑龙江省| 平谷区| 江北区| 噶尔县| 兴文县| 崇州市| 黄陵县|