• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    Web應用程序的回歸測試方法和裝置制造方法及圖紙

    技術編號:8271344 閱讀:191 留言:0更新日期:2013-01-31 03:33
    本申請公開了一種Web應用程序的回歸測試方法和裝置,其中,該方法包括:獲取第一Web應用程序和第二Web應用程序中各功能對應的網頁地址,其中,所述第一Web應用程序和第二Web應用程序為同一Web應用程序的不同版本;在相同的測試環境下使用所述獲取的網頁地址同時請求所述第一Web應用程序和第二Web應用程序;對所述第一Web應用程序響應于所述請求返回的第一結果對象和所述第二Web應用程序響應于所述請求返回的第二結果對象進行比較,得到比較結果。本申請解決現有技術中測試負擔較大的問題,在對程序潛在錯誤的發現數量方面明顯強于現有技術,從而減少了測試負擔,提高了測試速度。

    【技術實現步驟摘要】
    本申請涉及互聯網領域,具體而言,涉及一種Web應用程序的回歸測試方法和裝置
    技術介紹
    敏捷開發是當今全球的軟件行業最為流行的開發方式之一,越來越多的在各國軟件企業中推行。敏捷開發的一個重要的特征為頻繁交付新的軟件版本。然而,這個特征帶來了頻繁的測試,而且,不能保證新增加的功能不會影響到以前的功能,所以敏捷開發模式下會頻繁地進行回歸測試,也就是,把以前的功能重新測試一遍。這樣,導致了大量重復的測試工作,也成為了敏捷開發在實踐中遇到的最大的問題。上述回歸測試是指修改了舊代碼后,重新進行測試以確認修改沒有引入新的錯誤 或導致其他代碼產生錯誤。自動回歸測試將大幅降低系統測試、維護升級等階段的成本。回歸測試作為軟件生命周期的一個組成部分,在整個軟件測試過程中占有很大的工作量比重,軟件開發的各個階段都會進行多次回歸測試。在漸進和快速迭代開發中,新版本的連續發布使回歸測試進行的更加頻繁,而在極限編程方法中,更是要求每天都進行若干次回歸測試。敏捷開發理念對測試工作的壓力在于產生頻繁的、高重復性的測試工作。目前,國際上還沒有很好的解決方案,通常的回歸測試的方法為單元測試+自動化測試+人工測試+其它輔助工具(如圖片比對測試),上述自動化測試包括使用商業軟件(例如,QuickTestProfessional (快速測試專業QTP)等))進行測試。上述單元測試的機制是為軟件(每個)“最基本單元”編寫一段測試代碼。然后運行這些測試代碼,檢查“檢測點”的實際值與期望值是否一致。單元測試理念認為每個“單元”是正確的,整體就是正確的。單元測試是在軟件開發過程中要進行的最低級別的測試活動,在單元測試活動中,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。上述QTP等商業軟件的機制是通過鼠標移動、鍵盤點擊操作被測應用,即而得到相應的測試腳本,對該腳本可以進行編輯和調試。在記錄腳本的過程中可在插入“檢測點”的同時建立期望值。在執行的時候回放該測試腳本,然后檢查“檢測點”實際結果與期望結果是否相冋。然而,即使使用上述的解決方案,仍然需要測試人員進行大量工作,效果還是不盡如人意,特別是像互聯網產品這種在線應用上,測試人員必須要再測,這是因為I)對于單元測試而言需要編寫測試代碼,測試代碼的覆蓋率不會達到100%。通常覆蓋率越高,寫的越深入,重構時面臨修改的可能性也越大,這里,重構指的是在不改變軟件現有功能的基礎上,通過調整程序代碼改善軟件的質量、性能,使其程序的設計模式和架構更趨合理,提高軟件的擴展性和維護性。因為重構后的單元不一定是重構前的單元。單元測試也需要跟著“被重構”。另外,單元測試受制于外部數據源和開發人員的能力,因此單元測試對重構后代碼是否存在錯誤的檢查能力是很有限的。2)對于QTP等商業自動化測試軟件而言QTP等商業自動化測試軟件特點在于可以檢查頁面功能。但是就是這種特征,使得當頁面功能有些改動,就需要重新錄制腳本。功能變了也要重新錄制腳本。而且對于外部數據源的依賴更強,因為它不像單元測試可以Mock(制造假的)數據,舉個簡單例子當回放測試腳本時,數據庫中的數據的測試數據和當初已經完全不同了,甚至字段都不同了。實際使用時很有可能就放棄了對一些結果進行檢測。第二個問題,現在頁面效果,越來越絢。商業軟件很多時候并不能正確捕捉并回放頁面事件。導致整個測試都不能運行完。所以針對于回歸測試這種場景,商業軟件的作用還趕不上單元測試。這些產品的優點在于使用面比較寬,比較通用,但效果比較差。3)對于圖片比對測試而言圖片比對測試與本申請原理有許多相似之處,但作法卻完全不同,簡單的說用相同的輸入請求兩個版本的程序,讓計算機自動比較兩個程序返回的結果頁面是否相同,基本的方法是通過將結果頁面直接變成圖片然后用算法比對這兩 個圖片是否相同。圖片比對測試通常效果不好,原因是很多功能不可能從外觀上體現出來,比如頁面上一個超鏈接是有問題的,不是從外觀上能發現的,只有點進去才知道,所以這種問題就測試不出來。另一個問題,即便是頁面外觀是不同的,也不能認為是錯誤的。比如一些網站上有很多廣告都是隨機出現的。這樣都會被當成“錯誤”測出來,這一定是不對的。由上可知,現有的回歸測試方法仍然需要大量的人工測試,從而增加了測試負擔,降低了測試速度。
    技術實現思路
    本申請的主要目的在于提供一種Web應用程序的回歸測試方法和裝置,以至少解決現有技術中測試負擔較大的問題。根據本申請的一個方面,提供了一種Web應用程序的回歸測試方法,其包括獲取第一 Web應用程序和第二 Web應用程序中各功能對應的網頁地址,其中,所述第一 Web應用程序和第二 Web應用程序為同一 Web應用程序的不同版本;在相同的測試環境下使用所述獲取的網頁地址同時請求所述第一 Web應用程序和第二 Web應用程序;對所述第一 Web應用程序響應于所述請求返回的第一結果對象和所述第二 Web應用程序響應于所述請求返回的第二結果對象進行比較,得到比較結果。根據本申請的另一方面,提供了一種Web應用程序的回歸測試裝置,其包括獲取單元,用于獲取第一 Web應用程序和第二 Web應用程序中各功能對應的網頁地址,其中,所述第一 Web應用程序和第二 Web應用程序為同一 Web應用程序的不同版本;請求單元,用于在相同的測試環境下使用所述獲取的網頁地址同時請求所述第一 Web應用程序和第二 Web應用程序;比較單元,用于對所述第一 Web應用程序響應于所述請求返回的第一結果對象和所述第二 Web應用程序響應于所述請求返回的第二結果對象進行比較,得到比較結果。通過本申請的技術方案,能夠達到以下有益效果I)通過在相同的測試環境下使用網頁地址同時請求兩個版本的Web應用程序,可以比對出前后兩個版本之間的差異,而這種差異可以體現出修改后的代碼是否對Web應用程序的各個功能產生影響,也就是說,根據比較的結果可以判斷出兩個版本的Web應用程序中的哪些功能沒有改變,哪些功能發生了改變,從而在后續測試中可以只針對發生了改變的功能進行測試,而不需要對沒有發生改變的功能進行測試,這樣減少了測試次數和測試負擔,提高了測試速度;2)通過在相同的測試環境下使用網頁地址同時請求兩個版本的Web應用程序,使得測試基本不依賴具體測試數據,這樣可以降低測試數據的維護成本;3)本申請通過將Web應用程序響應于請求返回的結果對象中的所有屬性(包括所有子屬性)轉換為基本的數據類型再序列化到磁盤上,解決不同應用程序對象之間無法比對的問題;4)本申請通過限制遍歷深度和檢查類名等方式來控制屬性遍歷范圍,從而解決了遍歷比較時容易失去控制,無法成功遍歷的問題; 5)本申請在比較結果對象時對具有隨機性特征的屬性提供自定義的比較器,保證對被測程序的高覆蓋率;6)本申請先將比較結果生成數據文件,然后再讀取所述數據文件中的比較結果,按照不同格式的報表格式使用所述比較結果來生成報表,這樣,得到比較結果的測試過程和生成報表的過程分離開,使得在需要生成不同的報表時,可以不需要重新進行測試過程,而直接根據數據文件進行擴展,從而減少了測試次數,降低了測試時間,提高了測試的擴展性;7)本申請在所述Web應用程序執行所請求的功能的過程中對Web應用程序進行攔截得到結果對象,從而解決了本文檔來自技高網
    ...

    【技術保護點】
    一種Web應用程序的回歸測試方法,其特征在于,包括:獲取第一Web應用程序和第二Web應用程序中各功能對應的網頁地址,其中,所述第一Web應用程序和第二Web應用程序為同一Web應用程序的不同版本;在相同的測試環境下使用所述獲取的網頁地址同時請求所述第一Web應用程序和第二Web應用程序;對所述第一Web應用程序響應于所述請求返回的第一結果對象和所述第二Web應用程序響應于所述請求返回的第二結果對象進行比較,得到比較結果。

    【技術特征摘要】
    1.一種Web應用程序的回歸測試方法,其特征在于,包括 獲取第一 Web應用程序和第二 Web應用程序中各功能對應的網頁地址,其中,所述第一Web應用程序和第二 Web應用程序為同一 Web應用程序的不同版本; 在相同的測試環境下使用所述獲取的網頁地址同時請求所述第一 Web應用程序和第二 Web應用程序; 對所述第一 Web應用程序響應于所述請求返回的第一結果對象和所述第二 Web應用程序響應于所述請求返回的第二結果對象進行比較,得到比較結果。2.根據權利要求I所述的方法,其特征在于,對所述第一Web應用程序響應于所述請求返回的第一結果對象和所述第二 Web應用程序響應于所述請求返回的第二結果對象進行比較的步驟包括 在所述第一 Web應用程序執行所請求的功能的過程中對所述第一 Web應用程序進行攔截得到所述第一結果對象,在所述第二 Web應用程序執行所請求的功能的過程中對所述第二 Web應用程序進行攔截得到所述第二結果對象; 將所述第一結果對象的屬性和所述第二結果對象的屬性進行序列化; 將序列化后的所述第一結果對象的屬性和所述第二結果對象的屬性加載到同一內存空間中進行比較。3.根據權利要求2所述的方法,其特征在于,在將所述第一結果對象的屬性和所述第二結果對象的屬性進行序列化之前,還包括 對所述第一結果對象的屬性和所述第二結果對象的屬性進行過濾,過濾掉無用的屬性; 將除所述無用的屬性之外的所述第一結果對象的屬性和所述第二結果對象的屬性進行序列化。4.根據權利要求3所述的方法,其特征在于,通過以下步驟判斷所述無用的屬性 若所述屬性的深度超過預定閾值,則判斷該屬性為無用的屬性;或者 若所述屬性為預定的集合類型中的屬性,則判斷該屬性為無用的屬性;或者 若所述屬性的類名不為預定集合中的類名,則判斷該屬性為無用的屬性。5.根據權利要求2所述的方法,其特征在于,將序列化后的所述第一結果對象的屬性和所述第二結果對象的屬性加載到同一內存空間中進行比較的過程包括 將所述第一結果對象和所述第二結果對象加載到測試程序的內存中; 遍歷判斷序列化后的所述第一結果對象的屬性和所述第二結果對象的屬性之間是否存在差異; 若存在差異,則輸出指示所述第一結果對象的屬性和所述第二結果對象的屬性之間存在差異的息。6.根據權利要求I所述的方法,其特征在于,在對所述第一Web應用程序響應于所述請求返回的第一結果對象和所述第二 Web應用程序響應于所述請求返回的第二結果對象進行比較之后,還包括 將比較結果生成數據文件; 讀取所述數據文件中的比較結果,按照不同格式的報表格式使用所述比較結果來生成 艮表。7.根據權利要求I所述的方法,其特征在于,所述相同的測試環境包括同一時間在同一臺機器上使用同一個測試程序。...

    【專利技術屬性】
    技術研發人員:白爽
    申請(專利權)人:阿里巴巴集團控股有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 亚洲中文字幕伊人久久无码| 亚洲AV无码久久久久网站蜜桃| 亚洲精品中文字幕无码A片老| 999久久久无码国产精品| 亚洲AV无码专区在线亚| 国产精品午夜无码AV天美传媒| 中文午夜乱理片无码| 亚洲a∨无码男人的天堂| 天堂无码在线观看| 亚洲AV无码一区二区三区久久精品| 狠狠精品久久久无码中文字幕| 久久亚洲AV成人出白浆无码国产| 亚洲AV无码不卡在线观看下载| 日韩精品中文字幕无码一区| 亚洲熟妇无码八AV在线播放| 成人免费一区二区无码视频| 精品无码一区二区三区电影| 亚洲精品无码成人片久久| 午夜精品久久久久久久无码| 亚洲AV无码一区二区三区久久精品| 亚洲AV人无码综合在线观看| 日韩无码系列综合区| 无码中文字幕人妻在线一区二区三区| 亚洲AV无码一区二区三区系列| 久久无码AV中文出轨人妻| 成人无码Av片在线观看| 亚洲av永久无码天堂网| 一本天堂ⅴ无码亚洲道久久| 无码日韩精品一区二区免费暖暖 | 中文无码一区二区不卡αv | 无码中文字幕日韩专区视频| 免费a级毛片无码a∨免费软件| 国产强被迫伦姧在线观看无码| 精品无码专区亚洲| 国产精品免费看久久久无码| 精品无码成人片一区二区| 国精品无码A区一区二区| 久久综合一区二区无码| 狠狠躁狠狠躁东京热无码专区| 九九久久精品无码专区| 中文无码人妻有码人妻中文字幕|