2015年,高級軟件工程師Benjamin Willenbring對Autodesk公司進行自動化軟件測試感到興奮。但這種興奮卻沒有持續多久,這是因為自動化團隊與其他部門溝通不多,而當測試進入生產階段時,并沒有帶來大家所希望的結果。
Willenbring說:“我們談論的是非決定性的失敗測試,但對其測試并沒有太大的信心。開始運行測試非常困難,由于沒有參考的案例,需要經常溝通,并且產生大量文件,我當時真的不知道如何處理。”
自動化軟件可以簡化Willenbring的工作。在接下來的幾年里,這些問題占據了他的大部分精力。
Willenbring的經歷并不罕見。隨著自動化通過IT技術的應用而迅速普及,并提供了一些寶貴的經驗和教訓。
從DevOps的自動化工作流到機器人流程自動化(RPA),自動化流程旨在減少繁瑣的工作,并使熟練的員工解脫出來從事更高級別的任務。但是,具有缺陷的辦公場所或部署不完善的項目可能會使自動化的夢想變成一場噩夢。一些IT專家對他們所聽說或遭遇的自動化失敗案例進行了闡述,并分享了六個技巧,以幫助企業的自動化計劃避免失敗的命運。
1.自動化是每個人工作的一部分
Willenbring的自動測試面臨一個關鍵問題:唯一了解自動測試的人員就是構建自動測試軟件的人員,但通常他們并不一定在企業總部工作。
Willenbring說:“測試框架的困難之一是,當出現故障時,它無法真正提供良好的反饋。如果失敗,需要做的第一件事就是通過協作應用程序Slack聯系測試負責人,并問為什么會失敗?然后,通過人工重新運行測試,對于框架的某些特殊版本,需要對可看到結果或將要將發生的情況進行溝通。”
DXC科技公司全球DevOps產品經理Robert Haas表示,其測試框架違反了兩項基本規則,每個自動化制度都應遵守這兩條規則。首先是必須記錄自動化代碼。Haas說:“無論企業使用像編制文檔之類的現代方法,還是對Visio圖表進行注釋,如果有一些文檔描述了最初所做的事情,那么解決問題將變得更加容易。”
如果沒有文檔,自動測試對Willenbring的團隊是難以理解的。他們將無法理解測試結果,并且對測試和創建它們的團隊失去信心。Willenbring說:“有時候開發人員可能并不在乎,認為這不可能是真正的失敗。有時候,測試框架確實存在真正的失敗。但是,關鍵問題是對測試和結果缺乏信任。”
Haas的另一個建議是:“根據需要交付的業務價值,對需要實現自動化的活動進行優先排序。”但是由于Autodesk的測試團隊與開發團隊如此分離,Willenbring發現他選擇的代碼庫中的許多領域都違背了常識。他說,“需要讓主題專家或了解重要內容的人員選擇要測試的東西。如果只是在瀏覽一大堆錯誤記錄,那么不能保證測試的數量能夠準確地反映出任何有意義的東西。”
新上任的工程總監使Willenbring及其團隊擺脫了這一惡性循環。工程總監要求質量測試成為每個人的工作,其中包括測試自動化,并取消集中式測試,讓各個部門負責為其工作編寫測試代碼。Willenbring和他的團隊現在可以根據自己的需求量身定制測試,并將該過程整合到他們的日常生活中。最后他說:“必須對‘那不是我的工作’的態度制定零容忍政策。”
Willenbring為此受到啟發,并對其自動化之旅進行了詳細的描述,其中包括人們可能感興趣的深入材料,以及他處理的Selenium和Cypress測試框架的詳細信息。
2.為復雜性做好準備
安全和合規自動化供應商Tripwire公司最近注意到該公司的一個大型金融客戶的自動化解決方案運行有些奇怪。
Tripwire的加拿大地區經理Irfahn Khimji說:“這家公司部署了自動解決方案,但卻花費了很長時間,我們一直在想為什么看不到其許可證使用率顯著上升?因為他們部署的速度應該很快。”
事實證明,大部分自動化的持續集成(CI)/持續部署(CD)管道的理想正在金融組織的各個業務部門工作中實現,每個業務部門都依賴于自己定制的軟件組件集。
Khimji說:“他們正在嘗試使用30多種應用程序,這些應用程序的商品化(在各種庫中需要的模塊以及類似的東西)都面臨一些挑戰。調整管道以處理所有這些不同的變化確實減緩了自動化過程,因為它不僅是簡單的部署,還需要確保所有這些不同的技術都相互協作。”
沒有什么靈丹妙藥可以解決這個問題,但是需要知道,隨著自動化流程中組件數量的增長,連接這些組件所需的管道數量會以指數級增長,并變得更加復雜。當過渡到自動化流程時,這種復雜性將需要更多的時間和資源。
增加這種復雜性的另一個因素不僅是要連接的組件數量,還包括它們的來源。大多數管道或機器人流程自動化(RPA)驅動的環境都包含內部組件和第三方組件的異構組合,如果出現問題將難以解決。
DXC科技公司的Haas說:“確保持續集成(CI)/持續部署(CD)管道或自動化過程的所有組件都與軟件提供商簽訂維護合同。如果有開源組件,請進行風險評估,以確定是否應考慮使用產品的托管版本,而不是依靠開源社區的基于Web的支持。”
3.當心“黑盒”
金融機構一直是希望部署機器人流程自動化(RPA)和聊天機器人的機構之一,Aisera公司的首席執行官兼聯合創始人Muddu Sudhakar警告說,他在這些環境中經常看到這樣一種情況:流程被視為一個單一的整體功能單元,成為了一個“黑盒”,其內部操作很難被排除在故障之外。
他說:“在整體結構中,客戶將檢查其帳戶的狀態,如果要提取并轉移這筆費用,這一切都將一步到位。如果出了問題,并且沒有經過審計的步驟監控,那么在災難性失敗中取回資金的唯一方法是致電客戶服務部門,也許需要親自去銀行取款。”
對于Sudhakar來說,這種設計通常是企業早期采用自動化的標志。只要一切都按計劃進行,這樣的項目就可以產生良好的結果。但是如果不是這樣,企業通常必須回來拆分這些黑盒。最好從一開始就避免使用它們。
他說:“將每個過程分解為多個構建塊,其中每個構建塊都是可審核和可監控的。”
4.建立制衡機制
Ari Meisel是Less Doing公司創始人,也是一位對自動化工作特別感興趣的生產力教練。他經常為生活方便開發一些自動化軟件。但當他試圖避免停車罰單時,采用自動化軟件卻遭遇了一個沉痛的教訓。
Meisel擁有一輛皮卡車,從技術上講是一輛商用車,而在他居住的紐約市,這種汽車的擁有者很容易對罰單提出異議:“可以向當地財務部門發送信函辯解說,‘我正在送貨。'”
他承認,他的這種做法并不完全合法的:他創建了一種自動化軟件系統,可以隨機生成發票,并將發票和信函發給當地財政部門,以對取消罰單進行辯解。他表示這種方法開始奏效,但卻出現了問題,因為該系統發送了100多次完全一樣的信函和發票,財務部門威脅要把我送進監獄,為此我找到律師進行辯護,最終結果我為此花費了3.6萬美元。”
他意識到,他的自動化處理軟件需要的是一個防錯措施。這個術語的意思是“防錯”,在豐田公司的汽車生產體系中,采用過程的步驟,這個步驟被分成了兩個步驟,第二個步驟的運行依賴于第一個步驟。雖然增加步驟但反而提高了效率,這好像有些自相矛盾,但如果沒有排除錯誤將會影響生產線運行。Meisel說,在他的逃避罰單的計劃中,如果自動運行程序將每一張發票與之前發送的發票進行比較,查看內容是否相同。這是一件很容易做到的事。”
這擴展了Aisera的Sudhakar的建議:每個自動化步驟不僅應該是可以審核的,而且還應由其他自動化步驟不斷進行審核。在AIOps領域中,自動化平臺承擔了工程師的IT管理負擔。Sudhakar說:“我稱之為美國航天局(NASA)方法。NASA必須假設將要發生的故障,必須采用具有制衡功能的AIOps解決方案。”
但是,除非親身經歷了自動化的失敗,否則很難看到它的價值,Meisel說:“人們在90%的時間內都會出問題。他們表示,不會采用這種永遠不會真正受益的自動化技術,然后卻發現他們確實需要它。”
5.不要忽視安全
自動化的持續集成(CI)/持續部署(CD)管道有一個秘密:許多用于解決安全性要求的管道最初是作為影子IT推出的。Tripwire的Khimji說:“開發者想繼續下一次迭代(開發代碼)。因此,當嚴格的IT和安全流程陷入困境時,他們認為,‘我可以在云平臺中生成這些映像,并且我可以規避它們。”
這并不意味著這些管道天生就不安全,但是應該調查哪些安全實踐是為了提高自動化效率而放棄的。此外,需要記住,任何自動化進程都代表了攻擊的另一個向量。自主操作的進程可能具有提升的權限,使它們成為誘人的目標。Aisera公司的Sudhakar說,他了解一些稱之為“黑天鵝”的例子:例如一個競爭對手在一家公司內部使用DevOps管道將惡意軟件注入代碼庫,使其傳播到生產環境中,使其系統無法運行。
6.不要廉價地自動化
Tesults公司首席開發人員和創始人Ajeet Dhaliwal發現,不當的炒作會帶來誤解。許多企業都有一個“自動化測試”的愿景,但它與最佳實踐大相徑庭。在沒有技術背景的小型組織中尤其如此。由于他們了解人工測試,因此從邏輯上講,自動測試應該只是無需人工干預即可進行的人工測試的一種版本。
因此,Dhaliwal說,“他們鼓勵那些沒有軟件開發背景的傳統質量保證(QA)測試人員執行人工測試,使測試實現自動化。有時這意味著使用工具,只記錄人工用戶界面(UI)測試,以便以后重復進行。這些方法的健壯性和靈活性與開發人員在自動化方面能夠實現的目標不匹配。”
Dhaliwal補充說:“自動化測試開發人員還需要成為軟件工程師。有一些初級開發人員參與是可以的,但是這些公司需要一些經驗豐富的開發人員來領導這項工作,而他們沒有這樣的人員。”
而且,正如Autodesk的Willenbring所說,軟件工程師還需要了解如何構建自動化流程。他說:“這只是開發人員將擁有的技能之一。當企業可以使用這些技能時,希望這些技巧將有助于企業的自動化項目獲得成功。”
版權聲明:本文為企業網D1Net編譯,轉載需注明出處為:企業網D1Net,如果不注明出處,企業網D1Net將保留追究其法律責任的權利。