聊聊測試開發中提升 level 一些關鍵技術

wangxi發表於2020-12-26

先拋磚引玉說幾個,歡迎大家補充

編譯相關

語法樹分析改寫

如果做測試平臺開發,我相信這一關應該是大多數人都繞不過去的,面對測試開發編寫的指令碼程式碼,無論是在上層做封裝,還是平臺安全性考慮,語法樹分析都是必不可少的。
舉一個例子,如果有人在指令碼平臺上面寫了一個while(true)死迴圈怎麼辦呢?當然我也看過一些公司的實現方案,簡單起來用正則去做也不是不可以,但它的可靠性上來說就要差一大截了。

再比如這樣寫,那就已經不是單純正則可以搞定的事情了。

boolean tag=true
while(tag){
//do something
}

正如前面所說,語法樹分析不光是普通安全性的考慮,還有我們常說的資料驅動測試,目前普遍的做法過於依賴測試人員個人的程式設計習慣和技能。你不能保證每一個測開都可以做到程式碼精通,即便他程式碼寫的好,也不見得有好習慣會主動做用例資料分離。那麼基於語法樹分析改寫,我們是不是可以考慮在系統層面上做一些事情,自動從指令碼里面抽取用例引數呢?

編譯執行相關

看到這個標題可能大多數人都聽懵的,為什麼測試會和編譯扯上關係?說一個常用軟體sonar你可能就立馬明白了。目前devops技術發展很快,大公司普遍都上了類似PIPELINE的產品,測試作為流水線上卡點必不可少的關鍵一環,除了傳統的這些測試卡點之外,程式碼缺陷分析相關領域必將受到更多的關注,可以提前有一些相關的技術儲備。

通訊相關

協議編解碼

協議編解碼大多數情況下是一些自定義協議或者一些比較偏門的協議裡面會遇到。如果沒有官方工具,或者當前語言生態不支援的話,再或者感覺現有的工具庫用起來蹩腳,自己造輪子也是無可厚非的,這裡吐槽一下某大廠的rpc協議,裡面坑不少。

通用協議的深入實現

這裡就舉個例子,OpenApi規範。以前如果要存http介面的話,可能還得自己建表,設計欄位。目前我們是基於openApi規範把http相關的業務全部重構了一遍,使用者只需要上傳標準OpenApi檔案即可。作為平臺方,我們就可以用上整個OpenApi的生態。這裡指個路OpenApi Tools

當然不光是OpenApi了,還有很多的生態圈可以供大家去探索,這方面儘量少造輪子。

語言相關

插樁

插樁技術指在保證原有程式邏輯完整性的基礎上,在程式中插入探針,通過探針採集程式碼中的資訊(方法本身、方法引數值、返回值等)在特定的位置插入程式碼段,從而收集程式執行時的動態上下文資訊。

除了老生常談的覆蓋率之外,插樁可以應用的領域還是非常多的,單測有效性檢測(程式變異),程式問題定位等方面都有較多的應用。

相關文章