以下為為公司做的一個小方案
一.背景(測試現狀)
公司的業務不斷擴展,項目越來越多,長期需要更新且更新頻繁的項目也越來越多。而測試人員已經不能滿足這么多項目的測試,測試壓力也很大。許多升級的項目或只做少量更改的項目,只能針對修改的部分進行測試。而回歸測試更只能簡單的跑跑流程。
二.存在的問題
1. 大部分項目的冒煙測試未充分,導致后期測試無法正常進行;
2. 項目更新比較頻繁,投入的人力大;
3. 版本更新的項目測試不夠充分;
4. 有時需要準備案件數據,使用人工錄制,用時長,效率低;
5. 測試重復性勞動比較多,不僅投入大,而且測試人員也容易受此影響工作效率;
6. 回歸測試不充分;
三.解決方法
可以通過應用自動化測試來改善以上的問題。自動化測試的一個顯著特點就是使用計算機進行自動化測試。因為計算機不會感覺累也不會感覺枯燥,且執行速度快,因此能有效的改善以上的問題。自動化測試比較適合驗證功能是正確的,對于要驗證功能是不正確的,那就得對腳本做很多處理,也需要在開發軟件時做很多規范性的工作。
要采用自動化測試來改善以上問題,就需要考慮以下問題:
1. 為什么要使用自動化
為什么要使用自動化測試呢?那是因為現在的測試現狀存在上面所列問題,而自動化測試能解決或改善以上的問題。
2. 自動化測試的投資和回報
投資:
* 軟件成本:購買自動化測試軟件產品的成本;
* 硬件成本:購買適用自動化軟件的電腦的成本;
* 培訓成本:培訓測試人員編寫自動測試腳本和使用自動化測試的成本;
* 使用成本:編寫測試用例和測試腳本的勞動力成本。
回報:
* 降低勞動量;
* 提高測試的全面性;
* 加快測試速度;
* 提供規范化的過程;
* 提高測試的重用性;
* 提高測試精確度并提早發現更多錯誤;
* 降低測試成本;
* 自動化還有潛在的隱性效益,如提高測試人員的士氣和對工作的滿意度。
3. 如何正確使用自動化(哪些項目適合自動化)
正確使用自動化非常關鍵,否則可能不僅不能體驗到自動化帶來的好處,還可能增加測試負擔和測試成本。
自動化測試有自動化測試的特點。自動化測試主要是利用電腦來模擬人的操作,因此要自動化測試實現什么功能,比如驗證正確的功能還是驗證不正確的功能及如何驗證都需要人來告訴它。既然自動化測試是模擬人來操作,那么自動化測試工具就必須能識別測試人員所做的操作的對象(控件),這樣自動化測試工具才能對這些對象進行操作。而自動化測試工具對對象的識別是需要制定規則的。雖然自動化工具有內置了大部份常用的對象的識別機制,但現在畢竟第三方插件和自己開發插件越來越多。自動化測試工具對這些控件并沒有識別機制和,因此并不能識別這些控件,這時就需要測試人員針對這些控件的特點和自動化測試工具提供的功能尋找出繞過此控件或操作此控件的方法。而尋找和制定這些方法有可能需要耗費大量的工時,有可能會導致得不償失。如果不考慮這些因素,可能會為了實現自動化測試而投入大量的人力成本,導致自動化測試的優勢不能得以顯示,且還會提高的測試的成本。
從以上的分析可以看出,自動化測試最適合使用的地方是用于實現規范化開發的軟件的回歸測試。但使用自動化測試并不是這么死板,可以根據測試工具的特點和提供的功能,實現其他應用。
針對自動化測試的特點和公司目前的項目狀況,我認為,公司目前適合實現一些生命周期長更新頻繁的測試項目。如,[XXX]等項目。而對于這些項目并不適合都實現自動化測試。目前公司在這些項目實現自動化測試,適合使用在冒煙測試,回歸測試及一些功能的驗證上(如驗證統計表下鉆數據的正確性)。至于將來如果項目更規范化后,可以考慮把自動化測試擴展的各個功能的測試。
4. 什么時候開始進行自動化測試
最好是能在項目進行設計后就考慮自動化測試問題。如,要使用一個第三方插件或開發一個插件時,得考慮將來自動化測試工具能不能識別和操作的問題,是否需要留一個接口,可以先用自動化測試工具對這些插件進行測試一下。而項目設計完成后,就可以根據項目的功能和模塊劃分對自動化腳本進行一些整體上的規劃和框架設計。當功能模塊開發完成并比較穩定時,就可以先對這些模塊進行自動化腳本開發(不需要等整個系統都完成才開發自動化腳本)。等到項目進入測試階段后,就可以開始所有腳本的開發,并使用腳本進行回歸測試了。
5. 自動化測試需要怎樣的人員構成
經過實踐,以公司現在的規模,自動化測試需要有五、六個人員組成的自動化測試小團隊,而這個自動化測試小團隊的五、六個人員中需要有一、兩個人員為自動化測試技術的支持人員。
四.公司自動化應用規劃
1. 按發展時期劃分
* 早期引入
剛引入自動化時,可以先在幾個比較有大的產品或項目中實現自動化測試??梢韵仁褂米詣踊瘻y試實現冒煙測試和簡單的回歸測試。
* 項目推廣
在此階段,可以把自動化測試推廣到大部分適合自動化測試的項目中去。首先也是重點要實現冒煙測試和更完整的回歸測試。然后才是實現一些特殊功能的自動化測試。
* 技術推進
技術推進時期,需要不斷優化自動化腳本并提高自動化腳本的共享和復用。從而大大減小自動化腳本后期維護的工作量。
2. 按應用級別劃分
* 簡單應用
主要是使用自動化測試工具進行錄制回放,并實現簡單的參數化和腳本處理。此應用比較簡單,實際價值并不太大,因此適合在引入初期或試驗時期應用。
* 使用框架
使用框架設計實現腳本的可配置,及公用腳本的復用。此應用比較有價值,因此在實現項目自動化測試時適合從此級別應用開始使用。
原文轉自:http://www.anti-gravitydesign.com