何時適合進行自動化測試?(上)
儘可能地實現測試自動化是軟體行業的總體趨勢。在軟體測試中,自動化可以極大地提高生產力,但僅限於某些情況。
在這篇文章中,我們將介紹一種測試自動化的方法,目的是根據專案的上下文識別其可行性。對於測試人員來說,瞭解什麼是自動化以及何時可以自動化非常有用。測試人員應該多多注意如何最佳化工作,無論是與其他同事、開發人員合作,還是自己嘗試自動化工具。
我們將介紹一些在還沒有自動化相關經驗時非常重要的概念,並評估它們相對於手動測試相關的重要性和優勢。
什麼是測試自動化?
從歷史上看,自動化的出現是為了減少可程式設計系統、機械操作的活動所需的人力,目的是簡化繁重、重複和複雜的工作,使其更有效也更高效。透過這種方式,可以節省能源、時間和成本,同時讓人們騰出時間專注於其他任務。
在軟體開發中,可以用同樣的方法,透過把原本要手動完成的工作自動化來實現。需要遵循的步驟被轉化成可重複的指令碼,所以他們可以將精力集中在其他提供更大價值、減少執行時間的特定任務上。在某些情況下,自動化讓我們能執行人工本無法執行的測試,特別是考慮到在特定時間段內執行次數的限制,自動化可以更輕鬆地完成規模化、工程化測試。
當測試人員考慮自動化時,最常見的問題之一是,“什麼時間可以進行自動化?”
想知道是否應該自動化,包括評估潛在的投資、方法、收益,最重要的是,評估目前手動流程的相關資訊。
首先要充分了解手動過程,並且對這方面瞭如指掌,只有這樣才能實現自動化。對於手動過程的完整了解是知道什麼時間可以進行自動化的支柱,這意味著手動測試不能被完全替代。在可以實現自動化之前,必須非常熟練地掌握手動測試。先學會走路,然後再跑步。
自動化誤區
自動化有其優點和缺點,具體取決於專案、時間、成本、質量和方法。
基於上述,另一個非常重要的點是,除了自動化或非自動化之外,還必須瞭解具體情況,而且所做的一切都是基於以最佳方式實現目標,選擇和應用適當的方法、工具和技能。
避免陷入以下關於測試自動化的常見誤區:
- 任何軟體都能自動化
- 自動化的軟體質量更好
- 自動化測試優於手動測試
- 自動化帶來更快的投資回報
無論是手動還是自動,不妨以下述七個原則來理解測試的目標:
- 任何實踐的價值都取決於其背景;
- 不存在“好的實踐”,但上下文中會發現好的實踐;
- 人的合作是所有專案環境中最重要的部分;
- 專案不是一成不變的,往往會採取不可預測的路徑;
- 該產品是一種解決方案。如果問題不解決,產品將無法工作;
- 好的軟體測試是一個具有挑戰性的智力過程;
- 只有透過在整個專案中合作實踐的判斷力和技能,才能在正確的時間做正確的事情,有效地測試產品。
這些原則是 Cem Kaner、James Bach 和 Brett Pettichord 在書籍《軟體測試中的經驗教訓》中提出的,這有助於我們認識到適應當前專案情況的能力的重要性。
手動與自動
剛開始時,我們可能希望將一切都自動化,但開發和維護自動化測試指令碼的成本可不是輕輕鬆鬆的。
當一個專案把賭注押在自動化上時,理想情況下,它應該有一個堅實的基礎,從單元測試用例開始,透過即時反饋儘可能多地防止bug,然後繼續到不同的層級。這樣,手動和探索性測試在UI級別最有價值,專注於那些無法自動化的測試。
Michael Cohen 的自動化測試金字塔解釋了這個概念:
在左邊,可以看到自動化通常是如何完成的,而右邊是理想的自動化測試,其中單元測試在金字塔中佔據最大的比重。
儘管自動測試和手動測試之間存在差異,但它們並不相互排斥,而是被視為尋求更好軟體質量的補充任務。
如果考慮測試的投資回報,手動測試新功能能以較低的成本快速瞭解應用程式的更多資訊。隨著知識的獲取好測試的庫存增加,手動測試的成本也會增加。另一方面,自動化具有更高的初始成本,隨著它的進展而降低。這種趨勢如下圖所示:
可以看出自動化需要大量的初始投資,直到“突破點”,與手動測試相比,我們開始看到它對長期成本產生的積極影響,也能夠清楚,這兩種測試活動都是完全相容,產生短期和長期利益。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978795/viewspace-2794841/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 何時適合進行自動化測試?(下)
- 自動化測試是什麼?什麼軟體專案適合自動化測試?
- 如何選擇合適的自動化測試工具?
- 使用 PostMan 進行自動化測試Postman
- 使用PostMan進行自動化測試Postman
- robotframework + appium進行自動化測試時遇到的問題FrameworkAPP
- Flutter應用進行自動化測試Flutter
- 真的要進行介面測試自動化?
- 自動化測試更適合缺陷預防,而不是提高測試效率
- Appium自動化(15) - 針對 webview 進行自動化測試APPWebView
- 多個 iOS 裝置同時進行 UI 自動化測試iOSUI
- Selenium+Java+TestNG進行web自動化測試JavaWeb
- 使用 Robot Framework 進行自動化視覺測試Framework視覺
- 自動化測試常見問題總結!(適合新手團隊)
- 深圳軟體測試學習:如何在Android手機上進行自動化測試【千鋒】Android
- 自動化測試專案為何失敗
- 怎樣開始用selenium進行自動化測試?
- 大資料包表如何進行自動化測試大資料
- 自動化測試系列 —— UI自動化測試UI
- 如何選擇一款適合自己的APP自動化測試工具?APP
- 自動化測試進階課程——Selenium自動化測試通關實戰班
- 【自動化測試入門】用Airtest - Selenium對Firefox進行自動化測試(0基礎也能學會)AIFirefox
- Python + requests + unittest + ddt 進行介面自動化測試的框架Python框架
- 【自動化測試入門】自動化測試思維
- 【編測編學】自動化測試面試必背(上)面試
- 哪一種 AI 輔助程式設計工具適合自動化測試指令碼AI程式設計指令碼
- Airtest結合tidevice實現IOS自動化測試AIIDEdeviOS
- 軟體自動化測試與AI結合 - modernanalystAINaN
- 使用 ATX+pytest+allure-pytest 進行 IOS 的 UI 自動化測試iOSUI
- 自動化裝置測試與自動化測試的區別
- 如何做自動化測試?什麼是自動化測試?
- 軟體測試:自動化測試
- 有效進行自動化測試,這幾個軟體測試工具一定要收藏好!!!
- API自動化測試API
- 自動化測試框架框架
- 自動化測試理解
- 自動化測試思路
- 介面自動化測試