何時適合進行自動化測試?(上)
本篇目錄
在這篇文章中,我們將介紹一種測試自動化的方法,目的是根據項目的上下文識別其可行性。對于測試人員來說,了解什麽是自動化以及何時可以自動化非常有用。測試人員應該多多注意如何優化工作,無論是與其他同事、開發人員合作,還是自己嘗試自動化工具。
我們將介紹一些在還沒有自動化相關經驗時非常重要的概念,並評估它們相對于手動測試相關的重要性和優勢。
什麽是測試自動化?
從曆史上看,自動化的出現是爲了減少可編程系統、機械操作的活動所需的人力,目的是簡化繁重、重複和複雜的工作,使其更有效也更高效。通過這種方式,可以節省能源、時間和成本,同時讓人們騰出時間專注于其他任務。
在軟件開發中,可以用同樣的方法,通過把原本要手動完成的工作自動化來實現。需要遵循的步驟被轉化成可重複的腳本,所以他們可以將精力集中在其他提供更大價值、減少執行時間的特定任務上。在某些情況下,自動化讓我們能執行人工本無法執行的測試,特別是考慮到在特定時間段內執行次數的限制,自動化可以更輕松地完成規模化、工程化測試。
當測試人員考慮自動化時,最常見的問題之一是,“什麽時間可以進行自動化?”
想知道是否應該自動化,包括評估潛在的投資、方法、收益,最重要的是,評估目前手動流程的相關信息。
自動化誤區
自動化有其優點和缺點,具體取決于項目、時間、成本、質量和方法。
基于上述,另一個非常重要的點是,除了自動化或非自動化之外,還必須了解具體情況,而且所做的一切都是基于以最佳方式實現目標,選擇和應用適當的方法、工具和技能。
- 任何軟件都能自動化
- 自動化的軟件質量更好
- 自動化測試優于手動測試
- 自動化帶來更快的投資回報
- 任何實踐的價值都取決于其背景;
- 不存在“好的實踐”,但上下文中會發現好的實踐;
- 人的合作是所有項目環境中最重要的部分;
- 項目不是一成不變的,往往會采取不可預測的路徑;
- 该産品是一种解决方案。如果问题不解决,産品将无法工作;
- 好的軟件測試是一個具有挑戰性的智力過程;
- 只有通过在整个项目中合作实践的判断力和技能,才能在正确的时间做正确的事情,有效地测试産品。
手動與自動
剛開始時,我們可能希望將一切都自動化,但開發和維護自動化測試腳本的成本可不是輕輕松松的。
當一個項目把賭注押在自動化上時,理想情況下,它應該有一個堅實的基礎,從單元測試用例開始,通過即時反饋盡可能多地防止bug,然後繼續到不同的層級。這樣,手動和探索性測試在UI級別最有價值,專注于那些無法自動化的測試。
Michael Cohen 的自动化测试金字塔解释了这个概念:
在左邊,可以看到自動化通常是如何完成的,而右邊是理想的自動化測試,其中單元測試在金字塔中占據最大的比重。
盡管自動測試和手動測試之間存在差異,但它們並不相互排斥,而是被視爲尋求更好軟件質量的補充任務。

可以看出自動化需要大量的初始投資,直到“突破點”,與手動測試相比,我們開始看到它對長期成本産生的積極影響,也能夠清楚,這兩種測試活動都是完全兼容,産生短期和長期利益。

