並非所有的測試都可以被自動化。
自動化測試是手工測試的增強。乞求專案中的測試百分百實現自動化是不合理的。在首次引入自動化測試時,最好先驗證一下,工具是否能識別出所有物件和第三方的控制項。這對於基於gui的測試工具來說非常重要,因為這類工具往往在識別一些個性化控制項方面有困難,例如一些calendar、spin、grid控制項,而這些控制項被廣泛應用在程式介面中,並且這些控制項往往由第三方編寫,大部分測試工具廠商未能跟上他們的發展速度。
測試工程師在碰到這種情況時要麼放棄這部分應用了難以識別的控制項的測試自動化,要麼找出一些解決的辦法。
另外,還有一些測試是基本上不可能被自動化實現的,例如,測試工程師可以實現自動化地把文件傳送到印表機的過程,但是檢查列印的效果(是否被正確地列印出來,有沒有越過紙張列印線)這部分則必須人工進行。
至於哪些測試用例應該被自動化實現,可以參考下表決定:
yesno
測試執行的次數測試會被執行多次嗎?
測試會有規律地執行嗎?例如經常被重用,作為回歸測試的一部分或每日構建測試?
測試的關鍵程度測試覆蓋了軟體功能的最關鍵部分的路徑嗎?
測試覆蓋了最複雜的部分嗎?(通常是最容易出錯的部分)
測試的代價如果手工進行測試的話,是否不可能、非常難以執行,例如併發測試、永續性測試、效能測試、記憶體洩漏測試等。
測試非常耗時嗎?例如需要檢查成百上千個測試結果輸出。
測試的型別測試需要組合很多輸入,但是共用乙個測試步驟嗎?例如同乙個功能,用很多不同的輸入來驗證。
測試需要在多種軟硬體配置環境下執行嗎?
被測試應用或系統測試是在乙個穩定的應用程式上執行的嗎?例如功能特性已經基本完成。
使用相容的技術和開放的架構
陷阱7:自動化能提供百分百的測試覆蓋率
並非所有內容都可以被自動化地測試到。不可能覆蓋所有可能的輸入,所有可能的組合和路徑。
自動化測試可以增加測試的廣度和深度,但是仍然無法達到100%的測試覆蓋率,因為沒有足夠的時間或資源。
例如乙個簡單的登入介面的測試,假設我們需要測試它的密碼驗證函式的正確性,密碼長度在6到8個字元之間,每個字元可以大寫或小寫,至少包含乙個數字,那麼輸入的可能組合將達到2,684,483,063,360個。
即使我們可以每分鐘建立乙個測試,也需要155年來完成全面的測試。因此,不可能窮盡所有可能的輸入的測試。
陷阱8:測試自動化就是錄製和回放
僅僅錄製得到的不是有效的自動化指令碼。
很多專案經理仍然把測試自動化等同於使用錄製回放工具。而事實上,錄製得到的指令碼通常是不可重用的指令碼,指令碼中充滿了硬編碼的值,這些值應該被引數化,否則指令碼僅僅適用於乙個測試情況,指令碼還應該加入條件判斷、迴圈等結構,以便增強測試指令碼的靈活性。
陷阱9:自動化的軟體測試與手工的軟體測試過程一樣
自動化測試所需要的技巧與手工測試所需要的技巧是不一樣的。
通常,你的專案經理會被那些測試工具銷售們迷惑,認為自動化的軟體測試就是簡單地按乙個錄製的按鈕,產生測試指令碼。而事實上並沒有那麼簡單。
區分自動化測試所需要的技巧與手工測試所需要的技巧是非常重要的。最重要的是,自動化測試工程師需要掌握軟體開發技巧,沒有接受任何培訓的手工測試人員,或者沒有程式設計背景的手工測試人員,在實施自動化測試時會碰到很多困難。
陷阱10:忘記了測試的最終目標:找到bug
在自動化測試中,同樣要注意把邊界值分析、等價類分析、基於風險的測試方法、挑選最合適的測試用例等技術應用起來。
通常在自動化測試過程中,我們都忙著搭建自動化框架和編寫測試指令碼,但是我們往往忘記了測試的本來目的:找bug。
專案經理可能僱傭了最好的自動化開發人員來搭建框架,使用了最新最好的自動化開發技術,建立了成千上萬的自動化測試指令碼。但是如果bug仍然被遺漏了,那些本該被自動化測試指令碼捕捉到的bug,結果沒有**捉到,那麼你的自動化測試仍然會被認為是失敗的。
小結
正在你憂心重重,擔心專案經理一步步邁向自動化測試的陷阱的時候,你看到了這篇文章,你決定拿給專案經理看看,希望他在看完這篇文章之後,對自動化測試有乙個新的認識,從而把那只即將踏入陷阱的腳抽回來!
測試自動化 自動化測試的定義
相關術語 automated testing test tool,automated testing test suite,automated testing test script等.具體參見 http en.wikipedia.org wiki test automation 推薦書籍 1 軟體...
自動化測試 web自動化測試
自動化 由機器裝置代替人為完成制定目標的過程 優點 提高工作效率 減少勞動力 產品規格同一標準 批量生產 自動化測試 讓程式代替人為去驗證程式功能的過程,即在預設條件下執行程式系統 流程確定 搭建自動化框架 編寫測試用例,將其轉化為soupui 介面 自動化測試指令碼 執行自動化測試指令碼 輸出執行...
沒有自動化測試的應用應該如何測試?
敏捷推薦圍繞應用建立足夠的單元測試和驗收測試,以構建足夠強壯的測試套件。然而,實際情況是 不是所有的應用都有配套的測試套件。敏捷測試討論組 中有乙個有趣的討論,提到如何為沒有任何自動化測試的應用進行測試,成員們提出了多種方法。asad safari發起了這個討論,他說他的一 個應用沒有任何測試 團隊...