1. 程式人生 > 其它 >軟體測試學習筆記-開篇詞|從“小工”到“專家”,我的軟體測試修煉之道

軟體測試學習筆記-開篇詞|從“小工”到“專家”,我的軟體測試修煉之道

在這個世界上,你想把任何一件事做好、做到極致都沒那麼容易,都需要付出比別人更多的努力。不管是一萬小時定律還是厚積薄發,當你把知識積累到一定程度的時候就會發現,原來軟體測試的世界這麼有意思。

面對勢不可擋的 ABC(AI + Big Data + Cloud)技術浪潮,無論是從被測物件本身的複雜性、多樣性和規模性來講,還是從測試技術以及測試基礎架構從無到有的發展來講,都需要測試工程師的知識面、測試設計能力、測試開發能力和測試平臺化抽象能力有質的提升。對此,我結合趨勢總結了以下三點。

第一,自動化測試在軟體質量工程中的地位發生了質的變化,從原本的“以自動化測試為輔”變成了“以自動化測試為主”。

所以,你不僅需要從業務本身出發來對軟體進行手工測試驗證,還需要掌握完整的自動化測試開發技術來設計自動化測試用例

第二,傳統軟體企業的產品釋出通常以“月”為單位,因此,測試執行總時間不會成為關鍵問題。但是,對於網際網路企業,尤其是大型電商網站,產品上線週期通常都是以“天”甚至是以“小時”為單位,留給測試的時間非常有限,這也就對測試執行總時間提出了極大的挑戰。為了解決這個難題,你需要一套完善的高併發測試執行基礎架構的支援。

所以,作為測試工程師,你就必須掌握設計開發測試基礎架構的關鍵技術

第三,隨著自動化測試的規模化,測試資料準備的各種問題被逐漸暴露並不斷放大,成為影響自動化測試效率以及穩定性的“攔路虎”。早期的傳統測試資料準備方法,無論是從測試資料準備的時間成本,還是從測試資料的穩定性和測試資料建立的便利性上看,都已經很難適應大規模自動化測試的要求。

所以,你必須系統性地思考如何才能將測試資料的準備工具化,服務化,最終實現平臺化

通過這個專欄的學習,我希望你能夠對這些趨勢與挑戰應對自如,並能時刻緊跟測試技術發展的新趨勢。理想是美好的,但道路往往是曲折的,因為你和我都非常清楚,技術人想要“一口吃成胖子”幾乎是不可能的。但是,不要氣餒,我在這個專欄里根據多年的從業經驗,給你總結了下面這個“三步走”的策略,助你破繭成蝶。

第一步,成為網際網路時代合格的測試工程師。

如果你是入行不滿 3 年的測試工程師,一定對此有迫切需求。此時,你必須具有快速學習的能力,能迅速掌握被測軟體的業務功能與內部架構,並在此基礎上運用各種測試方法,儘可能多地發現潛在缺陷,並能夠在已知缺陷的基礎上進一步發現相關的連帶缺陷。

從知識體系上看你需要有比開發人員更全面的計算機基礎知識,還需要了解網際網路的基礎架構、安全攻擊、軟體效能、使用者體驗和常見缺陷等知識從測試技術上看你需要能夠使用常見的測試框架或者工具,需要具有一定的自動化測試指令碼的開發能力,這可以把你從大量重複的工作中解放出來,然後你才能有時間去做更有意思的工作。

第二步,成為網際網路時代優秀的測試工程師。

如果你想從“合格”變為“優秀”,那必須先認識到兩者的差距在哪裡。

首先,合格的測試工程師關注的是純粹的測試,而優秀的測試工程師關注更多的是軟體整體的質量,需要根據業務風險以及影響來制定測試策略,有效控制測試的時間和成本,並且能夠對測試框架以及工具做出適合專案需求的選型。

以新房裝修為例,合格的測試工程師就是各個工序的裝修師傅,他們只管按照設計要求做好自己的工序,而優秀的測試工程師更像是個包工頭,他們關心的是整體交付的質量。

其次,優秀的測試工程師不僅可以嫻熟地運用各類測試工具,還非常清楚這些測試工具背後的實現原理,以及多個同類測試工具各自的優缺點和適用場景

在遇到問題時,你還需要能夠通過二次開發解決工具和框架層面的問題,對於沒有合適可用工具的場景,可以自行設計開發一些小工具來更好地展開測試工作。

當然這個階段,你很有可能會接觸到一些程式碼級的測試,這就要求你具有一定的開發背景,並能夠很好地理解程式碼級的測試技術。

最後,隨著自動化測試用例的不斷增長,自動化測試的關注點也從原本的“如何把手工測試步驟用自動化指令碼實現”變成了“如何構建低維護成本,可以靈活組裝的自動化指令碼”,這就要求你理解自動化指令碼的分層設計、頁面物件模型以及業務流程模型,並且能夠把這些設計應用到你的測試框架裡。

第三步,成為網際網路時代的測試架構師。

當你經歷了各種型別的測試專案,就會發現這些專案本身雖然差異巨大,但是有很多東西是相通的。

比如,面對大量測試用例的執行,無論是 GUI 還是 API,都需要一套高效的能夠支援高併發的測試執行基礎架構;再比如,面對測試過程中的大量差異性資料要求,需要統一的測試資料準備平臺;再比如,為了可以更方便地和持續整合與釋出系統(CI/CD)以解耦的形式做整合,需要統一發起測試執行的介面

這樣的例子還有很多,如果你已經能夠站在這樣的高度看待軟體測試,那麼恭喜你,你已經具備了測試架構師的視野。當然,你還必須對一些前沿的測試方法和技術有自己的理解,並能夠在恰當的時候、因地制宜地把它們應用到實際專案中。

這就是我給你總結的“三步走”進階策略了。千里之行始於足下,接下來我會從測試基礎知識講起,結合實際案例,由淺入深地帶你溫故知新,提升自己的軟體測試技能。