軟體測驗發展簡史
乘著互聯網的封口,測驗行業發展的也是如火如荼,很多科班/非科班的人員涌入這個行業,作為一名測驗工程師,咱們先了解一下測驗這個行業發展的歷程,也方便對別人進行科普(侃大山)

測驗工程師的主要職責是保障產品的質量,發現產品中的“bug”,bug這個詞的來源有一則趣事,根據維基百科的記載,1946年,著名的計算機先驅 Grace Hopper女士在其參與的哈佛專案Harvard Mark II中,遇到了一項事故,有一只蛾子飛到了繼電器上,后來這只蛾子被人們小心翼翼的取出來粘貼到了記錄本上,如圖所示,而Hopper女士也多次用bug來形容這次事故,慢慢的,人們開始習慣用“bug”代表系統中出現的錯誤和例外事件,

接下來,我們利用時間線,了解測驗這個崗位,在職業發展上的一些重要里程碑,一開始,其實并沒有專門的軟體測驗這個職業,而是很自然的,由開發人員自行承擔了除錯的任務,這就是軟體測驗的雛形,
1968年,NATO(北大西洋公約組織)提出”軟體工程”概念,軟體測驗隨之發展起來
1975年,John Good Enough和Susan Gerhart在IEEE上發表了《測驗資料選擇的原理》,軟體測驗被確定為一種研究方向
1979年,Glenford J. Myers的著名的《軟體測驗藝術》給出了測驗代定義,Software testing is the process of running a program with the intention of finding errors”
1983年,Bill Hetzel在《軟體測驗完全指南》提出軟體測驗方法論,測驗不只是發現問題,而是對軟體質量的度量
20世紀90年代,軟體測驗體系日趨完善,包括各種軟體測驗工具,自動化測驗技術出現,軟體測驗系統的評估方法被提出,如測驗成熟度模型(TMM),測驗能力成熟度模型(TCMM)
同時,對于測驗工程師個人而言,其職業發展的路線上,也逐漸形成了各具特點的多種發展分支,比如業務,自動化,測驗工具,性能,安全,持續集成方向等,有趣的是,隨著時代的發展,一個人不能夠只承擔其中一種角色,而是必須成為“斜杠青年",身兼多種角色,才是一名會受到市場歡迎的測驗工程師,
問題來了,在測驗行業里,想要站到時代的浪潮上而不是被后浪拍死,具體要學會何種技能呢?
測驗技能分類
下面從兩個角度,介紹測驗工程師的技能點,假設我們現在在一個面試現場,當被問到,你在作業中,是通過什么方式測驗產品的,那就是第一個角度的問題,當被問到為了保障產品的質量,具體做了哪些測驗,那就是第二個角度的問題,細節如下,
測驗方法有哪些
測驗方法是測驗的策略的具體實作,定義了如何執行整個測驗程序,業界常見的測驗方法如下:
1、靜態測驗:指代碼review/代碼走查
2、動態測驗:需要人員實際執行測驗用例
3、被動測驗:不參與系統互動,例如分析離線日志
4、探索式測驗:1984年,Cem Kaner提出,強調測驗工程師的主觀能動性,看重持續優化調整測驗策略,而不會放太多精力在測驗計劃和測驗用例上
5、白盒測驗:關注程式內部的邏輯機構和作業方式,例如常見的API測驗,測驗覆寫率,靜態代碼掃描,故障注入
6、黑盒測驗:不檢查代碼,只關注測驗軟體的功能
7、灰盒測驗:了解程式內部結構,并在黑盒層或者User層執行測驗用例,例如通過修改資料庫,構造邊界值/錯誤值來觀察被測產品狀態
測驗型別有哪些
如果說測驗方法偏重于描述一名測驗工程師的經歷,而測驗型別則更偏重于是一種”赤luoluo“的衡量測驗工程師的能力高低的方式,下面我們看看,測驗工程師可能會被面試官問到的,會做哪些型別的測驗,都有啥?

在這里我向大家推薦一個自動化學習交流群,交流學習群號:902061117 里面會分享一些資深架構師錄制的視頻錄像
職業發展方向
在職業發展方向上,有3種路徑,如前所述,在新時代背景下,這3種角色并不是涇渭分明,而是很可能一名人員,身兼多職,
業務測驗
業務測驗這條路徑上,關注點在以業務為導向,提升職業技能,

一個典型的軟體開發流程如圖所示,測驗工程師參與其中,體現價值的節點有
1、保障需求質量,包括需求合理性:有合理的業務場景;需求全面性:主分支的業務邏輯,旁路/例外分支
2、保障測驗質量,要求測驗工程師有:
熟練的業務知識:熟悉現有系統各個業務流程/準確判斷新功能與系統其他模塊的關系
高質量的測驗用例:測驗用例的撰寫/評審/執行
檔案撰寫的能力:完善的測驗計劃/準確的BugList/各種型別的測驗報告
推進專案進度:跨團隊溝通能力/區分測驗用例優先級/評估版本收斂性/推進Bug解決
3、保障發布質量,要求測驗工程師能夠完成:
上線質量:上線后系統作業符合預期
資料分析:基于線上資料評價上線的效果
問題跟進:跟進線上問題
測驗開發
發展到這條路徑,需要測驗工程師具備一定的編碼能力,對計算機原理,常用的工具都要掌握到一定的程度,

測驗管理
測驗管理方向,是指對測驗質量的全程把控,主要包括
協作和溝通,以業務為導向,突破職能束縛;資源協調團隊協作,資源協調
介入軟體生命全周期,包括了解各個階段的進度;監控測驗程序,及時發現風險;協助配合其他角色完成任務測驗程序監控,協助配合他人完成任務
總結和改進:了解各個階段的進度;測驗程序監控,及時發現風險;協助配合其他角色完成任務
總結
本文介紹了軟體測驗這個行業的發展歷史上的一些重要時間節點,以及常見的測驗方法/測驗型別及其定義,最后針對軟體測驗工程師這個行業,目前常見的三種職業發展路徑做了一些探討,期望可以幫助剛踏入這個行業的測驗工程師們有一個全景的認識,已經成為”老鳥“的測驗工程師也可以發表一些關于這個行業的思考,
最后: 給大家推薦一個 q 群:902061117 里面有許多資料共享!資料都是面試時面試官必問的知識點,也包括了很多測驗行業常見知識,其中包括了有基礎知識、Linux必備、Shell、互聯網程式原理、Mysql資料庫、抓包工具專題、介面測驗工具、測驗進階-Python編程、Web自動化測驗、APP自動化測驗、介面自動化測驗、測驗高級持續集成、測驗架構開發測驗框架、性能測驗、安全測驗等,
如果對你有一點點幫助,各位的「點贊」就是小編創作的最大動力,我們下篇文章見!
好文推薦
2021軟體測驗工程師面試題匯總(內含答案)-看完BATJ面試官對你豎起大拇指!
什么樣的人適合從事軟體測驗作業?
軟體測驗和軟體開發哪個發展更好
那個準點下班的人,比我先升職了…

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/292887.html
標籤:其他
上一篇:不裝了、攤牌了,我們要搞事情
