如何在持續集成中引入軟件測試自動化

發表于:2009-08-26來源:作者:點擊數: 標簽:軟件測試自動化
如何在持續集成中引入 軟件測試 自動化 一、背景 我從畢業到現在, 曾在大小不同的三個公司就職: 有民營的、有外資的、也有上市公司。 但以前大多都是做項目,從事軟件開發工作,絕大部分公司對測試都不重視,即使有也沒有成規模, 更談不上建立測試體系???

如何在持續集成中引入軟件測試自動化

一、背景

我從畢業到現在, 曾在大小不同的三個公司就職: 有民營的、有外資的、也有上市公司。 但以前大多都是做項目,從事軟件開發工作,絕大部分公司對測試都不重視,即使有也沒有成規模, 更談不上建立測試體系??傊?,重開發輕測試的管理思想在中國延續了幾十年、并且還要繼續,看看他們給測試工程師開的低工資和老師在課堂上講到測試時一筆帶過就知道測試被中國的老板所忽略。

最近兩年,我從事CRM軟件產品的測試、項目管理工作。 由于公司對軟件的質量要求特別高, 這必然引起了大家對測試工作的重視,不但要求有強大的測試團隊,該團隊必須具備在業務方面、測試技能方面的專業水平, 而且在軟件開發過程方面經常由于測試而作持續不斷地調整。

幸運的是,隨著軟件開發技術和工具的提高,軟件工程和軟件過程實踐的推廣, 軟件測試日益得到重視和專業化。 我從事測試工作期間,一直研究CMM、測試理論、自動化測試工具,并建立了一套完整的測試體系。

在此并不介紹整個測試體系,而是介紹測試方面最值得探討的部分:持續集成與測試自動化。目的是與大家共同進步。當然已經有很多關于持續集成和自動化測試方面的介紹,但我要介紹的不只是持續集成,也不只是自動化測試,而是測試如何的自動化.

二、測試自動化

自動化測試就是希望能夠通過自動化測試工具或其他手段,按照測試工程師的預定計劃進行自動的測試,目的是減輕手工測試的勞動量,從而達到提高軟件質量的目的。自動化測試的目的在于發現老缺陷。而手工測試的目的在于發現新缺陷。

測試自動化涉及到測試流程、測試體系、自動化化編譯、持續集成、自動發布測試系統以及自動化測試等方面整合。也就是說要讓測試能夠自動化,不僅是技術、工具的問題,更是一個公司和組織的文化問題。首先公司從資金、管理上支持您,其次要有專門的測試團隊去建立適合自動化測試的測試流程、測試體系;其次就是把原代碼從受控庫中取出、編譯、集成、發布可運行系統、進行自動化的單元測試和自動化的功能測試的過程。

(一)、自動化測試的好處

1、 對新版本執行回歸測試--測試每個特征

對于產品型的軟件,每發布一個新的版本,其中大部分功能和界面都和上一個版本相似或完全相同,這部分功能特別適合于自動化測試, 從而可以讓測試達到測試每個特征的目的。

2、 更多更頻繁的測試--沉悶、耗時

我們的產品向市場的發布周期是3個月,也就是我們的開發周期只有短短的3個月,而在測試期間是每天/每2天都要發布一個版本供測試人員測試,一個系統的功能點有幾千個上萬個,人工測試是非常的耗時和繁瑣,這樣必然會使測試效率低下。

3、替代手工測試的困難--300個用戶有些非功能性方面的測試:壓力測試、并發測試、大數據量測試、崩潰性測試,用人來測試是不可能達到的。 在沒有引入自動化測試工具之前,為了測試并發,研發中心的一、兩百號人在研發經理的口令:1-、2-、3!, 大家同時按下同一個按鈕?;叵肫疬@中情景也蠻有意思的。

4、具有一致性和可重復性

由于每次自動化測試運行的腳本是相同的, 所以每次執行的測試具有一致性, 人是很難做到的. 由于自動化測試的一致性,很容易發現被測軟件的任何改變。

5、更好的利用資源--周未/晚上

理想的自動化測試能夠按計劃完全自動的運行, 在開發人員和測試人員不可能實行三班倒的情況下, 自動化測試可以勝任這個任務, 完全可以在周末和晚上執行測試. 這樣充分的利用了公司的資源,也避免了開發和測試之間的等待.

6、解決測試與開發之間的矛盾

通常在開發的末期,進入集成測試階段, 由于每發布一個版本的初期,測試系統的錯誤比較少,這時開發人員有等待測試人員測試出錯誤的時間. 事實上在疊代周期很短的開發模式中,存在更多的矛盾, 但自動化測試可以解決其中的主要矛盾。

7、增加軟件信任度

總之,自動化測試的好處和收益是很明顯的,但也只有順利事實了自動化測試才能從中獲得它的益處。

(二)、 自動化測試-- 誤區、限制自動化化測試好處很多,但也有很多的局限,也正因為很多老板對自動化測試的期望太高,所以有很多執行自動化測試失敗的例子。

1、 期望自動化測試能取代手工測試

不能期望自動化測試來取代手工測試, 測試主要還是要靠人工的。

2、期望自動測試發現大量新缺陷

同樣不能期望自動化測試去發現更多新的缺陷, 事實證明新缺陷越多,自動化測試失敗的幾率就越大。發現更多的新缺陷應該是手工測試的主要目的。測試專家James Bach總結得 85%的缺陷靠手工發現,而自動化測試只能發現15%的缺陷。

其實我認為自動化測試能夠很好的發現老缺陷。

3、工具本身不具有想象力

工具畢竟是工具,出現一些需要思考、體驗、界面美觀方面的測試,自動化測試工具無能為力。

4、技術問題、組織問題、腳本維護

自動化測試的推行,有很多阻力,比如組織是否重視, 是否成立這樣的測試團隊,是否有這樣的技術水平,對于測試腳本的維護工作量也挺大的,是否值得維護等等問題都必須考慮。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97