在很久很久以前,測試工程師面試是這樣開始的:
“給你個杯子,你打算怎麼測試?”
“我會如此… 這樣… 然後… 接下來… 最後… ”
光陰似箭日月如梭,到了0202年,杯子已經被無數測試小姐姐測試,基本已經不能喝水了…
於是,測試工程師測試升級了。
“給你個數據,比如MySQL,你打算怎麼測試…
言歸正傳!
正經的MySQL測試是這樣的——使用官方提供的測試套件。
MySQL的Unix源代碼包和二進制發行版中一般包含有MySQL測試套件(Test Suite)。允許用戶和開發人員對MySQL代碼執行測試。
這些測試可以在Unix/Linux上運行。
如果代碼能力足夠強,可以自己寫測試腳本,放進MySQL的測試套件裡測試。具體可以參考:https://dev.mysql.com/doc/index-other.html
當前的MySQL測試用例集並沒有測試MySQL中的所有內容,但是它應該捕獲SQL處理代碼、操作系統或庫問題中最明顯的錯誤,並且在測試複製方面非常徹底。
MySQL開發者大神們的目標是讓測試覆蓋100%的代碼。
所以,MySQL大神們表示:歡迎對各位帥哥、美女為MySQL的測試套件繼續做貢獻。
換言之,只要提交測試用例,被收錄了,那就是妥妥地參與了開源事業!基本堪比github上項目被幾百顆星。
簡歷裡絕對晃眼的亮點!
測試系統由測試語言解釋器(mysql test)、運行所有測試的Perl腳本(mysql test run.pl)、用特殊測試語言編寫的實際測試用例及其預期結果組成。
注:Perl是一種古老開發語言,除了寫出來程序可讀性灰常不友好,其它沒什麼大毛病啦~
下面舉的例子,測試在Linux/Unix系統進行
若要在生成後在系統上運行測試套件,請鍵入make test from the source root directory,或將位置更改為mysql test directory,然後鍵入 ./mysql-test-run.pl。
如果已安裝二進制發行版,請將位置更改為安裝根目錄下的mysql test目錄(例如/usr/local/mysql/mysql-test),然後運行./mysql-test-run.pl。
所有測試都應該成功。如果沒有,請嘗試找出原因並報告問題到MySQL官網的bug管理裡面。大概率情況是:它表明MySQL中存在錯誤。
給MySQL報bug地址:
https://dev.mysql.com/doc/refman/5.7/en/bug-reports.html
如果測試有case不通過,而我們只想看看過程。那麼啟動“霸道總裁”模式,加上—force參數。
mysql-test-run.pl --force
默認情況下,mysql-test用的9306或者9307端口。
所以,即使有MySQL正在運行,也沒大礙。
如果碰到端口被佔用的情況,改別的端口好了。
具體做法是修改環境變量:
MTR_BUILD_THREAD舉個栗子:
Shell > export MTR_BUILD_THREAD=31
Shell > ./mysql-test_run.pl xxx
具體的MySQL測試用例推薦風格,請參考:
https://dwz.cn/gRXuiDys
作 者:Testfan Arthur
出 處:微信公眾號:自動化軟件測試平臺
版權說明:歡迎轉載,但必須註明出處,並在文章頁面明顯位置給出文章鏈接
閱讀更多 安然—Testfan 的文章