持續集成與測試自動化軟件測試
一、背景
我從畢業到現在, 曾在大小不同的三個公司就職: 有民營的、有外資的、也有上市公司。 但以前大多都是做項目,從事軟件開發工作,絕大部分公司對測試都不重視,即使有也沒有成規模, 更談不上建立測試體系?傊,重開發輕測試的管理思想在中國延續了幾十年、并且還要繼續,看看他們給測試工程師開的低工資和老師在課堂上講到測試時一筆帶過就知道測試被中國的老板所忽略。
最近兩年,我從事CRM軟件產品的測試、項目管理工作。 由于公司對軟件的質量要求特別高, 這必然引起了大家對測試工作的重視,不但要求有強大的測試團隊,該團隊必須具備在業務方面、測試技能方面的專業水平, 而且在軟件開發過程方面經常由于測試而作持續不斷地調整。
幸運的是,隨著軟件開發技術和工具的提高,軟件工程和軟件過程實踐的推廣, 軟件測試日益得到重視和專業化。 我從事測試工作期間,一直研究CMM、測試理論、自動化測試工具,并建立了一套完整的測試體系。
在此并不介紹整個測試體系,而是介紹測試方面最值得探討的部分:持續集成與測試自動化。目的是與大家共同進步。當然已經有很多關于持續集成和自動化測試方面的介紹,但我要介紹的不只是持續集成,也不只是自動化測試,而是測試如何的自動化.
二、測試自動化
自動化測試就是希望能夠通過自動化測試工具或其他手段,按照測試工程師的預定計劃進行自動的測試,目的是減輕手工測試的勞動量,從而達到提高軟件質量的目的。自動化測試的目的在于發現老缺陷。而手工測試的目的在于發現新缺陷。
測試自動化涉及到測試流程、測試體系、自動化化編譯、持續集成、自動發布測試系統以及自動化測試等方面整合。也就是說要讓測試能夠自動化,不僅是技術、工具的問題,更是一個公司和組織的文化問題。首先公司從資金、管理上支持您,其次要有專門的測試團隊去建立適合自動化測試的測試流程、測試體系;其次就是把原代碼從受控庫中取出、編譯、集成、發布可運行系統、進行自動化的單元測試和自動化的功能測試的過程。
(一)、自動化測試的好處
1、 對新版本執行回歸測試--測試每個特征
對于產品型的軟件,每發布一個新的版本,其中大部分功能和界面都和上一個版本相似或完全相同,這部分功能特別適合于自動化測試, 從而可以讓測試達到測試每個特征的目的。
2、 更多更頻繁的測試--沉悶、耗時
我們的產品向市場的發布周期是3個月,也就是我們的開發周期只有短短的3個月,而在測試期間是每天/每2天都要發布一個版本供測試人員測試,一個系統的功能點有幾千個上萬個,人工測試是非常的耗時和繁瑣,這樣必然會使測試效率低下。
3、替代手工測試的困難--300個用戶有些非功能性方面的測試:壓力測試、并發測試、大數據量測試、崩潰性測試,用人來測試是不可能達到的。 在沒有引入自動化測試工具之前,為了測試并發,研發中心的一、兩百號人在研發經理的口令:1-、2-、3!, 大家同時按下同一個按鈕;叵肫疬@中情景也蠻有意思的。
4、具有一致性和可重復性
文章來源于領測軟件測試網 http://www.kjueaiud.com/