有沒有公司會為自己的主打產品設計專用的腳本語言用於實現自動化測試?

如果有的話,這種情況普遍嗎?


我以前實際在公司項目里接觸過的有定製Ruby或者Groovy,用它們實現內嵌DSL(internal DSL / embedded DSL)來表達自動化測試邏輯的。

例如說淘寶的automan就是從Ruby的internal DSL開始的:automan (Taichan)

如果把DSL看作一種「專用語言」的話,這些場景肯定得算數吧。

並不是所有專用場景都必須要發明語法/語義完全脫離現有語言的external DSL來實現的。


我一直反對各類「看上去簡潔」的DSL。

這些腳本一般用Python可以搞得定,你非要搞個DSL。原本我只需要學習Python怎麼用,現在變成了學你這個DSL怎麼用。

而你這個DSL的維護程度和文檔???介面實現穩定度???

我可不想你因為做了一個修改讓我所有測試都崩了。

千萬不要為了解決一個小問題而引入一系列的大問題。


展示一下給前東家基於java做的lisp style的安卓測試dsl


論普遍性肯定不會很普遍吧,大都是用已有的東西,這樣比較方便

以前在遊戲部門的時候,為了方便產品人員直接提交一些方案策略,而不是走開發這邊,但他們又不想學python之類的腳本(實際也難度很大),所以給他們開發過一些簡單的腳本,當然是和業務結合緊密的,各種專用縮寫

用來輔助開發的倒是不少,比如我以前的部門開發過類似protobuf的從協議描述到可運行的協議打解包的形式(C++代碼以及位元組碼),另外聽說blizzard開發星際2和wow是用的自研的一種類java語言,然後編譯為C++,但具體細節不明


我們自己開發了航空嵌入式系統的自動化測試框架,包括腳本和解析器都重新設計了一套,雖然簡單粗糙但是貴在實用,不需要給產品插樁,全黑盒


七牛有自己的測試dsl,好像開源了


我只想說做這件事的意義真不是很大,大部分情況都是直接寫程序去好了,有時為了讓沒什麼編程經驗的人也能用你的東西,簡單的用json配置好了,複雜點的可能用groovy。再設計個dsl,只能說投入產出太低.

當然如果你是為了讓別人崇拜你,那另說


Ansys的apdl算不算


我在華為外包,隔壁測試組用的語言是java基礎上改出來的語言,也算是自己的專用語言吧?


TTCN-3,最後還是轉換成C++。。。

還有產品是Erlang寫的,自動化測試也是Erlang,沒見過吧。。。


推薦閱讀:

自製編譯器+自製腳本語言+自製編程語言 三書比較?
編寫PC單機遊戲的遊戲腳本需要哪些技術?
什麼是腳本語言?
Lua 這個腳本語言一般都用來幹什麼,有什麼優點?
類似 Lua 的腳本語言為什麼不用編譯和連接呢?

TAG:編程語言 | 解釋器 | 自動化測試 | 腳本語言 | 編譯器 |