应该知道的自动化测试陷阱2
陷阱6:所有測試都可以被自動化
并非所有的測試都可以被自動化。
自動化測試是手工測試的增強。乞求項目中的測試百分百實現(xiàn)自動化是不合理的。在首次引入自動化測試時,最好先驗證一下,工具是否能識別出所有對象和第三方的控件。這對于基于GUI的測試工具來說非常重要,因為這類工具往往在識別一些個性化控件方面有困難,例如一些calendar、spin、grid控件,而這些控件被廣泛應(yīng)用在程序界面中,并且這些控件往往由第三方編寫,大部分測試工具廠商未能跟上他們的發(fā)展速度。
測試工程師在碰到這種情況時要么放棄這部分應(yīng)用了難以識別的控件的測試自動化,要么找出一些解決的辦法。
另外,還有一些測試是基本上不可能被自動化實現(xiàn)的,例如,測試工程師可以實現(xiàn)自動化地把文檔發(fā)送到打印機的過程,但是檢查打印的效果(是否被正確地打印出來,有沒有越過紙張打印線)這部分則必須人工進(jìn)行。
至于哪些測試用例應(yīng)該被自動化實現(xiàn),可以參考下表決定:
| ? | ? | YES | NO |
| 測試執(zhí)行的次數(shù) | 測試會被執(zhí)行多次嗎? | ? | ? |
| 測試會有規(guī)律地運行嗎?例如經(jīng)常被重用,作為回歸測試的一部分或每日構(gòu)建測試? | ? | ? | |
| 測試的關(guān)鍵程度 | 測試覆蓋了軟件功能的最關(guān)鍵部分的路徑嗎? | ? | ? |
| 測試覆蓋了最復(fù)雜的部分嗎?(通常是最容易出錯的部分) | ? | ? | |
| 測試的代價 | 如果手工進(jìn)行測試的話,是否不可能、非常難以執(zhí)行,例如并發(fā)測試、持久性測試、性能測試、內(nèi)存泄漏測試等。 | ? | ? |
| 測試非常耗時嗎?例如需要檢查成百上千個測試結(jié)果輸出。 | ? | ? | |
| 測試的類型 | 測試需要組合很多輸入,但是共用一個測試步驟嗎?例如同一個功能,用很多不同的輸入來驗證。 | ? | ? |
| 測試需要在多種軟硬件配置環(huán)境下執(zhí)行嗎? | ? | ? | |
| 被測試應(yīng)用或系統(tǒng) | 測試是在一個穩(wěn)定的應(yīng)用程序上執(zhí)行的嗎?例如功能特性已經(jīng)基本完成。 | ? | ? |
| 使用兼容的技術(shù)和開放的架構(gòu) | ? | ? |
陷阱7:自動化能提供百分百的測試覆蓋率
并非所有內(nèi)容都可以被自動化地測試到。不可能覆蓋所有可能的輸入,所有可能的組合和路徑。
自動化測試可以增加測試的廣度和深度,但是仍然無法達(dá)到100%的測試覆蓋率,因為沒有足夠的時間或資源。
例如一個簡單的登錄界面的測試,假設(shè)我們需要測試它的密碼驗證函數(shù)的正確性,密碼長度在6到8個字符之間,每個字符可以大寫或小寫,至少包含一個數(shù)字,那么輸入的可能組合將達(dá)到2,684,483,063,360個。
即使我們可以每分鐘創(chuàng)建一個測試,也需要155年來完成全面的測試。因此,不可能窮盡所有可能的輸入的測試。
陷阱8:測試自動化就是錄制和回放
僅僅錄制得到的不是有效的自動化腳本。
很多項目經(jīng)理仍然把測試自動化等同于使用錄制回放工具。而事實上,錄制得到的腳本通常是不可重用的腳本,腳本中充滿了硬編碼的值,這些值應(yīng)該被參數(shù)化,否則腳本僅僅適用于一個測試情況,腳本還應(yīng)該加入條件判斷、循環(huán)等結(jié)構(gòu),以便增強測試腳本的靈活性。
陷阱9:自動化的軟件測試與手工的軟件測試過程一樣
自動化測試所需要的技巧與手工測試所需要的技巧是不一樣的。
通常,你的項目經(jīng)理會被那些測試工具銷售們迷惑,認(rèn)為自動化的軟件測試就是簡單地按一個錄制的按鈕,產(chǎn)生測試腳本。而事實上并沒有那么簡單。
區(qū)分自動化測試所需要的技巧與手工測試所需要的技巧是非常重要的。最重要的是,自動化測試工程師需要掌握軟件開發(fā)技巧,沒有接受任何培訓(xùn)的手工測試人員,或者沒有編程背景的手工測試人員,在實施自動化測試時會碰到很多困難。
陷阱10:忘記了測試的最終目標(biāo):找到BUG
在自動化測試中,同樣要注意把邊界值分析、等價類分析、基于風(fēng)險的測試方法、挑選最合適的測試用例等技術(shù)應(yīng)用起來。
通常在自動化測試過程中,我們都忙著搭建自動化框架和編寫測試腳本,但是我們往往忘記了測試的本來目的:找bug。
項目經(jīng)理可能雇傭了最好的自動化開發(fā)人員來搭建框架,使用了最新最好的自動化開發(fā)技術(shù),創(chuàng)建了成千上萬的自動化測試腳本。但是如果BUG仍然被遺漏了,那些本該被自動化測試腳本捕捉到的BUG,結(jié)果沒有被捕捉到,那么你的自動化測試仍然會被認(rèn)為是失敗的。
小結(jié)
正在你憂心重重,擔(dān)心項目經(jīng)理一步步邁向自動化測試的陷阱的時候,你看到了這篇文章,你決定拿給項目經(jīng)理看看,希望他在看完這篇文章之后,對自動化測試有一個新的認(rèn)識,從而把那只即將踏入陷阱的腳抽回來!總結(jié)
以上是生活随笔為你收集整理的应该知道的自动化测试陷阱2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unix整理笔记-vi简介-里程碑M8
- 下一篇: Linux系统基础网络配置老鸟精华篇