亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

軟件缺陷驗證的制作方法

文檔序號:6498568閱讀:236來源:國知局
軟件缺陷驗證的制作方法
【專利摘要】本發(fā)明公開了軟件缺陷驗證。示例性方法包括利用處理器訪問表示要在執(zhí)行要被測試的軟件應用時被執(zhí)行的一組動作的腳本,該組動作與所報告缺陷相關(guān)聯(lián);執(zhí)行計算機上的要被測試的軟件應用;以及利用處理器經(jīng)由要被測試的應用執(zhí)行腳本中的該組動作以嘗試重新產(chǎn)生所報告缺陷。
【專利說明】軟件缺陷驗證

【背景技術(shù)】
[0001]軟件測試是軟件應用開發(fā)的通用部分。軟件測試包括以可能預期終端用戶與軟件進行交互的方式與軟件進行交互。當發(fā)現(xiàn)軟件中的缺陷(或錯誤)時,對軟件進行定義的底層計算機代碼被修改以校正這些缺陷。

【專利附圖】

【附圖說明】
[0002]圖1是根據(jù)本公開的教導而構(gòu)造的示例性軟件開發(fā)系統(tǒng)的框圖。
[0003]圖2是可以被用來實現(xiàn)圖1的軟件測試器的示例性軟件測試器的框圖。
[0004]圖3是可以被用來實現(xiàn)圖1的軟件測試器的另一示例性軟件測試器的框圖。
[0005]圖4A-4E圖示了根據(jù)本公開的教導的監(jiān)視對軟件應用進行測試期間的用戶交互時的軟件開發(fā)系統(tǒng)的示例性用戶界面。
[0006]圖5A-5D圖示了根據(jù)本公開的教導的驗證所報告缺陷已經(jīng)被修正時的軟件開發(fā)系統(tǒng)的示例性用戶界面。
[0007]圖6是表示當被執(zhí)行時使得處理器報告測試下軟件應用中的缺陷的示例性機器可讀指令的流程圖。
[0008]圖7是表示當被執(zhí)行時使得處理器嘗試重新產(chǎn)生測試下軟件應用中的所報告缺陷的示例性機器可讀指令的流程圖。
[0009]圖8是表示當被執(zhí)行時使得處理器嘗試重新產(chǎn)生測試下軟件應用中的所報告缺陷并且驗證所報告缺陷是否繼續(xù)存在于該軟件應用中的示例性機器可讀指令的流程圖。
[0010]圖9是能夠執(zhí)行圖6-8的指令以實現(xiàn)圖1、2和/或3的軟件測試器的示例性處理器平臺的框圖。

