如果你有過汽車行業的從業經驗,你就應該知道,過去汽車行業只做測試,而不做開發。汽車制造商的主要任務(從工程角度看)是將來自數百家供應商的數千個零部件組裝在一起。考慮到現代軟件的復雜性和客戶的“挑剔”,最終產品要達到高質量是非常困難的。
在本文中,我想談談作為汽車行業工程師可能會遇到的一些軟件測試問題。
招聘軟件測試工程師時背景重要嗎?
既重要又不重要。
讓我們考慮一下你的特定行業背景真的很重要嗎?
如果你以前的經驗只涉及一個特定領域,并且只包括手動測試程序,那么轉到另一個行業將是非常痛苦的。很多做法對你來說都是全新的。就像APP的手動測試與汽車的手動測試完全不同。
如果一個人擁有很強的測試自動化技能和軟件測試的基礎知識,那么事情就會變得簡單得多。測試自動化意味著掌握編程、邏輯、分析、故障追蹤等技能。這反過來又帶來了無限的可能性和應用經驗的領域。此外,一個領域的經驗還能為另一個領域帶來一些新方法。
給職員的建議:學習測試自動化,即使你還沒有發現在日常工作中實施它的方法,它遲早會到來的。
給雇主的建議:如果您想聘用一名測試自動化專家,不要過于關注其背景,而應更多地關注其基本技能。
自動化還是不自動化?
答案是肯定要的。但你必須始終牢記測試自動化的成本。無論你從事哪個行業,測試金字塔都是你必須遵循的黃金法則。
如果可能,較低層次的測試都應完全自動化,而較高層次的測試則必須在自動化之前進行全面評估,因為自動化的成本可能會很高。也許你的工程師可以做得更快、更便宜或更有效。
另一種代表測試金字塔的方法稱為“左移”。
其目的是一樣的--大部分測試必須盡早進行。
單元測試、單元集成測試、組件測試、系統測試--所有這些層次的測試都必須在汽車制造之前完成,當然,目標是盡可能實現高度自動化。
此外,有些測試必須保持手動,例如在生產中使用特殊工具的程序。因此,工程師必須驗證這種特殊工具的使用方式是否與工廠員工在生產中使用的方式相同。
給職員的提示:不要等到有了成熟的軟件才開始自動化測試。從交付第一個原型開始,然后隨著軟件包的增長,增加測試自動化的裝備。
給雇主的建議:從一開始就將測試自動化納入測試策略和思維模式。為測試自動化提供工具和支持,使其成為 "完成定義 "的一部分。
持續集成(CI)
這是測試自動化真正帶來真正好處的地方,但沒有什么是免費的。
要實現CI,至少需要三個先決條件:思維方式、測試自動化和基礎設施。讓我們逐一討論:
-
思維模式。汽車行業的許多工程師習慣于以傳統方式工作,而不了解世界正在以幾乎不可預測的方式快速發展。在這種混亂的環境中,沒有持續的測試是絕對不可能的,我所說的 "持續 "是指每天或每次更改軟件或從供應商處收到新版本時。這種方法必須是必不可少的,并得到組織的支持。在每一個時間點,你都應該能夠知道軟件集成的狀態。這些信息將在項目交付過程中帶來難以置信的好處。
-
測試自動化是實現CI的第一步。因此,在決定全面進入 CI 之前,請確保至少在某種程度上已經實現了測試自動化。持續集成的目的是進行回歸測試,提供軟件的當前狀態,確保向客戶交付經過驗證的產品。而只有測試自動化才能快速、持續地為您提供此類數據。
-
基礎設施。使CI價格昂貴的并不是昂貴的設備(各種類型的測試臺和計算機,它們的功能僅限于你的想象力),而是開發和維護 CI 環境的人員。根據公司的特定需求開發和維護 CI 環境的人員,這才是關鍵。由于需求量大、可用性低,CI 開發人員(或 DevOps)在就業市場上相當有價值。CI 機器的規模越大,需要的 DevOps 工程師就越多。
但是,一旦你準備就緒并正確使用了所有部件,你就會比尚未準備好使用 CI 的競爭對手獲得難以置信的優勢。這些是 CI 最明顯的優勢:
-
不僅在單元或組件層面,甚至在系統或車輛層面,都能獲得有關軟件狀態的實時信息
-
低質量(或失敗)軟件將不會發布到下一級集成中
-
向測試人員和開發人員提供更快的反饋意味著更快的錯誤修復
-
不間斷測試。由于測試活動是自動化的,因此即使在非辦公時間,測試過程也不會停止。
軟件測試的后續步驟(ML、數據分析)
機器學習、數據分析、人工智能……這些流行詞即使對于非 IT 人員來說也是眾所周知的,但我還沒有看到上述技術在軟件測試中得到充分的使用。我預見的可能用途是在測試結果分析中使用機器學習/數據分析。基于特定邏輯(數據分析)或將測試結果連續反饋給系統(ML)。
這可能會減少故障追蹤的工作量,但所有這些都是猜測,沒有經過我這邊證實的例子。
給職員的提示:密切關注實際情況,不要錯過成為行業第一的機會,但也不要著急。
給雇主的提示:傾聽員工的意見,他們可能最了解社區中流傳的事情。
測試是職業生涯的死胡同嗎?
我在軟件測試社區多次看到有人提出這個問題。測試人員并不清楚如何才能實現自我價值。我認為這在很大程度上取決于公司的文化。如果測試人員得不到與其他員工同等的尊重,并將生產中的錯誤歸咎于測試人員,那么這樣的公司文化無疑是比較糟糕的。
在其他情況下,測試人員可以自由選擇職業道路。他們可以是高度專業化的專業人員或開發人員(嵌入式 SW 開發人員、測試工具開發人員、DevOps 工程師)。測試人員也可以選擇管理職業。但項目和產品管理需要一些額外的教育和對公司業務的了解。
給職員的建議:永遠不要停止學習。走在你最感興趣的領域的最前沿,多閱讀學習。
給雇主的建議:不要低估軟件測試人員,他們的批判性思維、對細節的關注和洞察全局的能力(軟件測試人員的共同特點)是非常寶貴的技能,可以很好地運用到其他領域,培養你的團隊伙伴。
如果你對上述主題有任何看法,請在評論中告訴我。
感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
?
這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!有需要的小伙伴可以點擊下方小卡片領取???
?