何時適合進行自動化測試?(上)

陳琦聊測試發表於2021-10-08

儘可能地實現測試自動化是軟體行業的總體趨勢。在軟體測試中,自動化可以極大地提高生產力,但僅限於某些情況。


在這篇文章中,我們將介紹一種測試自動化的方法,目的是根據專案的上下文識別其可行性。對於測試人員來說,瞭解什麼是自動化以及何時可以自動化非常有用。測試人員應該多多注意如何最佳化工作,無論是與其他同事、開發人員合作,還是自己嘗試自動化工具。


我們將介紹一些在還沒有自動化相關經驗時非常重要的概念,並評估它們相對於手動測試相關的重要性和優勢。

什麼是測試自動化?

從歷史上看,自動化的出現是為了減少可程式設計系統、機械操作的活動所需的人力,目的是簡化繁重、重複和複雜的工作,使其更有效也更高效。透過這種方式,可以節省能源、時間和成本,同時讓人們騰出時間專注於其他任務。


在軟體開發中,可以用同樣的方法,透過把原本要手動完成的工作自動化來實現。需要遵循的步驟被轉化成可重複的指令碼,所以他們可以將精力集中在其他提供更大價值、減少執行時間的特定任務上。在某些情況下,自動化讓我們能執行人工本無法執行的測試,特別是考慮到在特定時間段內執行次數的限制,自動化可以更輕鬆地完成規模化、工程化測試。


當測試人員考慮自動化時,最常見的問題之一是,“什麼時間可以進行自動化?”


想知道是否應該自動化,包括評估潛在的投資、方法、收益,最重要的是,評估目前手動流程的相關資訊。


首先要充分了解手動過程,並且對這方面瞭如指掌,只有這樣才能實現自動化。對於手動過程的完整了解是知道什麼時間可以進行自動化的支柱,這意味著手動測試不能被完全替代。在可以實現自動化之前,必須非常熟練地掌握手動測試。先學會走路,然後再跑步。

自動化誤區

自動化有其優點和缺點,具體取決於專案、時間、成本、質量和方法。


基於上述,另一個非常重要的點是,除了自動化或非自動化之外,還必須瞭解具體情況,而且所做的一切都是基於以最佳方式實現目標,選擇和應用適當的方法、工具和技能。


避免陷入以下關於測試自動化的常見誤區:

  • 任何軟體都能自動化
  • 自動化的軟體質量更好
  • 自動化測試優於手動測試
  • 自動化帶來更快的投資回報

無論是手動還是自動,不妨以下述七個原則來理解測試的目標:

  • 任何實踐的價值都取決於其背景;
  • 不存在“好的實踐”,但上下文中會發現好的實踐;
  • 人的合作是所有專案環境中最重要的部分;
  • 專案不是一成不變的,往往會採取不可預測的路徑;
  • 該產品是一種解決方案。如果問題不解決,產品將無法工作;
  • 好的軟體測試是一個具有挑戰性的智力過程;
  • 只有透過在整個專案中合作實踐的判斷力和技能,才能在正確的時間做正確的事情,有效地測試產品。

這些原則是 Cem Kaner、James Bach 和 Brett Pettichord 在書籍《軟體測試中的經驗教訓》中提出的,這有助於我們認識到適應當前專案情況的能力的重要性。

手動與自動

剛開始時,我們可能希望將一切都自動化,但開發和維護自動化測試指令碼的成本可不是輕輕鬆鬆的。


當一個專案把賭注押在自動化上時,理想情況下,它應該有一個堅實的基礎,從單元測試用例開始,透過即時反饋儘可能多地防止bug,然後繼續到不同的層級。這樣,手動和探索性測試在UI級別最有價值,專注於那些無法自動化的測試。


Michael Cohen 的自動化測試金字塔解釋了這個概念:


在左邊,可以看到自動化通常是如何完成的,而右邊是理想的自動化測試,其中單元測試在金字塔中佔據最大的比重。


儘管自動測試和手動測試之間存在差異,但它們並不相互排斥,而是被視為尋求更好軟體質量的補充任務。


如果考慮測試的投資回報,手動測試新功能能以較低的成本快速瞭解應用程式的更多資訊。隨著知識的獲取好測試的庫存增加,手動測試的成本也會增加。另一方面,自動化具有更高的初始成本,隨著它的進展而降低。這種趨勢如下圖所示:

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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978795/viewspace-2794841/,如需轉載,請註明出處,否則將追究法律責任。

相關文章