【具體實施方式】
[0011]在現(xiàn)代軟件開發(fā)中,軟件應用開發(fā)者(本文也被簡稱為開發(fā)者)生成代碼來實現(xiàn)軟件應用。如軟件開發(fā)中常見的那樣,軟件經(jīng)常初始包含使得軟件的行為偏離所期望或意圖的行為的缺陷(或錯誤)。在開發(fā)者已經(jīng)寫出了所有或部分的軟件代碼之后,軟件代碼可以被發(fā)送至軟件測試者(例如,質(zhì)量保證工程師)以供測試。例如,軟件測試者可以采用各種方式對軟件進行測試以驗證軟件服從所意圖的行為。
[0012]當軟件測試者識別出不服從所意圖的行為的軟件行為的實例時,軟件測試者(例如,直接和/或間接地經(jīng)由缺陷系統(tǒng))將該缺陷報告至開發(fā)者。所報告缺陷范圍可以從次要的(例如,裝飾性的(cosmetic))到嚴重的(例如,核心功能問題)。開發(fā)者然后將計算機代碼移除、修改、和/或添加至軟件應用以修正所報告缺陷。當開發(fā)者修正了所報告缺陷時,開發(fā)者將軟件的新版本提交至軟件測試者。軟件測試者然后驗證所報告缺陷已經(jīng)被修正。例如,軟件測試者可以嘗試重新產(chǎn)生先前導致了缺陷的發(fā)現(xiàn)的狀況并確定是否仍然可以觀察到缺陷。
[0013]在過去,軟件缺陷驗證是手動過程。負責軟件測試的人(例如,質(zhì)量保證工程師)在所報告缺陷已經(jīng)被開發(fā)者(或者質(zhì)量保證工程師可以是開發(fā)者自己)解決時被通知。該人然后必須通過手動地對軟件應用重新測試并確定軟件缺陷是否仍然存在來嘗試重新產(chǎn)生該軟件缺陷。手動測試因此會是昂貴且耗時的過程。進行手動測試所需的費用和時間可以導致針對軟件的質(zhì)量的妥協(xié)(例如,一些缺陷可能未被解決以便留在預算內(nèi)等等)。
[0014]示例性方法、裝置和制品可以被用來在軟件開發(fā)系統(tǒng)中執(zhí)行軟件缺陷驗證。本文所公開的示例性方法、裝置和制品通過使驗證所報告的軟件缺陷的過程自動化而克服了與現(xiàn)有技術(shù)相關(guān)聯(lián)的問題。在一些示例中,自動化軟件測試器記錄用戶進行軟件應用的手動測試的動作,包括與測試下軟件應用的交互。當用戶報告軟件應用中的缺陷時,軟件測試器生成表示導致識別出缺陷的用戶動作的腳本。軟件測試器將腳本附接或附加到所報告缺陷。當所報告缺陷后來被該用戶(或者不同用戶)驗證時,軟件測試器執(zhí)行該腳本以嘗試重新產(chǎn)生該缺陷。開發(fā)者還可以使用腳本來可靠且快速地重新產(chǎn)生缺陷,這使得更多的高效解決方案能夠報告缺陷。
[0015]對比于摘要中的創(chuàng)建測試腳本的已知軟件測試應用(B卩,不具有與軟件缺陷的關(guān)聯(lián)性),本文所公開的示例性方法、裝置、和制品是缺陷中心式的(defect-centric)。示例性方法、裝置、和制品將缺陷重新產(chǎn)生腳本附接或關(guān)聯(lián)至所報告缺陷并且嘗試響應于由用戶對缺陷的選擇而重新產(chǎn)生缺陷。以此方式,示例性方法、裝置、和制品提供了對缺陷的快速驗證和增強的軟件開發(fā)效率。
[0016]本文公開了示例性計算機可讀指令,其使得處理器識別對要被測試的軟件應用中的所報告缺陷的選擇?;谠撨x擇,指令使得處理器訪問表示要由計算機在執(zhí)行要被測試的軟件應用時執(zhí)行的一組動作的腳本。該組腳本與所選擇的所報告缺陷相關(guān)聯(lián)。示例性指令還使得處理器執(zhí)行計算機上的要被測試的軟件應用,并執(zhí)行腳本中的該組動作以嘗試重新產(chǎn)生所報告缺陷。
[0017]本文所公開的示例性裝置包括用戶界面、應用測試器、和缺陷重新產(chǎn)生器。示例性用戶界面接收針對要被測試的軟件應用的所報告缺陷的選擇。應用測試器執(zhí)行測試下軟件應用。示例性缺陷重新產(chǎn)生器嘗試通過在應用測試器執(zhí)行測試下軟件應用時執(zhí)行腳本中所定義的一組動作來重新產(chǎn)生所選擇的報告的軟件缺陷。該組動作與所選擇的報告的軟件缺陷相關(guān)聯(lián)。
[0018]如本文所使用的,術(shù)語“驗證缺陷”或“驗證所報告缺陷”是指確定和/或確認已經(jīng)根據(jù)某一準則滿意地修正或解決了缺陷(例如,根據(jù)驗證器的滿意)。
[0019]圖1是示例性軟件開發(fā)系統(tǒng)100的框圖。圖1的示例性系統(tǒng)100可以被用來執(zhí)行針對開發(fā)和/或測試中的軟件應用的軟件缺陷驗證。圖1的示例包括應用開發(fā)器102、軟件測試器104、缺陷管理器106、以及測試管理器108。
[0020]圖1的示例性應用開發(fā)器102被用來開發(fā)或生成軟件應用。例如,應用開發(fā)器102可以是實現(xiàn)在一個或多個計算機、服務器、網(wǎng)絡、和/或其他設(shè)備上的開發(fā)環(huán)境。諸如(一個或多個)軟件工程師之類的一個或多個人使用應用開發(fā)器102來編寫軟件代碼和/或生成要被測試的可執(zhí)行軟件。(一個或多個)軟件應用可以被開發(fā)以嘗試符合所接收到的軟件應用要求110。例如,圖1的軟件應用要求110定義了軟件應用的所期望的目標、目的、輸入、輸出、視覺要求、和/或行為。應用開發(fā)器102向軟件測試器104提供用于測試的(一個或多個)軟件應用。
[0021]圖1的示例性軟件測試器104測試軟件應用以識別、報告、和/或驗證由應用開發(fā)器102提供的軟件應用中(例如,軟件應用的不同版本中)的缺陷。在一些示例中,軟件測試器104是執(zhí)行在計算機或處理平臺(例如,圖9的處理平臺900)上的測試工具。
[0022]用戶(例如,質(zhì)量保證工程師)可以使用圖1的示例性軟件測試器104來對由應用開發(fā)器102提供的(一個或多個)軟件應用112執(zhí)行測試。當用戶正在經(jīng)由軟件測試器104對軟件應用112進行測試時,軟件測試器104自動地記錄用戶和軟件應用之間的交互(例如,經(jīng)由鍵盤輸入的數(shù)據(jù)、使用光標和/或鼠標選擇的對象等等)。圖1的軟件測試器104將所記錄的交互的表示存儲在用戶交互日志114中。
[0023]當用戶識別出測試下軟件應用112中的缺陷時,用戶經(jīng)由軟件測試器104報告缺陷。例如,用戶可以經(jīng)由軟件測試器104生成缺陷記錄。所報告缺陷可以包括例如缺陷標識符(例如,缺陷號)、所期望的行為、觀察到的行為、可疑的原因、在其中觀察到缺陷的狀態(tài)或上下文、和/或用戶相信在解決或修正所報告缺陷方面對于開發(fā)器有益的任何其他信息。
[0024]響應于用戶報告缺陷,示例性軟件測試器104生成包括由用戶進行的、導致了軟件缺陷的交互(例如,日志114中記錄的交互)的腳本。在一些示例中,軟件測試器104將腳本附加或附接至所報告缺陷。此外或可替代地,軟件測試器104將腳本存儲在示例性測試管理器108中(例如,作為自動化測試)。在一些示例中,用戶可以在將腳本附加至所報告缺陷之前手動地修改該腳本,以更精確地定義導致所報告缺陷的交互。
[0025]圖1的示例性缺陷管理器106從軟件測試器104接收所報告缺陷并將所報告缺陷提供給應用開發(fā)器102。在一些示例中,應用開發(fā)器從缺陷管理器106檢索所報告缺陷(例如,在缺陷檢查期間)。當應用開發(fā)器102解決(例如,修正)了從缺陷管理器106接收的所報告缺陷時,應用開發(fā)器返回或者更新缺陷管理器106中的所報告缺陷。示例性缺陷管理器106將已解決(但未驗證)的缺陷提供給軟件測試器104來進行驗證。例如,軟件測試器104可以在所報告缺陷驗證時段期間訪問缺陷管理器106。
[0026]示例性測試管理器108從軟件測試器104接收(一個或多個)測試腳本116。示例性測試腳本116包括執(zhí)行一組步驟的缺陷重新產(chǎn)生指令118,如果那些缺陷存在于軟件應用中,那么該組步驟將產(chǎn)生一個或多個特定缺陷的證據(jù)。在一些示例中,測試腳本還包括驗證指令120,以識別一個或多個特定缺陷的證據(jù),如果那些缺陷存在的話。當軟件測試器104驗證所報告缺陷已經(jīng)被修正時,示例性軟件測試器104訪問來自測試管理器108的適當?shù)臏y試腳本116。在一些其他示例中,示例性軟件測試器104訪問附加至所報告缺陷(例如,在缺陷記錄中)的腳本116。
[0027]示例性測試管理器108還可以維護一組腳本116,以執(zhí)行軟件應用116的未來版本的自動化測試。例如,測試管理器108可以提供針對未來版本的自動化回歸測試的測試以識別可能已經(jīng)再次出現(xiàn)的任何缺陷。示例性軟件測試器104將與已驗證的缺陷相關(guān)聯(lián)的腳本116提供給測試管理器108,其包括未來自動化測試中的腳本116。
[0028]圖2是可以被用來實現(xiàn)圖1的軟件測試器104的示例性軟件測試器200的框圖。圖2的示例性軟件測試器200包括用戶界面202、應用測試器204、和缺陷重新產(chǎn)生器206。軟件測試器200可以被實現(xiàn)在例如下文參考圖9所述的處理平臺900上。
[0029]圖2的示例性用戶界面202接收來自軟件測試器200的用戶的輸入和/或?qū)⑤敵鎏峁┙o軟件測試器200的用戶。例如,用戶界面202可以包括以下中的一個或多個:用以向用戶圖示虛擬顯示的顯示屏、用以接收數(shù)據(jù)輸入(例如,擊鍵、字母數(shù)字字符信息等等)的鍵盤、和/或用以控制光標和/或接收命令的鼠標。在軟件測試和/或缺陷驗證期間,示例性用戶界面202 (例如,經(jīng)由輸入的組合)接收針對要被測試的軟件應用的所報告的軟件缺陷的選擇。
[0030]示例性應用測試器204執(zhí)行測試下軟件應用208并監(jiān)視執(zhí)行的軟件應用。例如,應用測試器204可以接收要被測試的應用(例如,從圖1的應用開發(fā)器102)。示例性應用測試器204執(zhí)行測試下軟件應用208,同時監(jiān)視執(zhí)行的應用的輸入和輸出(例如,網(wǎng)絡連接、用戶輸入、對用戶的輸出、外圍輸入和/或輸出、進入和/或出自應用的服務對象調(diào)用等等)。
[0031]用戶可以經(jīng)由用戶界面202與應用測試器204和/或要被測試的軟件應用208進行交互。例如,用戶界面202使得用戶能夠選擇由應用測試器204提供的菜單項目或動作(例如,選擇缺陷、驗證缺陷、報告缺陷、執(zhí)行應用204等等)。用戶界面202還使得用戶能夠(經(jīng)由應用測試器204)與軟件應用及其特征進行交互。
[0032]圖2的示例性缺陷重新產(chǎn)生器206嘗試重新產(chǎn)生所選擇的報告的軟件缺陷(例如,經(jīng)由用戶界面202確定的)。為此,示例性缺陷重新產(chǎn)生器206在應用測試器204執(zhí)行測試下軟件應用208時自動地(例如,在不具有用戶參與的情況下)執(zhí)行腳本212 (例如,圖1的腳本116)中所定義的一組動作210。圖2的該組動作210包括用以重新產(chǎn)生所選擇的報告的軟件缺陷的指令(例如,如果缺陷未被修正的話)。在一些示例中,該組動作210在對軟件應用208 (或者測試下軟件應用208的早期版本)的在先測試期間被自動地記錄并經(jīng)由腳本210被附加至所報告缺陷。
[0033]示例性軟件測試器200的更詳細操作在下面參考圖5A-5D、圖6、和/或圖7來描述。
[0034]圖3是可以被用來實現(xiàn)圖1的軟件測試器104的另一示例性軟件測試器300的框圖。圖3的示例包括圖2的示例性用戶界面202、示例性應用測試器204、和示例性缺陷重新產(chǎn)生器206。然而,對比于圖2的軟件測試器200,圖3的示例性軟件測試器300還包括缺陷驗證器314、腳本記錄器316、和腳本生成器318。軟件測試器300可以被實現(xiàn)在例如下文參考圖9所述的處理平臺900上。
[0035]圖3的示例性缺陷驗證器314在一組動作210已經(jīng)被執(zhí)行時確定是否已經(jīng)從軟件應用208移除了所選擇的報告的軟件缺陷。例如,缺陷驗證器314可以請求和/或接收來自用戶界面202和/或應用測試器204的信息,該信息證明了所選擇的報告的軟件缺陷的存在或不存在。在一些示例中,腳本212包括用以獲得和/或評估所報告缺陷是否已經(jīng)被修正的一個或多個指令。缺陷驗證器314使用這些指令來驗證所報告缺陷。
[0036]由缺陷驗證器314獲得和/或使用的信息和/或證據(jù)的類型可以依賴于特定的所報告缺陷而不同。例如,利用測試下軟件應用208的用戶界面的所報告缺陷(例如,不正確的圖形)可以通過從用戶界面202獲得輸出信息來驗證。相比之下,與數(shù)據(jù)處理差錯有關(guān)的所報告缺陷可以通過從應用測試器204獲得測試下軟件應用208的數(shù)據(jù)輸入和/或輸出來驗證。
[0037]圖3的示例性腳本記錄器316監(jiān)視與測試下軟件應用208的用戶交互。例如,腳本記錄器316從用戶界面202接收輸入。這些輸入可以包括輸入的類型(例如,鼠標點擊、光標移動、光標位置、擊鍵)、與輸入相關(guān)聯(lián)(例如,由輸入所影響的)數(shù)據(jù)結(jié)構(gòu)(例如,用戶正在鍵入字符到其中的數(shù)據(jù)字段、可點擊的按鈕等等)、所輸入的數(shù)據(jù)(例如,字母數(shù)字字符等等)、和/或表征用戶交互的任何其他信息。示例性腳本記錄器316將所監(jiān)視的交互存儲在用戶交互日志320中。在一些示例中,腳本記錄器316自動地(即,在不具有用戶參與的情況下)記錄時間戳、到用戶界面202的輸出、到軟件應用208的輸入和/或輸出(例如,經(jīng)由應用測試器204)、和/或?qū)τ谥匦庐a(chǎn)生軟件應用中的缺陷有用或者必要的任何其他信息。
[0038]基于在日志320中記錄的交互,示例性腳本生成器318根據(jù)所監(jiān)視的用戶交互生成腳本(例如,腳本212)。在圖3的示例中,腳本生成器318在用戶界面202接收到軟件缺陷要被報告的指示時生成腳本。此類指示可以包括用戶點擊“報告缺陷”按鈕(例如,當用戶識別出測試下軟件應用208中的缺陷時)。示例性腳本生成器318可以將所生成的腳本(例如,腳本212)提供至缺陷重新產(chǎn)生器206和/或至缺陷驗證器314。在一些示例中,腳本生成器318將所生成的腳本212附加到缺陷的報告。
[0039]可以被用來實現(xiàn)圖2和/或3的應用測試器204、腳本記錄器316、和/或腳本生成器318的不例性工具是由Hewlett-Packard開發(fā)的QuickTest Profess1nal?軟件套件和 / 或也由 Hewlett-Packard 開發(fā)的 HP Funct1nal Testing? 軟件。
[0040]圖3的示例性軟件測試器300的更詳細操作在下面參考圖4A-4E、圖5A-5D、圖6、圖7、和/或圖8來描述。
[0041]圖4A-4D圖示了軟件開發(fā)系統(tǒng)100在對軟件應用的測試期間監(jiān)視用戶交互時的軟件開發(fā)系統(tǒng)(例如,圖1的軟件開發(fā)系統(tǒng)100)的不例性用戶界面400。圖4A-4D的不例性用戶界面400可以在顯示屏上被呈現(xiàn)給用戶。
[0042]所圖示的示例的用戶界面400包括與軟件測試應用402(例如,由圖2和/或3的應用測試器204)對應(例如,由其生成)的窗口。在圖4A-4D的示例中,軟件測試應用402正被用來測試正在生成由顯示方框或窗口 404實現(xiàn)的輸出的軟件應用(例如,圖2的測試下軟件應用208)。所圖示的示例的軟件測試應用402提供了控制界面403,用戶能夠利用所述控制界面403來發(fā)起軟件應用的測試(例如,經(jīng)由開始測試按鈕406)和/或結(jié)束軟件應用的測試(例如,經(jīng)由結(jié)束測試按鈕408 )。
[0043]在圖4A-4D的示例中,示例性軟件測試應用還使得用戶能夠?qū)y試下軟件應用的狀態(tài)設(shè)為初始狀態(tài)(例如,經(jīng)由設(shè)置初始狀態(tài)按鈕410)和/或使軟件應用返回至初始狀態(tài)(例如,經(jīng)由返回至初始狀態(tài)按鈕412)。如本文所使用的,術(shù)語“初始狀態(tài)”是指測試要從其開始的開始點,其對應于測試下軟件應用的任何狀態(tài)(例如,模擬的系統(tǒng)狀況,諸如存儲器內(nèi)容),從所述開始點起能夠執(zhí)行一組指令或步驟來嘗試重新產(chǎn)生軟件缺陷。例如,測試下軟件應用的任何特定狀態(tài)可以被指定為初始狀態(tài)。然后軟件應用的用戶(例如,測試者)可以在測試期間、測試之后、和/或要開始測試的任何時間返回至初始狀態(tài)。因此,腳本中的一組步驟可以使用初始狀態(tài)(例如,所指定的開始點)來可靠地重新產(chǎn)生軟件缺陷(如果軟件缺陷還未被修正的話)和/或來驗證缺陷已經(jīng)被修正,這是因為用以重新產(chǎn)生軟件缺陷的步驟從相同的系統(tǒng)和/或軟件狀況被發(fā)起,原因在于步驟初始地進行以發(fā)現(xiàn)缺陷。
[0044]測試下軟件應用的初始狀態(tài)例如可以通過以下內(nèi)容來規(guī)定:被分配給應用的存儲器的內(nèi)容、啟用的(一個或多個)添加應用的(一個或多個)狀態(tài)、軟件應用的經(jīng)編程的穩(wěn)定狀態(tài)(例如,主屏幕、菜單屏幕等等)、和/或規(guī)定了軟件應用的狀態(tài)的任何其他方法。在一些示例中,測試下軟件應用404的狀態(tài)可以與軟件應用的后續(xù)版本的狀態(tài)相兼容。
[0045]圖4A-4D的示例性軟件測試應用還使得用戶能夠報告軟件缺陷(例如,經(jīng)由報告缺陷按鈕414)。當軟件測試應用的用戶識別出或觀察到缺陷時,用戶可以選擇(例如,點擊)報告缺陷按鈕414來使得軟件測試應用報告測試下軟件應用中的缺陷。如下面更詳細地描述的,報告軟件缺陷可以包括生成規(guī)定了關(guān)于缺陷的信息的缺陷記錄。
[0046]圖4A圖示了軟件測試應用正在測試測試下軟件應用時的示例性用戶界面400。在圖4A的示例中,測試下軟件應用處于第一狀態(tài)416(例如,狀態(tài)O)。示例性第一狀態(tài)416可以是當用戶選擇(例如,經(jīng)由光標418點擊)開始測試按鈕406時測試下軟件應用進入的第一狀態(tài)。在選擇開始測試按鈕406時,用戶和/或測試下軟件應用的動作被監(jiān)視(例如,經(jīng)由圖2和/或3的用戶界面202、應用測試器204、和/或腳本記錄器316)。
[0047]圖4B圖示了與測試下軟件應用的示例性用戶交互正在被監(jiān)視時的圖4A的用戶界面400。在圖4B的示例中,測試下軟件應用已經(jīng)進入了另一狀態(tài)420 (例如,狀態(tài)A)。
[0048]在一些示例中,用戶可以通過經(jīng)由用戶界面400和/或軟件測試應用與測試下軟件應用進行交互來使得測試下軟件應用進入狀態(tài)420。當測試下軟件應用進入狀態(tài)420時,用戶可以將狀態(tài)420設(shè)置(或分配)為初始狀態(tài)(例如,通過利用光標選擇設(shè)置初始狀態(tài)按鈕410)。
[0049]在一些其他示例中,用戶可以通過經(jīng)由光標418選擇返回至初始狀態(tài)按鈕412來使得測試下軟件應用返回至初始狀態(tài)(例如,狀態(tài)420)。當測試下軟件應用處于初始狀態(tài)420時,圖3的示例性腳本記錄器316記錄測試下軟件應用處于初始狀態(tài)。該信息隨后被用來向腳本提供一組動作要從其被執(zhí)行的狀態(tài)(例如,初始狀態(tài)420)。
[0050]圖4C圖示了繼初始狀態(tài)之后的示例性用戶交互正在被監(jiān)視時的圖4A的用戶界面400。在圖4C的示例中,用戶通過在位置B處點擊(例如,經(jīng)由鼠標)由測試下軟件應用(例如,在應用窗口中)輸出的顯示方框內(nèi)的某一位置處的光標418來進行測試下軟件應用的測試。圖3的示例性日志記錄器316記錄了經(jīng)由示例性用戶界面400(例如,圖3的用戶界面202)接收到的用戶交互。
[0051]示例性測試隨著用戶將光標418移動422至由測試下軟件應用輸出的顯示方框404內(nèi)的第二位置C以及通過將光標418移動424至由測試下軟件應用輸出的顯示方框404內(nèi)的另一位置D而繼續(xù)。示例性日志記錄器316可以將經(jīng)由用戶界面400接收到的這些用戶交互記錄為單獨的動作和/或為單個動作(例如,基于移動422是否修改了測試下軟件應用的狀態(tài))。
[0052]用戶然后選擇(例如,經(jīng)由鼠標點擊、“tab”擊鍵等等)由測試下軟件應用輸出的顯示方框404內(nèi)的數(shù)據(jù)輸入字段(例如,文本框426)并通過做出兩次擊鍵(例如,“I”擊鍵跟著“5”擊鍵)來輸入數(shù)字(例如,“15”)。示例性日志記錄器316記錄經(jīng)由用戶界面400的這些用戶交互。與移動交互422、424 —樣,示例性日志記錄器316可以將這些用戶交互記錄為單獨的動作和/或單個動作。
[0053]例如,如果“ I ”擊鍵或“5”擊鍵(或者這二者都)導致軟件狀態(tài)的改變(例如,所分配的存儲器內(nèi)容的改變),那么(一個或多個)擊鍵可以被視為單獨的動作。
[0054]數(shù)據(jù)輸入按鈕(例如,“去往”)428然后被選擇(例如,通過利用鼠標點擊、通過敲擊鍵盤上的“回車”鍵等等)。根據(jù)所意圖的軟件行為,在用戶選擇了“去往”按鈕428之后,測試下軟件應用應當處于狀態(tài)E。示例性日志記錄器316記錄按鈕428的選擇以與用戶選擇按鈕428的方法(例如,鼠標點擊、擊鍵等等)一致。然而,示例性日志記錄器316還可以記錄該動作的等同物(例如,除了將光標418移動到按鈕上并點擊鼠標之外,記錄按下“回車”鍵)。
[0055]圖4D圖示了當要由用戶報告示例性軟件缺陷時的圖4A的用戶界面400。根據(jù)示例性測試下軟件應用的預期行為,數(shù)據(jù)輸入字段426中顯示的值要被改變?yōu)榱硪粩?shù)字(例如,“16”)。然而,在所圖示的示例中,字段426的值保持為所輸入的數(shù)字“15”。此外,如根據(jù)示例性軟件要求(例如,圖1的軟件應用要求110)預期的,測試下軟件應用保持處于狀態(tài)D而不是轉(zhuǎn)變?yōu)闋顟B(tài)E。因而,用戶識別出存在軟件缺陷并經(jīng)由光標418選擇報告缺陷按鈕414。
[0056]圖4E圖示了當軟件測試應用呈現(xiàn)對話框430以供用戶報告測試下軟件應用中的缺陷時的圖4A的用戶界面400。示例性軟件測試應用響應于用戶選擇圖4A-4D的報告缺陷按鈕414而呈現(xiàn)對話框430。
[0057]在圖4E的示例中,對話框430呈現(xiàn)了缺陷記錄432(例如,由圖2和/或3的應用測試器204生成的)。缺陷記錄432包括信息,包括:報告用戶的標識434、缺陷標識符436、缺陷日期(例如,時間戳)438、缺陷嚴重程度440、測試下軟件應用的版本的標識442、以及缺陷重新產(chǎn)生腳本444。在一些示例中,用戶可以將評論、圖示了缺陷的屏幕截圖、和/或其他信息附加至缺陷記錄432。
[0058]示例性缺陷重新產(chǎn)生腳本444 (例如,圖1的腳本116、圖2和/或3的腳本212)包括表示可以被執(zhí)行以嘗試重新產(chǎn)生在缺陷記錄432中所報告缺陷的一組動作(例如,圖2和/或3的動作210)的指令446。在圖4E的示例中,缺陷重新產(chǎn)生腳本444由腳本生成器(例如,圖3的腳本生成器318)初始地填充有指令446。用戶可以添加、刪除、和/或修改指令446。例如,腳本444包括由用戶添加的驗證指令448。示例性驗證指令448使得缺陷驗證器(例如,圖3的缺陷驗證器314)能夠驗證缺陷已經(jīng)被修正。
[0059]當缺陷重新產(chǎn)生腳本444被滿意地完成時,用戶可以選擇附加腳本按鈕450 (例如,經(jīng)由光標418)來使得腳本生成器318將腳本444附加至記錄432。在一些其他示例中,腳本444可以被自動地附加至缺陷記錄432和/或可以集成到缺陷記錄432。當缺陷記錄432已經(jīng)由用戶滿意地(例如,針對用戶的滿意)準備好時,用戶可以選擇輸入缺陷按鈕452。
[0060]盡管圖4A-4E圖示了測試軟件應用、記錄用戶交互、以及報告缺陷的示例,但示例可以被修改以測試(一個或多個)任何類型的軟件應用并記錄(一個或多個)任何類型的交互。所記錄的交互、所執(zhí)行的測試、和/或所報告缺陷基于軟件應用要求(例如,所意圖的行為)和軟件應用的編碼。因而,所監(jiān)視的交互和所報告缺陷的幾乎無限制數(shù)量的變形是可能的。圖3的示例性軟件測試器300可以被用來報告此類缺陷并生成表示導致識別出或觀察到缺陷的交互的腳本。
[0061]圖5A-5D圖示了驗證所報告缺陷已經(jīng)被修正時的軟件開發(fā)系統(tǒng)(例如,圖1的軟件開發(fā)系統(tǒng)100)的示例性用戶界面500。圖5A-5D的示例性用戶界面500可以與圖4的用戶界面400相同或類似和/或可以被用來實現(xiàn)圖2和/或3的用戶界面202。
[0062]圖5A-5D的示例性用戶界面500包括由軟件測試應用所生成的顯示方框或窗口502 (例如,用戶能夠利用其與軟件測試應用進行交互的用戶界面500上的顯示窗口)。圖5A-5D的軟件測試應用可以實現(xiàn)圖1-3的示例性軟件測試器104、200、300中的任何和/或所有。在圖5A-5D的示例中操作的示例性軟件測試應用可以與圖4A-4E的軟件測試應用相同或不同。
[0063]此外,在圖5A-5D的示例中操作的軟件測試應用可以在與圖4A-4E的軟件測試應用相同或不同的處理平臺上被執(zhí)行。因而,所報告缺陷可以在與缺陷被報告的相同的處理平臺和/或軟件測試應用上被驗證??商娲?,所報告缺陷可以在與缺陷被報告的不同的處理平臺和/或軟件測試應用上被驗證。有利地,即使未經(jīng)由軟件測試應用報告缺陷,圖5A-5D的軟件測試應用也使用腳本來高效且快速地驗證軟件缺陷。
[0064]圖5A-5D的示例性軟件測試應用要驗證測試下軟件應用。在圖5A-5D的示例中,示例性測試下軟件應用是圖4A-4E的測試下軟件應用的后續(xù)版本。例如,測試下軟件應用已經(jīng)被修改(例如,由軟件開發(fā)器)以嘗試解決或修正缺陷。
[0065]圖5A圖示了用戶正在選擇要被驗證的所報告缺陷時的示例性用戶界面500。示例性用戶界面500顯示了與測試下軟件應用對應的顯示窗口 504(例如,由測試下軟件應用生成的)。顯示窗口 504可以被顯示為與由軟件測試應用所生成的窗口 502并排和/或被顯示為窗口 502的子窗口。
[0066]在圖5A的所圖示的示例中,軟件測試應用包括選擇工具(諸如,填充有針對軟件應用的所報告缺陷的下拉框506)。用戶可以選擇下拉框506,并且然后從所列出的缺陷中選擇所報告缺陷508 (例如,“缺陷F347”)。示例性所選擇的所報告缺陷F347是與圖4E中圖示的示例性所報告缺陷相同的所報告缺陷。因此,所選擇的所報告缺陷與用以嘗試重新產(chǎn)生所報告缺陷的腳本相關(guān)聯(lián)(例如,包括、附加有)。
[0067]圖5B圖示了用戶正在選擇以驗證所選擇的所報告缺陷時的圖5A的示例性用戶界面500。在圖5B的示例中,用戶已經(jīng)選擇了驗證缺陷按鈕510。響應于接收到針對所選擇的所報告缺陷508的驗證缺陷按鈕510的選擇,示例性軟件測試應用嘗試通過執(zhí)行腳本(例如,被包括有和/或附加于針對所報告缺陷的缺陷記錄的腳本、圖1的腳本116、圖2和/或3的腳本212)來重新產(chǎn)生所報告缺陷。用戶可以使用例如光標512來選擇驗證缺陷按鈕510。
[0068]響應于用戶選擇驗證所報告缺陷508,示例性軟件測試應用開始執(zhí)行腳本。在所圖示的示例中,軟件測試應用首先基于腳本將測試下軟件應用置于第一狀態(tài)A (例如,圖4B的初始狀態(tài)420)。
[0069]圖5C圖示了當軟件測試應用已經(jīng)執(zhí)行了附加至所選擇的所報告缺陷的腳本時的圖5A的示例性用戶界面500。根據(jù)示例性腳本,測試下軟件應用應當處于狀態(tài)D,其中擊鍵“15”已經(jīng)被輸入到字段514中并且“去往”按鈕516已經(jīng)被選擇(例如,經(jīng)由圖2和/或3的缺陷重新產(chǎn)生器206和用戶界面202)。在所圖示的示例中,軟件測試應用還示出了所報告缺陷的位置(例如,應當觀察到缺陷的地方)和/或所預期的內(nèi)容的注釋518突顯。
[0070]在圖5C的示例中,示例性測試下軟件應用已經(jīng)執(zhí)行了計算并使字段514填充有值“16”。該值與突顯518中示出的所預期值一致。因而,用戶可以通過選擇驗證修正按鈕520來確認或驗證所報告缺陷已經(jīng)被修正。
[0071]圖圖示了當軟件測試應用已經(jīng)執(zhí)行了附加至所選擇的所報告缺陷的腳本并且所報告缺陷繼續(xù)存在時的圖5A的示例性用戶界面500。如圖中所示,示例性字段514中的值不匹配于注釋518中圖示的值。當用戶識別出缺陷繼續(xù)存在時(例如,通過觀察注釋518和字段514之間的差異),用戶可以選擇拒絕修正按鈕522來拒絕修正(例如,重新打開或?qū)⑺鶊蟾嫒毕莘祷刂淋浖_發(fā)器以被解決)。
[0072]盡管實現(xiàn)圖1的軟件測試器104的示例性方式已經(jīng)在圖2和3中進行了說明,但圖2和/或3中所圖示的元件、處理器和/或設(shè)備中的一個或多個可以被組合、分開、重新布置、省略、消除、和/或以任何其他方式實現(xiàn)。此外,示例性用戶界面202、示例性應用測試器204、示例性缺陷重新產(chǎn)生器206、示例性測試下軟件應用208、示例性一組動作210、示例性腳本212、示例性缺陷驗證器314、示例性腳本記錄器316、示例性腳本生成器318、和/或更一般地圖1-3的示例性軟件測試器104、200、300可以由硬件、軟件、固件和/或硬件軟件和/或固件的任何組合來實現(xiàn)。因此,例如,示例性用戶界面202、示例性應用測試器204、示例性缺陷重新產(chǎn)生器206、示例性測試下軟件應用208、示例性一組動作210、示例性腳本212、示例性缺陷驗證器314、示例性腳本記錄器316、示例性腳本生成器318、和/或更一般地圖1-3的示例性軟件測試器104、200、300中的任何一個可以由(一個或多個)電路、(一個或多個)可編程處理器、(一個或多個)專用集成電路(ASIC)、(一個或多個)可編程邏輯設(shè)備(PLD)、和/或(一個或多個)現(xiàn)場可編程邏輯設(shè)備(FPLD)等等來實現(xiàn)。當本專利的任何裝置或系統(tǒng)權(quán)利要求被讀以涵蓋純軟件和/或固件實現(xiàn)時,示例性用戶界面202、示例性應用測試器204、示例性缺陷重新產(chǎn)生器206、示例性測試下軟件應用208、示例性一組動作210、示例性腳本212、示例性缺陷驗證器314、示例性腳本記錄器316、和/或示例性腳本生成器318中的至少一個據(jù)此被明確地定義為包括諸如存儲器、DVD、CD、藍光等等存儲軟件和/或固件的有形計算機可讀介質(zhì)。此外,圖1-3的示例性軟件測試器104、200、300仍可以包括除在圖4中圖示的那些之外或代替在圖4中圖示的那些的元件、過程和/或設(shè)備,和/或可以包括所圖示的元件、過程和設(shè)備中任何一個或上所有的多于一個。
[0073]表示用于實現(xiàn)圖1-3的軟件測試器104、200、300中任何一個的示例性機器可讀指令的流程圖被示出在圖6-8中。在此示例中,機器可讀指令包括供處理器執(zhí)行的程序,諸如下面結(jié)合圖9所討論的示例性計算機900中示出的處理器912。程序可以被體現(xiàn)在存儲在諸如計算機可讀存儲介質(zhì)(例如,CD-ROM、軟盤、硬盤、數(shù)字多功能盤(DVD)、藍光盤、或者與處理器912相關(guān)聯(lián)的存儲器)之類的有形計算機可讀介質(zhì)上的軟件中,但整個程序和/或其部分能夠替代地由不同于處理器912的設(shè)備執(zhí)行和/或被體現(xiàn)在固件或?qū)S糜布?。此外,盡管示例性程序參考圖6-8中圖示的流程圖來描述,但可以替代地使用實現(xiàn)示例性軟件測試器104、200、300的許多其他方法。例如,可以改變塊的執(zhí)行次序,和/或可以改變、消除、或者組合所描述的塊中的一些。
[0074]如上所述,圖6-8的示例性過程可以使用存儲在有形計算機可讀介質(zhì)上的經(jīng)編碼指令(例如,計算機可讀指令)來實現(xiàn),所述有形計算機可讀介質(zhì)諸如硬盤驅(qū)動、閃存、只讀存儲器(ROM)、光盤(⑶)、數(shù)字多功能盤(DVD)、高速緩存、隨機存取存儲器(RAM)、和/或信息在任何持續(xù)時間(例如,在擴展的時間段、永久地、簡短實例、用于暫時緩沖、和/或用于信息的高速緩存)內(nèi)被存儲在其中的任何其他存儲介質(zhì)。如本文所使用的,術(shù)語“有形計算機可讀介質(zhì)”被明確地定義為包括任何類型的計算機可讀存儲并排除傳播信號。此外或替代地,圖6-8的示例性過程可以使用存儲在非臨時計算機可讀介質(zhì)上的經(jīng)編碼指令(例如,計算機可讀指令)來實現(xiàn),所述非臨時計算機可讀介質(zhì)諸如硬盤驅(qū)動、閃存、只讀存儲器、光盤、數(shù)字多功能盤、高速緩存、隨機存取存儲器、和/或信息在任何持續(xù)時間(例如,在擴展的時間段、永久地、簡短實例、用于暫時緩沖、和/或用于信息的高速緩存)內(nèi)被存儲在其中的任何其他存儲介質(zhì)。如本文所使用的,術(shù)語“非臨時計算機可讀介質(zhì)”被明確地定義為包括任何類型的計算機可讀介質(zhì)并排除傳播信號。如本文所使用的,當短語“至少”被用作權(quán)利要求的前序中的過渡用語時,它以與術(shù)語“包括”是開放式的相同方式是開放式的。因此,使用“至少”作為其前序中的過渡用語的權(quán)利要求可以包括除了權(quán)利要求中明確記載的那些之外的元素。
[0075]圖6是表示示例性機器可讀指令600的流程圖,所述示例性機器可讀指令當被執(zhí)行時使得處理器報告測試下軟件應用中的缺陷。示例性指令600可以由圖9的示例性處理器平臺900執(zhí)行以實現(xiàn)圖3的用戶界面202、應用測試器204、腳本記錄器316、和/或腳本生成器318。
[0076]示例性指令600開始于監(jiān)視(例如,經(jīng)由圖3的腳本記錄器316)經(jīng)由用戶界面(例如,圖3的用戶界面302、圖4的用戶界面400)的用戶交互(塊602)。例如,腳本記錄器316可以監(jiān)視用戶界面202以識別諸如擊鍵、鼠標移動、鼠標點擊、音頻輸入、成像設(shè)備輸入、和/或任何其他類型的用戶交互之類的用戶輸入。如果用戶交互已經(jīng)被識別(塊604),則示例性腳本記錄器316將用戶交互記錄在用戶交互日志(例如,日志320)中(塊606)。
[0077]當用戶交互已經(jīng)被記錄(塊606)時,或者在用戶交互還未被識別(塊604)的情況下,示例性應用測試器204確定缺陷是否已經(jīng)被識別(例如,用戶是否已經(jīng)指示了已經(jīng)經(jīng)由用戶界面202觀察到缺陷)(塊608)。如果缺陷還未被識別(塊608),則控制返回至塊602以繼續(xù)監(jiān)視用戶交互。
[0078]如果缺陷已經(jīng)被識別(塊608),則示例性應用測試器204生成缺陷記錄(例如,圖4E的缺陷記錄432)(塊610)。示例性缺陷記錄432可以包括所分配的缺陷標識符、生成了缺陷記錄的用戶的標識符、來自用戶的附注、時間戳、缺陷的嚴重程度、測試下軟件應用(例如,圖2和3的測試下軟件應用208和/或圖4的測試下軟件應用)的版本。
[0079]圖3的示例性腳本生成器318根據(jù)用戶交互日志320生成腳本(例如,圖3的腳本212、圖4E的缺陷重新產(chǎn)生腳本444)(塊612)。腳本444包括針對缺陷重新產(chǎn)生器(例如,圖2和3的缺陷重新產(chǎn)生器206)的表示用戶交互的指令,所述用戶交互諸如例如是自最近發(fā)生的指定初始狀態(tài)(例如,圖4B的狀態(tài)A 120)起的用戶交互、自測試開始起(例如,自用戶選擇了圖4A-4E的開始測試按鈕406起)的用戶交互;指定數(shù)目的最近交互(例如,最后30次交互)、和/或交互的任何其他數(shù)目或表示。
[0080]示例性腳本生成器318將腳本444附接(例如,附加)至缺陷(例如,至缺陷記錄432)(塊614)。例如,腳本生成器318可以自動地將腳本444包括(例如,附加)在缺陷記錄中。示例性應用測試器204報告測試下軟件應用中的缺陷(塊616)。例如,應用測試器204可以將包括腳本444的缺陷記錄432提供至缺陷管理器106和/或至應用開發(fā)器102。
[0081]在報告了缺陷(塊616)之后,圖6的示例性指令600可以結(jié)束。示例性指令600然后可以在用戶開始另一測試時從開始重新開始。在一些其他示例中,指令600可以在不具有附加的用戶命令的情況下(例如,在不具有重新開始指令600的情況下)使控制返回至塊602以繼續(xù)監(jiān)視用戶交互。
[0082]圖7是表示示例性機器可讀指令700的流程圖,所述示例性機器可讀指令700當被執(zhí)行時使得處理器嘗試重新產(chǎn)生測試下軟件應用中的所報告缺陷。示例性指令700可以由圖9的示例性處理器平臺900執(zhí)行以實現(xiàn)圖1、2和/或3的示例性軟件測試器104、200、300。
[0083]圖7的指令700開始于識別(例如,經(jīng)由圖2和3的用戶界面202)針對要被測試的軟件應用的所報告的軟件缺陷的選擇(塊702)。例如,用戶界面202可以從用戶接收指示了針對測試下軟件應用(例如,圖5A-5D的測試下軟件應用)的所報告的軟件缺陷(例如,圖5B-5D的軟件缺陷508)的選擇的一個或多個命令。
[0084]缺陷重新產(chǎn)生器(例如,圖2和/或3的示例性缺陷重新產(chǎn)生器206)訪問表示一組動作的腳本以重新產(chǎn)生所選擇的所報告缺陷508(塊704)。例如,缺陷重新產(chǎn)生器206可以接收被包括在缺陷記錄(例如,圖4E的缺陷記錄432)中的腳本(例如,圖4E的缺陷重新產(chǎn)生腳本444)。在一些示例中,缺陷重新產(chǎn)生器206訪問來自缺陷管理器(例如,圖1的缺陷管理器106)的缺陷記錄432和/或腳本444。
[0085]應用測試器(例如,圖2和/或3的示例性應用測試器204)執(zhí)行要被測試的軟件應用(例如,圖5A-5D的測試下軟件應用504)(塊706)。缺陷重新產(chǎn)生器206執(zhí)行該組動作(例如,腳本444中的動作)以嘗試重新產(chǎn)生所報告缺陷(塊708)。通過執(zhí)行該組動作,示例性缺陷重新產(chǎn)生器206嘗試重新產(chǎn)生用戶(例如,質(zhì)量保證工程師)先前經(jīng)由其確定所選擇的缺陷存在的狀況。如果缺陷未被修正,則選擇了所報告缺陷以供驗證的用戶可以觀察到缺陷仍存在而不必手動地回溯所述步驟。另一方面,如果缺陷已經(jīng)被修正,則用戶可以觀察到所報告缺陷已經(jīng)被修正而不必手動地回溯所述步驟。
[0086]示例性指令700然后可以結(jié)束。在一些示例中,指令700可以使控制返回至塊702以識別針對驗證的另一個所報告缺陷的選擇。以此方式,質(zhì)量保證工程師可以快速地驗證多個所報告缺陷已經(jīng)被修正。
[0087]圖8是表示示例性機器可讀指令800的流程圖,所述示例性機器可讀指令800當被執(zhí)行時使得處理器嘗試重新產(chǎn)生測試下軟件應用中的所報告缺陷并且驗證所報告缺陷是否繼續(xù)存在于軟件應用中。示例性指令可以由圖9的示例性處理器平臺900來執(zhí)行以實現(xiàn)圖1和/或3的示例性軟件測試器104、300。
[0088]圖8的示例性指令800開始于識別(例如,經(jīng)由圖3的用戶界面202)針對要被測試的軟件應用的所報告的軟件缺陷的選擇(塊802)。例如,用戶界面202可以從用戶接收指示了針對測試下軟件應用(例如,圖5A-5D的測試下軟件應用504)的所報告的軟件缺陷(例如,圖5B-5D的軟件缺陷508)的選擇的一個或多個命令。
[0089]缺陷重新產(chǎn)生器(例如,圖3的示例性缺陷重新產(chǎn)生器206)訪問表示一組動作的腳本以重新產(chǎn)生所選擇的所報告缺陷508 (塊804)。例如,缺陷重新產(chǎn)生器206可以接收被包括在缺陷記錄(例如,圖4E的缺陷記錄432)中的腳本(例如,圖4E的缺陷重新產(chǎn)生腳本444)。在一些示例中,缺陷重新產(chǎn)生器206訪問來自缺陷管理器(例如,圖1的缺陷管理器106)的缺陷記錄432和/或腳本444。
[0090]應用測試器(例如,圖3的示例性應用測試器204)執(zhí)行要被測試的軟件應用(例如,圖5A-5D的測試下軟件應用)(塊806)。示例性缺陷重新產(chǎn)生器206確定測試下軟件應用是否處于重新產(chǎn)生所報告缺陷的正確狀態(tài)(塊808)。例如,缺陷重新產(chǎn)生器206可以識別用于執(zhí)行一組動作的初始狀態(tài)(例如,圖4B和/或5B的狀態(tài)A)。
[0091]初始狀態(tài)可以根據(jù)腳本444、由用戶所規(guī)定的針對測試下軟件應用的缺省初始狀態(tài)、和/或初始狀態(tài)信息的任何其他源來確定。例如,缺陷重新產(chǎn)生器206可以通過以下內(nèi)容來確定測試下軟件應用是否處于初始狀態(tài):將被分配給測試下軟件應用的存儲器的內(nèi)容與針對初始狀態(tài)的存儲器的內(nèi)容進行比較、確定任何啟用的添加應用的狀態(tài)、確定測試下軟件應用是否處于已編程的穩(wěn)態(tài)(例如,在主屏幕上、在所指定的菜單屏幕上等等)和/或以其他方式將測試下軟件應用的狀態(tài)與初始狀態(tài)進行比較。
[0092]如果測試下軟件應用未處于正確的(例如,初始的)狀態(tài)(塊808 ),則示例性缺陷重新產(chǎn)生器206將測試下軟件應用置于正確(例如,初始的)狀態(tài)(塊810)。例如,缺陷重新產(chǎn)生器206可以經(jīng)由圖3的用戶界面202執(zhí)行與測試下軟件應用的一個或多個交互。在一些其他示例中,缺陷重新產(chǎn)生器206向應用測試器204提供要被置于測試下軟件應用504的所分配的存儲器中的數(shù)據(jù),以將測試下軟件應用置于初始狀態(tài)。
[0093]在將測試下軟件應用置于初始狀態(tài)(塊810)之后,或者在缺陷重新產(chǎn)生器206確定測試下軟件應用處于初始狀態(tài)(塊808)的情況下,示例性缺陷重新產(chǎn)生器206執(zhí)行一組動作(例如,腳本444中的動作)以嘗試重新產(chǎn)生所報告缺陷(塊812)。通過執(zhí)行該組動作,示例性缺陷重新產(chǎn)生器206嘗試重新產(chǎn)生用戶(例如,質(zhì)量保證工程師)先前經(jīng)由其確定所選擇的缺陷存在的狀況。
[0094]缺陷驗證器(例如,圖3的缺陷驗證器314)確定所報告缺陷是否仍然存在(塊814)。例如,缺陷驗證器314可以分析腳本444以確定是否存在任何驗證指令。在一些其他示例中,缺陷驗證器314針對指示了缺陷的存在或不存在的用戶交互(例如,用戶選擇圖5C和的“驗證修正”按鈕520或“拒絕修正”按鈕522)監(jiān)視用戶界面202。
[0095]如果缺陷驗證器314確定缺陷不存在(塊814),則示例性缺陷驗證器314將所報告缺陷標記為已修正(塊816)。例如,缺陷驗證器816可以改變?nèi)毕萦涗?32中的狀態(tài)或其他信息。另一方面,如果缺陷仍然不存在(塊814),則缺陷驗證器816返回所報告缺陷(例如,至圖1的應用開發(fā)器102和/或至缺陷管理器106)(塊818)。
[0096]示例性指令800然后可以結(jié)束。在一些示例中,指令800可以使控制返回至塊802以識別針對驗證的另一所報告缺陷的選擇。
[0097]圖9是能夠執(zhí)行圖6-8的指令600、700、800以實現(xiàn)圖1-3的軟件測試器102、200、和/或300的示例性處理器平臺900的框圖。計算機900例如能夠是服務器、個人計算機、或者任何其他類型的計算設(shè)備。
[0098]即時示例的處理器平臺900包括處理器912。例如,處理器912能夠由來自任何期望的家族或制造商的一個或多個微處理器或控制器來實現(xiàn)。圖9的示例性處理器912實現(xiàn)了圖3的軟件測試器300,包括示例性應用測試器204、示例性缺陷重新產(chǎn)生器206、示例性測試下軟件應用208、示例性缺陷驗證器314、示例性腳本記錄器316、和/或示例性腳本生成器318。
[0099]處理器912包括本地存儲器913 (例如,高速緩存)并且經(jīng)由總線918與包括易失性存儲器914和非易失性存儲器916的主存儲器進行通信。易失性存儲器914可以由同步動態(tài)隨機存取存儲器(SDRAM)、動態(tài)隨機存取存儲器(DRAM)、RAMBUS動態(tài)隨機存取存儲器(RDRAM)和/或任何其他類型的隨機存取存儲器設(shè)備來實現(xiàn)。非易失性存儲器916可以由閃存和/或任何其他期望類型的存儲器設(shè)備來實現(xiàn)。對主存儲器914、916的訪問由存儲器控制器來控制。示例性本地存儲器913、示例性易失性存儲器914、和/或示例性非易失性存儲器916中的任何一個可以存儲表示測試下軟件應用208、腳本212、和/或用戶交互日志320的數(shù)據(jù)和/或指令。示例性應用測試器204、示例性缺陷重新產(chǎn)生器206、示例性測試下軟件應用208、示例性缺陷驗證器314、示例性腳本記錄器316、和/或示例性腳本生成器318、和/或更一般地示例性處理器912訪問來自本地存儲器913、易失性存儲器914、和/或非易失性存儲器916中的任何一個的測試下軟件應用208、腳本212、和/或用戶交互日志 320。
[0100]處理器平臺900還包括接口電路920。接口電路920可以由任何類型的接口標準來實現(xiàn),諸如以太網(wǎng)接口、通用串行總線(USB)、和/或PCI高速接口。
[0101]一個或多個輸入設(shè)備922被連接至接口電路920。(一個或多個)輸入設(shè)備922準許用戶將數(shù)據(jù)和命令輸入到處理器912中。(一個或多個)輸入設(shè)備能夠由例如鍵盤、鼠標、觸摸屏、軌跡板、軌跡球、isopoint、和/或語音識別系統(tǒng)來實現(xiàn)。
[0102]一個或多個輸出設(shè)備924也連接至接口電路920。輸出設(shè)備924能夠例如由顯示設(shè)備(例如,液晶顯示器、陰極射線管顯示器(CRT)、打印機、和/或揚聲器)來實現(xiàn)。因此,接口電路920通常包括圖形驅(qū)動卡。示例性接口電路920、(一個或多個)示例性輸入設(shè)備922、和/或(一個或多個)示例性輸出設(shè)備924可以被結(jié)合使用以實現(xiàn)圖2和/或3的用戶界面202。
[0103]接口電路920還包括諸如調(diào)制解調(diào)器或網(wǎng)絡接口卡之類的通信設(shè)備以促進經(jīng)由網(wǎng)絡926 (例如,以太網(wǎng)連接、數(shù)字訂戶線路(DSL)、電話線、同軸線纜、蜂窩電話系統(tǒng)等等)與外部計算機的數(shù)據(jù)交換。
[0104]處理器平臺900還包括用于存儲軟件和數(shù)據(jù)的一個或多個大容量存儲設(shè)備928。此類大容量存儲設(shè)備928的示例包括軟盤驅(qū)動、硬驅(qū)動盤、光盤驅(qū)動、和數(shù)字多功能盤(DVD)驅(qū)動。大容量存儲設(shè)備928可以實現(xiàn)應用測試器204 (例如,以存儲測試下軟件應用208)、缺陷重新產(chǎn)生器206 (例如,以存儲腳本212)、缺陷驗證器312 (例如,以存儲腳本212)、腳本記錄器316 (例如,以存儲日志320)、和/或腳本生成器318 (例如,以存儲(一個或多個)所生成的腳本和/或存儲腳本212)中的一個或多個。
[0105]圖6-8的經(jīng)編碼指令932可以被存儲在大容量存儲設(shè)備928中、易失性存儲器914中、非易失性存儲器916中、和/或諸如CD或DVD之類的可移除存儲介質(zhì)上。
[0106]上文所述的示例性方法、裝置、和制品提供了對軟件缺陷的快速且高效的驗證。對比于已知的軟件缺陷驗證的手動方法,本文所公開的示例性方法、裝置、和制品更可靠,原因在于他們自動地重新產(chǎn)生導致軟件缺陷的報告的步驟而避免了會發(fā)生在手動過程期間的重新產(chǎn)生中的差錯的可能性。因而,方法、裝置、和制品通過使得更多的資源分配到開發(fā)和/或測試而不是使用先前的方法那樣分配來準許更高質(zhì)量的軟件應用的開發(fā)。
[0107]盡管在本文中已經(jīng)描述了某些示例性方法、裝置、和制品,但本專利的覆蓋范圍并不限于此。相反,本專利覆蓋了公平落入本專利的權(quán)利要求范圍內(nèi)的所有方法、裝置和制品O
【權(quán)利要求】
1.一種方法,包括: 利用處理器訪問表示要在執(zhí)行要被測試的軟件應用時被執(zhí)行的一組動作的腳本,該組動作與所報告缺陷相關(guān)聯(lián); 執(zhí)行計算機上的要被測試的軟件應用;以及 利用所述處理器經(jīng)由要被測試的應用執(zhí)行所述腳本中的該組動作以嘗試重新產(chǎn)生所述所報告缺陷。
2.如權(quán)利要求1所述的方法,還包括: 將要被測試的軟件應用中的缺陷報告為所報告缺陷;以及 將腳本附接至所報告缺陷。
3.如權(quán)利要求2所述的方法,還包括:通過記錄與所述軟件應用的多個用戶交互來生成所述腳本。
4.如權(quán)利要求1所述的方法,還包括驗證:當所述腳本中的該組動作已經(jīng)被執(zhí)行并且所述缺陷未被檢測到時,已經(jīng)從所述軟件應用中移除了所述所報告缺陷。
5.如權(quán)利要求1所述的方法,還包括:在執(zhí)行所述腳本中的該組動作之前,將要被測試的軟件應用置于初始狀態(tài)。
6.一種裝置,包括: 應用測試器,用以執(zhí)行測試下軟件應用;以及 缺陷重新產(chǎn)生器,用以嘗試通過在所述應用測試器執(zhí)行所述測試下軟件應用時執(zhí)行在腳本中定義的一組動作來重新產(chǎn)生所報告缺陷,該組動作與所述所報告缺陷相關(guān)聯(lián)。
7.如權(quán)利要求6所述的裝置,還包括: 腳本記錄器,用以監(jiān)視與所述測試下軟件應用的用戶交互;以及 腳本生成器,用以在用戶界面接收到缺陷要被報告的指示時根據(jù)所監(jiān)視的用戶交互來生成腳本。
8.如權(quán)利要求7所述的裝置,其中所述腳本生成器生成所述腳本以包括繼所述測試下軟件應用的預定狀態(tài)的發(fā)生之后發(fā)生的用戶交互。
9.如權(quán)利要求6所述的裝置,還包括缺陷驗證器,用以在該組動作已經(jīng)被執(zhí)行時確定是否已經(jīng)從軟件應用中移除了所報告缺陷。
10.如權(quán)利要求6所述的裝置,其中所述缺陷重新產(chǎn)生器在執(zhí)行該組動作之前在所述測試下軟件應用未處于初始狀態(tài)時將所述測試下軟件應用置于所述初始狀態(tài)。
11.一種計算機可讀存儲介質(zhì),包括計算機可讀指令,所述計算機可讀指令當由計算機執(zhí)行時使得所述計算機至少進行以下操作: 訪問表示要在執(zhí)行要被測試的軟件應用時被執(zhí)行的一組動作的腳本,該組動作與所報告缺陷相關(guān)聯(lián); 執(zhí)行計算機上的要被測試的軟件應用;以及 經(jīng)由要被測試的應用執(zhí)行腳本中的該組動作以嘗試重新產(chǎn)生所報告缺陷。
12.如權(quán)利要求11所述的計算機可讀存儲介質(zhì),其中所述指令還使得所述計算機: 將要被測試的軟件應用中的缺陷報告為所報告缺陷;以及 將腳本附接至所報告缺陷。
13.如權(quán)利要求11所述的計算機可讀存儲介質(zhì),其中所述指令還使得所述計算機通過記錄與所述軟件應用的多個用戶交互來生成所述腳本。
14.如權(quán)利要求11所述的計算機可讀存儲介質(zhì),其中所述指令還使得所述計算機驗證:當所述腳本中的該組動作已經(jīng)被執(zhí)行并且所述缺陷未被檢測到時,已經(jīng)從所述軟件應用中移除了所述所報告缺陷。
15.如權(quán)利要求11所述的計算機可讀存儲介質(zhì),其中所述指令還使得所述計算機在執(zhí)行所述腳本中的該組動作之前將要被測試的軟件應用置于初始狀態(tài)。
【文檔編號】G06F11/36GK104246714SQ201280072829
【公開日】2014年12月24日 申請日期:2012年4月23日 優(yōu)先權(quán)日:2012年4月23日
【發(fā)明者】塔爾 D., 梅爾曼 I. 申請人:惠普發(fā)展公司,有限責任合伙企業(yè)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1