專利名稱:一種軟件測(cè)試中的Bug提示方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件測(cè)試領(lǐng)域,特別涉及一種軟件測(cè)試中的Bug提示方 法和裝置。
背景技術(shù):
軟件測(cè)試是軟件開發(fā)過(guò)程的重要組成部分,是用來(lái)確認(rèn)一個(gè)程序的品 質(zhì)或性能是否符合開發(fā)之前所提出的一些要求,就是在軟件投入運(yùn)行前, 對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼的最終復(fù)審,是軟件質(zhì)量保證的 關(guān)鍵步驟。軟件測(cè)試可以檢測(cè)到軟件產(chǎn)品中的各種Bug, Bug用于指代軟 件程序中潛在的在運(yùn)行時(shí)將會(huì)出現(xiàn)的異?;蝈e(cuò)誤。
在現(xiàn)有的軟件測(cè)試的過(guò)程中,在當(dāng)前運(yùn)行的程序出現(xiàn)Bug時(shí),不管 當(dāng)前軟件運(yùn)行在測(cè)試環(huán)境還是非測(cè)試環(huán)境,即便軟件產(chǎn)品的使用對(duì)象和 目的并不相同, 一般都是將出錯(cuò)信息用界面的形式提示用戶,不管是對(duì) 用戶的提示界面還是對(duì)測(cè)試人員的提示界面上,也總是僅僅包括當(dāng)前運(yùn) 行的程序出現(xiàn)了錯(cuò)誤的信息,都是用同 一種方式來(lái)提示Bug。
從上述過(guò)程中可以看出,在現(xiàn)有的軟件測(cè)試過(guò)程中,在程序運(yùn)行出現(xiàn) Bug時(shí),無(wú)法根據(jù)實(shí)際運(yùn)行環(huán)境的不同做出相應(yīng)的不同的提示。
總之,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問(wèn)題就是如 何能夠創(chuàng)新的提出一種軟件測(cè)試中的Bug提示方法,以解決現(xiàn)有技術(shù)中 無(wú)法根據(jù)軟件運(yùn)行的對(duì)象不同從而給出相應(yīng)的Bug提示,導(dǎo)致的無(wú)法同 時(shí)滿足用戶或者測(cè)試人員各自需求的問(wèn)題。
發(fā)明內(nèi)容
本申請(qǐng)所要解決的技術(shù)問(wèn)題是提供一種軟件測(cè)試中的Bug提示方法, 用以解決現(xiàn)有技術(shù)中無(wú)法根據(jù)軟件運(yùn)行的對(duì)象不同從而給出相應(yīng)的Bug 提示,導(dǎo)致的無(wú)法同時(shí)滿足用戶或者測(cè)試人員各自需求的問(wèn)題。本申請(qǐng)還提供了一種軟件測(cè)試中的Bug提示裝置,用以保證上述方 法在實(shí)際中的實(shí)現(xiàn)及應(yīng)用。
為了解決上述問(wèn)題,本申請(qǐng)公開了一種軟件測(cè)試中的Bug提示方法, 包括
在當(dāng)前運(yùn)行的程序出現(xiàn)Bug時(shí),將所述Bug的指示信息保存至線程
變量中;
判斷當(dāng)前運(yùn)行環(huán)境是否是測(cè)試環(huán)境,如果是,則將所述Bug的指示 信息的具體內(nèi)容進(jìn)行顯示;如果否,則直接提示用戶出錯(cuò)信息。
可選的,所述將所述Bug的詳細(xì)信息保存至線程變量中之前,還包
括
創(chuàng)建一個(gè)用于保存Bug的指示信息的線程變量。
可選的,所述將所述Bug的指示信息的具體內(nèi)容進(jìn)行顯示具體包括
讀取所述線程變量并獲取所述Bug的指示信息,同時(shí)將所述Bug的指示
信息的具體內(nèi)容進(jìn)行顯示。
可選的,所述判斷當(dāng)前運(yùn)行環(huán)境是否是測(cè)試環(huán)境,具體包括
在Web.xml文件中添加測(cè)試環(huán)境的判斷參數(shù),所述判斷參數(shù)包括參
數(shù)名稱和對(duì)應(yīng)的參數(shù)值;
判斷所述參數(shù)名稱和參數(shù)值與預(yù)置的判斷條件是否一致。
可選的,所述預(yù)置的判斷條件為在系統(tǒng)中預(yù)先設(shè)置的判斷測(cè)試環(huán)境的
參數(shù)名稱和參數(shù)值。
可選的,所述指示信息包括所述Bug的位置信息和錯(cuò)誤類型。 可選的,所述Bug包括錯(cuò)誤和/或異?,F(xiàn)象。 本申請(qǐng)公開了一種軟件測(cè)試中的Bug提示裝置,該裝置包括 保存模塊,用于在當(dāng)前運(yùn)行的線程出現(xiàn)Bug時(shí),將所述Bug的信息
保存至線程變量中;
判斷模塊,用于判斷當(dāng)前運(yùn)行環(huán)境是否是測(cè)試環(huán)境;
顯示模塊,用于當(dāng)所述判斷模塊的結(jié)果為是時(shí),將所述指示信息的具
體內(nèi)容進(jìn)行顯示;
提示模塊,用于當(dāng)所述判斷模塊的結(jié)果為否時(shí),直接提示用戶出錯(cuò)信可選的,還包括
創(chuàng)建模塊,用于創(chuàng)建一個(gè)用于保存Bug的指示信息的線程變量。 可選的,所述判斷模塊具體包括
添加子才莫塊,用于在Web應(yīng)用的Web.xml文件中添加測(cè)試環(huán)境的判 斷參數(shù),所述判斷參數(shù)包括參數(shù)名稱和對(duì)應(yīng)的參數(shù)值;
判斷子模塊,用于判斷所述參數(shù)名稱和參數(shù)值與預(yù)置的判斷條件是否 一致。
可選的,所述指示信息包括所述Bug的位置信息和錯(cuò)誤類型。 可選的,所述Bug包括錯(cuò)誤和/或異常現(xiàn)象。 與現(xiàn)有技術(shù)相比,本申請(qǐng)包括以下優(yōu)點(diǎn)
在本申請(qǐng)實(shí)施例中,在當(dāng)前運(yùn)行的程序出現(xiàn)Bug時(shí),可以首先將Bug 的指示信息保存至一個(gè)線程變量中,并判斷當(dāng)前運(yùn)行的環(huán)境是否是測(cè)試 環(huán)境,如果是,則向測(cè)試人員顯示Bug的指示信息,如果否,則直接提 示用戶出錯(cuò)信息,通過(guò)這種方式,不僅使得測(cè)試人員能很準(zhǔn)確的向開發(fā)人 員描述產(chǎn)生的Bug信息,開發(fā)人員就可以避免登錄測(cè)試服務(wù)器搜索和查看 錯(cuò)誤日志才能找出程序中的Bug,還能針對(duì)一般用戶僅僅做出友好界面的 提示,這就在為開發(fā)人員的測(cè)試和修復(fù)工作節(jié)省不少時(shí)間,從而提高了 開發(fā)人員進(jìn)行測(cè)試和Bug修復(fù)效率的同時(shí),也提高了用戶的使用體驗(yàn), 即是同時(shí)滿足了普通用戶和專業(yè)人員各自不同的需求。當(dāng)然,實(shí)施本申 請(qǐng)的任一產(chǎn)品并不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì) 實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地, 下面描述中的附圖僅僅是本申請(qǐng)的 一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人 員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其 他的附圖。
圖1是本申請(qǐng)的一種軟件測(cè)試中的Bug提示方法實(shí)施例1的流程j; 圖2是本申請(qǐng)的一種軟件測(cè)試中的Bug提示方法實(shí)施例2的流程圖;圖3是本申請(qǐng)的一個(gè)具體例子中展示給測(cè)試人員的一個(gè)界面示意圖; 圖4是本申請(qǐng)的一個(gè)具體例子中展示給普通用戶的一個(gè)界面示意圖; 圖5是本申請(qǐng)的一種軟件測(cè)試中的Bug提示裝置實(shí)施例1的結(jié)構(gòu)框
圖6是本申請(qǐng)的一種軟件測(cè)試中的Bug提示裝置實(shí)施例2的結(jié)構(gòu)框
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案 進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí) 施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù) 人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本 申請(qǐng)保護(hù)的范圍。
本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算裝置環(huán)境或配置中。例如個(gè) 人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處 理器裝置、包括以上任何裝置或設(shè)備的分布式計(jì)算環(huán)境等等。
本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的 一般上下文中描 述,例如程序模塊。 一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽 象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布 式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過(guò)通信網(wǎng)絡(luò) 而被連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊
本申請(qǐng)的主要思想包括,在當(dāng)前運(yùn)行的程序出現(xiàn)Bug時(shí),通過(guò)增加 判斷當(dāng)前運(yùn)行的環(huán)境是否是測(cè)試環(huán)境的步驟,就可以根據(jù)判斷步驟的結(jié) 果,向軟件測(cè)試的測(cè)試人員以及普通用戶顯示出不同的Bug信息,在測(cè) 試環(huán)境下,顯示給測(cè)試人員的信息包括了 Bug的位置信息以及出錯(cuò)類型, 可以使得開發(fā)人員在后續(xù)分析修復(fù)Bug的過(guò)程中,從而可以提高Bug的 修復(fù)效率,同時(shí)在非測(cè)試環(huán)境下,則僅僅為用戶顯示友好的界面提示出 錯(cuò)信息,也提升了用戶的使用體驗(yàn),同時(shí)滿足了普通用戶和專業(yè)人員各 自不同的需求。參考圖1,示出了本申請(qǐng)一種軟件測(cè)試中的Bug提示方法實(shí)施例1 的流程圖,可以包括以下步驟
步驟101:在當(dāng)前運(yùn)行的程序出現(xiàn)Bug時(shí),將所述Bug的指示信息 保存至線程變量中;
在實(shí)際應(yīng)用中,當(dāng)前運(yùn)行的程序出現(xiàn)Bug時(shí),系統(tǒng)會(huì)產(chǎn)生一個(gè)異常 對(duì)象,該異常對(duì)象包括所述Bug的詳細(xì)信息,例如,Bug的類型,Bug 的位置等信息,可以提取全部或者部分所述異常對(duì)象中的Bug的詳細(xì)信 息,作為所述Bug的指示信息;并將該Bug的指示信息保存至線程變量 中,所述線程變量可以通過(guò)預(yù)置一個(gè)類文件來(lái)實(shí)現(xiàn),即是在程序沒(méi)有運(yùn) 行之前,創(chuàng)建一個(gè)類文件用于保存Bug的指示信息,所述指示信息具體 可以是所述Bug的位置信息和/或錯(cuò)誤類型;那么,當(dāng)程序運(yùn)行之后,該 類文件就以線程變量的形式存在,因此,在本申請(qǐng)中,均釆用線程變量 進(jìn)行說(shuō)明,本領(lǐng)域技術(shù)人員可以很容易的知道,該線程變量在程序或線 程未運(yùn)行之前,為預(yù)置的一個(gè)類文件;
步驟102:判斷當(dāng)前運(yùn)行環(huán)境是否是測(cè)試環(huán)境,如果是,則進(jìn)入步驟 103;如果否,則進(jìn)入步驟104;
所述測(cè)試環(huán)境指測(cè)試運(yùn)行其上的軟件和硬件環(huán)境的描述,表示當(dāng)前運(yùn) 行的軟件程序是由專門的測(cè)試人員進(jìn)行測(cè)試的,判斷該程序的當(dāng)前運(yùn)行 環(huán)境是否是測(cè)試環(huán)境,即是判斷是否該軟件產(chǎn)品的使用對(duì)象是一般的用 戶還是專業(yè)的測(cè)試人員;
步驟103:將所述Bug指示信息的具體內(nèi)容進(jìn)行顯示;
如果是測(cè)試人員進(jìn)行的軟件測(cè)試過(guò)程,則需要讀取所述線程變量并獲 取所述Bug的指示信息,同時(shí)將所述Bug的指示信息的具體內(nèi)容進(jìn)行顯 示,以便于開發(fā)人員根據(jù)該指示信息進(jìn)行后續(xù)的Bug修復(fù)工作;
步驟104:直接提示用戶出錯(cuò)信息。
如果不是測(cè)試環(huán)境,例如是線上環(huán)境,則直接提示用戶當(dāng)前運(yùn)行的程 序出錯(cuò)即可。
一般情況下,對(duì)于普通的用戶,即是在非測(cè)試環(huán)境下,當(dāng)軟件程序運(yùn)行出錯(cuò)的時(shí)候,只需給出易于用戶理解的友好提示即可,這就提升了用
戶的使用體驗(yàn);而在測(cè)試環(huán)境下,對(duì)于該軟件測(cè)試人員或?qū)iT的開發(fā)人 員,如果能在程序運(yùn)行出現(xiàn)Bug時(shí),能夠知道該Bug的詳細(xì)信息是什么, 就可以定位Bug出現(xiàn)在哪個(gè)系統(tǒng)或模塊,也會(huì)更有利于測(cè)試人員分析Bug 并獲得解決方案;可以看出,運(yùn)用本申請(qǐng)實(shí)施例的方法,通過(guò)對(duì)當(dāng)前運(yùn) 行環(huán)境是否是測(cè)試環(huán)境進(jìn)行判斷,并通過(guò)將預(yù)先獲取到的Bug的指示信 息進(jìn)行顯示,就可以使得開發(fā)人員可以方便的根據(jù)Bug的指示信息進(jìn)行 Bug分析并進(jìn)一步進(jìn)行修復(fù)工作,進(jìn)而提高了 Bug的修復(fù)效率。
參考圖2,示出了本申請(qǐng)一種軟件測(cè)試中的Bug提示方法實(shí)施例2 的流程圖,可以包括以下步驟
步驟201:創(chuàng)建一個(gè)用于保存Bug的指示信息的線程變量。
在實(shí)際應(yīng)用中,本實(shí)施例可以應(yīng)用于J2EE的Web應(yīng)用系統(tǒng),J2EE 的Web應(yīng)用系統(tǒng)采用多線程并發(fā)接收處理從瀏覽器發(fā)送過(guò)來(lái)的超文本傳 輸協(xié)議(Hypertext Transfer Protocol, HTTP)請(qǐng)求;J2EE的Web應(yīng)用系 統(tǒng)接收到一個(gè)HTTP請(qǐng)求時(shí)會(huì)啟動(dòng)一個(gè)線程來(lái)處理當(dāng)前的請(qǐng)求,通過(guò)創(chuàng) 建的線程變量,系統(tǒng)能夠記錄保存當(dāng)前線程出現(xiàn)的Bug,當(dāng)這個(gè)線程運(yùn)行 結(jié)束后,清空所述線程變量中保存的當(dāng)前線程的Bug信息;
步驟202:在當(dāng)前運(yùn)行的線程出現(xiàn)Bug時(shí),將所述Bug的指示信息 保存至所述線程變量中;
步驟203:在Web應(yīng)用的Web.xml文件中添加測(cè)試環(huán)境的判斷參數(shù), 所述判斷參數(shù)包括參數(shù)名稱和對(duì)應(yīng)的參數(shù)值;
在當(dāng)前Web應(yīng)用的Web.xml文件中添加測(cè)試環(huán)境的判斷參數(shù),所述 判斷參數(shù)包括參數(shù)名稱和對(duì)應(yīng)的參數(shù)值,具體的,可在該Web.xml文件 的根節(jié)點(diǎn)之后添加參數(shù),所述參數(shù)名稱可以任意設(shè)置,所述參數(shù)值是所 述參數(shù)名稱的參數(shù)值;
步驟204:判斷所述參數(shù)名稱和參數(shù)值與預(yù)置的判斷條件是否一致, 如果是,進(jìn)入步驟205,如果否,進(jìn)入步驟206;
在當(dāng)前程序運(yùn)行的時(shí)候,系統(tǒng)會(huì)讀取所述Web.xml文件,以便于獲知所述Web.xml文件中是否添加有所述參數(shù)名稱和對(duì)應(yīng)的參數(shù)值,為后 續(xù)進(jìn)行判斷是否是測(cè)試環(huán)境做準(zhǔn)備;當(dāng)獲取到的該參數(shù)名稱和對(duì)應(yīng)的參數(shù) 值之后,與系統(tǒng)中預(yù)置的判斷條件相比較,當(dāng)參數(shù)名稱和參數(shù)值均符合判斷 條件的內(nèi)容時(shí),則認(rèn)為當(dāng)前程序的運(yùn)行環(huán)境為測(cè)試環(huán)境;所述預(yù)置的判斷條 件為在系統(tǒng)中預(yù)先設(shè)置的判斷測(cè)試環(huán)境的參數(shù)名稱和參數(shù)值,即在向所述 Web.xml文件中添加測(cè)試環(huán)境的判斷參數(shù)名稱和參數(shù)值時(shí),也同時(shí)將該參 數(shù)名稱和參數(shù)值預(yù)置在系統(tǒng)中作為測(cè)試環(huán)境的判斷條件。
步驟205:將所述指示信息的具體內(nèi)容進(jìn)行顯示;
步驟206:直接提示用戶出錯(cuò)信息。
需要說(shuō)明的是,在本實(shí)施例中,如何判斷測(cè)試環(huán)境是根據(jù)在Web.xml 文件中是否添加有測(cè)試環(huán)境的判斷參數(shù)進(jìn)行的,即測(cè)試環(huán)境中的Web.xml 文件中含有所述參數(shù)名稱和對(duì)應(yīng)的參數(shù)值,而非測(cè)試環(huán)境中的Web.xml 文件并不含有所述參數(shù)名稱和對(duì)應(yīng)的參數(shù)值,通過(guò)對(duì)測(cè)試環(huán)境的判斷可 以向不同的軟件對(duì)象展示不同的提示結(jié)果,更有利于Bug的修復(fù),同時(shí) 滿足了普通用戶和專業(yè)測(cè)試人員的要求。
對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列 的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請(qǐng)并不受所描述的動(dòng) 作順序的限制,因?yàn)橐罁?jù)本申請(qǐng),某些步驟可以采用其他順序或者同時(shí) 進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書中所描述的實(shí)施例均 屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本申請(qǐng)所必須的。
為使本領(lǐng)域技術(shù)人員更好地理解本申請(qǐng),以下結(jié)合本申請(qǐng)?jiān)趯?shí)際中 應(yīng)用的具體例子對(duì)本申請(qǐng)進(jìn)一步說(shuō)明。
步驟Al:創(chuàng)建一個(gè)用于保存Bug的指示信息的線程變量,名稱為 ErrorRecorderHolder;
在實(shí)際應(yīng)用中,創(chuàng)建該類文件的過(guò)程可以如下所示
Public class ErrorRecorderHolder{ 〃線程變量
private static final ThreadLocal context = new ThreadLocal ();〃獲得當(dāng)前上下文的錯(cuò)誤信息
public static Object getErrorRecoder ( ) { return context.get ();
〃設(shè)置當(dāng)前上下文的出錯(cuò)信息
public static void setErrorRecorder ( Object errorRecorder) { context.set ( errorRecorder );
步驟A2:在當(dāng)前運(yùn)行的線程出現(xiàn)Bug時(shí),將所述Bug的指示信息保 存至所述線程變量中;
在實(shí)際應(yīng)用中,將所述Bug的指示信息保存至ErrorRecorderHolder 的過(guò)程可以如下所示
Public void dealSomething ( ) {
Try{
Proccess ();
} catch ( Exception e ) {
ErrorRecorderHolder.setErrorRecorder ("程序運(yùn)行出現(xiàn)錯(cuò)誤 了 "+e.getMessage ());
〃 ErrorRecorderHolder.setErrorRecorder ( e );
需要說(shuō)明的是,如果當(dāng)前運(yùn)行的程序沒(méi)有出現(xiàn)Bug,則所述 ErrorRecorderHolder可以不保存任何異?;蝈e(cuò)誤的詳細(xì)信息;
步驟A3:在Web應(yīng)用的Web.xml文件中添加測(cè)試環(huán)境的判斷參數(shù), 所述判斷參數(shù)包括參數(shù)名稱和對(duì)應(yīng)的參數(shù)值;
在本例子中,在Web.xml中^L置一個(gè)參數(shù)具體可以如下所示 <context-param>
<param-name> test </param-name><param-value>true</param-value> </context-param>
其中,"test"即是設(shè)置的參數(shù)名稱,對(duì)應(yīng)的參數(shù)值即是"true";所述 參數(shù)名稱可以任意設(shè)置其內(nèi)容,符合參數(shù)名稱與參數(shù)值相對(duì)應(yīng)即可;例 如,添加至Web.xml文件中的參數(shù)名稱還可以為"ABC",所述對(duì)應(yīng)的參 數(shù)值還可以為"123";
在當(dāng)前程序運(yùn)行的時(shí)候,系統(tǒng)會(huì)讀取所述Web.xml文件,以便于獲 知所述Web.xml文件中是否添加有所述參數(shù)名稱和對(duì)應(yīng)的參數(shù)值,為后 續(xù)進(jìn)行判斷是否是測(cè)試環(huán)境做準(zhǔn)備;
步驟A4:判斷所述參數(shù)名稱和參數(shù)值是否與預(yù)置的判斷條件一致, 如果是,進(jìn)入步驟A5,如果否,進(jìn)入步驟A6;
當(dāng)獲取到的該參數(shù)名稱和對(duì)應(yīng)的參數(shù)值之后,與預(yù)置的判斷條件相比較, 當(dāng)參數(shù)名稱和參數(shù)值均符合判斷條件的內(nèi)容時(shí),則認(rèn)為當(dāng)前程序的運(yùn)行環(huán)境 為測(cè)試環(huán)境;例如,與步驟A3中的例子相對(duì)應(yīng),所述判斷條件可以為 "ABC=123",即是當(dāng)后續(xù)獲取到的參數(shù)名稱為"ABC",且其對(duì)應(yīng)的參數(shù)值 也為"123"時(shí),則認(rèn)為當(dāng)前環(huán)境為測(cè)試環(huán)境;具體的代碼實(shí)現(xiàn)可以如下所 示
Public class WebController extends HttpServlet{
Private Processor processor;
Private ErrorProcessor errorProcessor;
public void init ( ServletConfig config ) throws ServletException{ processor=getProcessor ( config );
If (this.getServletContext ( "test" ) == "true")〃如果是測(cè)試環(huán)境運(yùn)行下面 的程序
errorProcessor = getErrorProcessor ( config ); protected void doGet ( HttpServletRequest req, HttpServletResponse resp )throws ServletException, IOException{ try{
processor.process ( req, resp ); } catch ( Exceptione ) { ErrorRecorderHolder.setErrorRecorder ( e ); }fmally{
If (this,getServletContext ( "test" ) == "true") 〃如果是測(cè)試環(huán)境運(yùn)4亍下面 的程序
processErrorRecorder ( req, resp );
protected void doPost ( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException{ doGet ( req, resp );
Private void processErrorRecorder ( HttpServletRequest req, HttpServletResponse resp ) {
Object o= ErrorRecorderHolder.getErrorRecorder (); If ( o!=null) 〃有錯(cuò)誤,不為空表示有錯(cuò)誤
String result= errorProcessor.parseError(o); 〃分沖斤4晉"i吳,侈寸^口o是 NullPointerException對(duì)象的話,就說(shuō)哪一行代碼哪個(gè)變量為null. Resp.get Writer ( ) .write (result); 〃result是一個(gè)可以彈出的包含錯(cuò)誤提 示信息的窗口的javascript代碼。
ErrorRecorderHolder. setErrorRecorder(null);〃清空當(dāng)前線程的BUG信息容器 中的BUG信息步驟A5:將所述指示信息的具體內(nèi)容進(jìn)行顯示; 在本例子中,可以參考圖3所示,即是實(shí)際中展示給測(cè)試人員的一個(gè) 界面示意步驟A6:直接提示用戶出錯(cuò)信息。
在本例子中,可以參考圖4所示,即是實(shí)際中展示給普通用戶的一個(gè) 界面示意圖。
綜上所述,在本申請(qǐng)實(shí)施例中,通過(guò)上述方法,可以判斷出當(dāng)前運(yùn)行的 環(huán)境是不是測(cè)試環(huán)境,如果是測(cè)試環(huán)境,則將當(dāng)前程序運(yùn)行出現(xiàn)的Bug的位 置信息和出錯(cuò)類型顯示給測(cè)試人員,可以使得開發(fā)人員在后續(xù)分析修復(fù)Bug 過(guò)程中節(jié)省大量的時(shí)間,提高了開發(fā)人員后續(xù)修復(fù)Bug的效率,如果是非測(cè) 試環(huán)境,則僅僅為用戶顯示友好的界面提示出錯(cuò)信息,也提升了用戶的使用 體驗(yàn),使得本申請(qǐng)實(shí)施例的方法可以同時(shí)滿足普通用戶和專業(yè)人員各自不同 的需求。
與上述本申請(qǐng)一種軟件測(cè)試中的Bug提示方法實(shí)施例1所提供的方 法相對(duì)應(yīng),參見圖5,本申請(qǐng)還提供了一種軟件測(cè)試中的Bug提示裝置實(shí) 施例1,在本實(shí)施例中,該裝置可以包括
保存模塊501,用于在當(dāng)前運(yùn)行的線程出現(xiàn)Bug時(shí),將所述Bug的 信息保存至線程變量中;
判斷模塊502,用于判斷當(dāng)前運(yùn)行環(huán)境是否是測(cè)試環(huán)境;
顯示模塊503,用于當(dāng)所述判斷模塊的結(jié)果為是時(shí),將所述指示信息 的具體內(nèi)容進(jìn)行顯示;
提示模塊504,用于當(dāng)所述判斷模塊的結(jié)果為否時(shí),直接提示用戶出 錯(cuò)信息。
本實(shí)施例中,所述指示信息可以包括所述Bug的位置信息和錯(cuò)誤類 型;所述Bug可以包括錯(cuò)誤和/或異?,F(xiàn)象;可以看出,運(yùn)用本申請(qǐng)實(shí)施 例的裝置,通過(guò)由判斷模塊502對(duì)當(dāng)前運(yùn)行環(huán)境是否是測(cè)試環(huán)境進(jìn)行判斷,并通過(guò)所述顯示模塊503將預(yù)先獲取到的Bug的指示信息進(jìn)行顯示, 就可以使得開發(fā)人員可以方便的根據(jù)指示信息進(jìn)行Bug分析并進(jìn)一步進(jìn) 行修復(fù)工作,減少了開發(fā)人員獲取解決方案的時(shí)間,進(jìn)而提高了 Bug的 修復(fù)效率。
與上述本申請(qǐng)一種軟件測(cè)試中的Bug提示方法實(shí)施例2所提供的方 法相對(duì)應(yīng),參見圖6,本申請(qǐng)還提供了一種軟件測(cè)試中的Bug提示裝置的 優(yōu)選實(shí)施例2,在本實(shí)施例中,該裝置具體可以包括
創(chuàng)建模塊601,用于創(chuàng)建一個(gè)用于保存Bug的指示信息的線程變量;
保存模塊602,用于在當(dāng)前運(yùn)行的線程出現(xiàn)Bug時(shí),將所述Bug的 信息保存至線程變量中;
添加子才莫塊603,用于在Web應(yīng)用的Web.xml文件中添加測(cè)試環(huán)境 的判斷參數(shù),所述判斷參數(shù)包括參數(shù)名稱和對(duì)應(yīng)的參數(shù)值;
判斷子模塊604,用于判斷所述參數(shù)名稱的值是否與所述對(duì)應(yīng)的參數(shù) 值一致;
顯示模塊605,用于當(dāng)所述判斷模塊的結(jié)果為是時(shí),將所述指示信息 的具體內(nèi)容進(jìn)行顯示;
提示模塊606,用于當(dāng)所述判斷模塊的結(jié)果為否時(shí),直接提示用戶出 錯(cuò)信息。
需要說(shuō)明的是,本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述, 每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間 相同相似的部分互相參見即可。對(duì)于裝置類實(shí)施例而言,由于其與方法 實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部 分說(shuō)明即可。
還需要說(shuō)明的是,術(shù)語(yǔ)"包括"、"包含"或者其任何其他變體意在 涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或 者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者 是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多 限制的情況下,由語(yǔ)句"包括一個(gè)……"限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對(duì)本申請(qǐng)所提供的一種軟件測(cè)試中的Bug提示方法及裝置進(jìn)行 了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了
闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本申請(qǐng)的方法及其核心思想; 同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方 式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為 對(duì)本申請(qǐng)的限制。
權(quán)利要求
1、一種軟件測(cè)試中的Bug提示方法,其特征在于,該方法包括在當(dāng)前運(yùn)行的程序出現(xiàn)Bug時(shí),將所述Bug的指示信息保存至線程變量中;判斷當(dāng)前運(yùn)行環(huán)境是否是測(cè)試環(huán)境,如果是,則將所述Bug的指示信息的具體內(nèi)容進(jìn)行顯示;如果否,則直接提示用戶出錯(cuò)信息。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述Bug的詳 細(xì)信息保存至線程變量中之前,還包括創(chuàng)建一個(gè)用于保存Bug的指示信息的線程變量。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述Bug的指 示信息的具體內(nèi)容進(jìn)行顯示具體包括讀取所述線程變量并獲取所述Bug 的指示信息,同時(shí)將所述Bug的指示信息的具體內(nèi)容進(jìn)行顯示。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷當(dāng)前運(yùn)行環(huán) 境是否是測(cè)試環(huán)境,具體包括在Web.xml文件中添加測(cè)試環(huán)境的判斷參數(shù),所述判斷參數(shù)包括參 數(shù)名稱和對(duì)應(yīng)的參數(shù)值;判斷所述參數(shù)名稱和參數(shù)值與預(yù)置的判斷條件是否 一致。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述預(yù)置的判斷條件 為在系統(tǒng)中預(yù)先設(shè)置的判斷測(cè)試環(huán)境的參數(shù)名稱和參數(shù)值。
6、 根據(jù)權(quán)利要求1-3任一項(xiàng)所述的方法,其特征在于,所述指示信 息包括所述Bug的位置信息和錯(cuò)誤類型。
7、 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述Bug包括錯(cuò) 誤和/或異常現(xiàn)象。
8、 一種軟件測(cè)試中的Bug提示裝置,其特征在于,該裝置包括 保存模塊,用于在當(dāng)前運(yùn)行的線程出現(xiàn)Bug時(shí),將所述Bug的信息保存至線程變量中;判斷模塊,用于判斷當(dāng)前運(yùn)行環(huán)境是否是測(cè)試環(huán)境;顯示模塊,用于當(dāng)所述判斷模塊的結(jié)果為是時(shí),將所述指示信息的具體內(nèi)容進(jìn)行顯示;提示模塊,用于當(dāng)所述判斷模塊的結(jié)果為否時(shí),直接提示用戶出錯(cuò)信自
9、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括 創(chuàng)建模塊,用于創(chuàng)建一個(gè)用于保存Bug的指示信息的線程變量。
10、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述判斷模塊具體包括添加子模塊,用于在Web應(yīng)用的Web.xml文件中添加測(cè)試環(huán)境的判 斷參數(shù),所述判斷參數(shù)包括參數(shù)名稱和對(duì)應(yīng)的參數(shù)值;判斷子模塊,用于判斷所述參數(shù)名稱和參數(shù)值與預(yù)置的判斷條件是否 一致。
11、 根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述指示信息包 括所述Bug的位置信息和錯(cuò)誤類型。
12、 根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述Bug包括 錯(cuò)誤和/或異?,F(xiàn)象。
全文摘要
本申請(qǐng)?zhí)峁┝塑浖y(cè)試中的Bug提示方法和裝置,所述方法包括在當(dāng)前運(yùn)行的線程出現(xiàn)Bug時(shí),將所述Bug的指示信息保存至線程變量中;判斷當(dāng)前運(yùn)行環(huán)境是否是測(cè)試環(huán)境,如果是,則分析所述Bug的指示信息,并顯示所述分析過(guò)程的分析結(jié)果;如果否,則直接提示用戶出錯(cuò)信息。與現(xiàn)有技術(shù)不同的是,在本申請(qǐng)實(shí)施例中,可以通過(guò)首先判斷當(dāng)前運(yùn)行環(huán)境是否是測(cè)試環(huán)境,即根據(jù)軟件產(chǎn)品的對(duì)象不同,可以將出現(xiàn)Bug時(shí)的提示方式分為兩種,可以顯示Bug的分析結(jié)果,這就有利于開發(fā)人員可以根據(jù)所述分析結(jié)果直接進(jìn)行Bug修復(fù),同時(shí)也可以向用戶顯示友好的出錯(cuò)提示,就提高了用戶的使用體驗(yàn),同時(shí)滿足了普通用戶和專業(yè)人員各自不同的需求。
文檔編號(hào)G06F11/36GK101582050SQ20091014991
公開日2009年11月18日 申請(qǐng)日期2009年6月22日 優(yōu)先權(quán)日2009年6月22日
發(fā)明者黃承志 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司