在一次與老友的溝通中,談到了在促進開發(fā)者測試中遇到的一些奇葩事情洲脂。作為測試人員掏湾,去調(diào)侃開發(fā)是一件類似猴子互相捉虱子一般的社交行為需要,因此試記錄之飞盆。
1)關(guān)于斷言
測試用例能不能通過娄琉,除了用例能正確執(zhí)行之外,還需要對預期結(jié)果進行斷言吓歇。
為了應對公司要求單元測試的開展孽水,有開發(fā)同學就寫下了類似
@Test
public void IamDoingTest(){
assertThat(1,is(equals(1)))
}
這樣的用例來充數(shù)。
而另外一個案例是城看, 在翻開歷史遺留項目的代碼倉庫時女气,可以驚奇地發(fā)現(xiàn)一個單元測試覆蓋率頗高的項目(相對沒有用例的項目而言),居然找不到一個斷言测柠,或者都是這樣的斷言
@Test
public void IamDoingTestAgain(){
//assertThat()
// comment the assert because it casues failure if switched to another env.
}
看來頗得老子無為的真?zhèn)鳌?/p>
開發(fā)自測==炼鞠?
在某些低級別的系統(tǒng)中缘滥,并不會投入專職的測試人員,只是由開發(fā)人員進行自測谒主。 由于沒有進行交叉測試等實踐朝扼,其自測質(zhì)量只能靠那個開發(fā)人員的個人職業(yè)操守了。測試/運維人員對這部分系統(tǒng)的要求就是:在關(guān)二爺?shù)谋佑酉脉希艹晒Π惭b擎颖、部署。
我們是測試驅(qū)動開發(fā)的模式
在很多團隊以及開發(fā)部門負責人口中观游,多少都聽到過類似的言論搂捧。 真正了解下來,有以下兩個場景
1)(手工)測試驅(qū)動開發(fā)
2)代碼庫中沒有可執(zhí)行的測試用例
單元測試vs 系統(tǒng)測試
比起單元測試懂缕,我們更希望做端到端的測試异旧,這樣我對系統(tǒng)質(zhì)量有更高的信心。
(接下來是一段關(guān)于因為各種原因沒有做端到端測試的論述......)
關(guān)于測試代碼的需求
1) As a developer, I hope單元測試的代碼能夠另外建一個代碼庫提佣,或者提交到別的分支, When 我重構(gòu)我的代碼后吮蛹, 我的項目能夠編譯通過,而不會因為單元測試用例無法編譯導致整個項目的編譯失敗拌屏。So 我可以繼續(xù)下一項開發(fā)任務了潮针。