坊間關于測試的一些認知哟旗,尤其是局外人對我們的看法撒犀,有一些頗具殺傷力。今天间学,我們就重點聊一下關于測試的那些神話拒担,給我們的玻璃心罩上一層保護膜嘹屯。
看到這句話,測試團隊是否充滿了自豪感从撼?確實州弟,作為測試的一員,我們應該以此為目標:有我們在低零,質量就可以得到保證婆翔。但是,絕大部分測試團隊是沒有這個魄力去做此承諾的毁兆;然而浙滤,客戶對我們的期望往往比我們自己有信心的多啊。當一個原先沒有測試的IT團隊負責人向老板申請測試資源時气堕,老板往往就是這么認為的纺腊。
去年,我們所負責的一個測試項目上線后出了問題茎芭,客戶方的老板不出意外地發(fā)出了怒吼:不是已經(jīng)請了測試團隊了么揖膜,花了那么多錢,為什么還是有問題梅桩?的確壹粟,由測試最終把關卻出現(xiàn)了問題,測試團隊難辭其咎宿百,這個鍋是必須背的趁仙。只是老板們不會關心:業(yè)務關于需求的確認是有問題的;開發(fā)對代碼管理的版本是不受控的垦页,以致提交生產的部分代碼不是測試最后測過的版本雀费;還有上線的時間點總是緊急而不可變更的但測試的資源和時間卻是有限的。
指望有了測試痊焊,所有的質量問題就會迎刃而解盏袄;這個多少有些一廂情愿。不過薄啥,從無到有引入測試辕羽,無疑是有幫助的;至少會多一層驗證的“關卡”垄惧,讓提交更有把握刁愿。哪怕是前面提到的場景,我們的團隊還是在長達兩年的時間里保障了系統(tǒng)在線上的穩(wěn)定運行赘艳,并提前找出了數(shù)以千計的缺陷酌毡。
如同我們昨天文中所介紹的克握,引起軟件質量的因素并非測試,有效的測試可以幫助發(fā)現(xiàn)缺陷進而尋找出問題所在枷踏,但是它不能從根本上解決問題菩暗。比較讓人欣慰的是,上述案例中“事故”的最后解決方式旭蠕,還是各方一起協(xié)商停团,把流程和職責進行了梳理;算是一個很圓滿的結局了掏熬。
這個說法再次把測試工作給神話了佑稠,我真心表示誠惶誠恐。它的意思和上一條類似旗芬,但是更加具象化了舌胶。
當然作為軟件研發(fā)團隊整體,零缺陷提交應該一直是我們的追求疮丛。只是當客戶把這一條作為驗收條款之一寫進合作協(xié)議書的時候幔嫂,我就很難淡定了。
其實誊薄,關于如何證明測試有效履恩、如何設定測試后的驗收標準一直是個難題。而且我不止一次在客戶的合同條款上呢蔫,看到了“沒有缺陷”這樣的要求切心。面對這樣的要求,我肯定是拒絕的片吊。于是免不了會來來回回地溝通绽昏,最終雙方進行妥協(xié)。所幸的是俏脊,在這一點上大部分對于軟件開發(fā)有概念的客戶也都是有認知的而涉,所以達成一個雙方都能接受的一致條件并不算太難。比如我們一個客戶對于系統(tǒng)的關鍵點的把握非常精準联予,也知道以項目的情況和時間表而言不可能達到零缺陷的程度,于是劃了一個底線條件:所有記賬的功能不能有缺陷材原。對此沸久,我們除了說理解萬歲外,真的不能贊同更多了余蟹。
事實上卷胯,我們很多時候都要對“測試通過”做一個定義,一般測試通過意味著符合了項目某些客觀和主觀的質量標準威酒。但是考慮我們的測試理念之一:“缺陷一直在潛伏窑睁,因此測試工作永遠都可以繼續(xù)”挺峡,我們真的很難把“零缺陷”作為測試通過的條件。現(xiàn)實中担钮,“測試通過”往往是基于風險的判斷橱赠,是一個權衡的結果。而且箫津,更加現(xiàn)實的情況是狭姨,在可控情況下,商業(yè)目標往往是高于測試的結論的苏遥。
看到這句話的時候饼拍,自動化工程師們(測試開發(fā)們)有沒有熱血沸騰?不過田炭,我猜真正玩過自動化的團隊們看到這一條师抄,多半會覺得壓力山大。自動化測試最后取得的效果往往低于哪怕是最保守的預期教硫。
至少從我所經(jīng)歷的情形來看叨吮,自動化測試做成功的案例遠遠少于失敗的案例;盡管大部分項目都號稱成功了栋豫,但是以我的標準來看挤安,大都沒能達到預期的效果。這個結論多少有些讓人沮喪丧鸯。
去年蛤铜,我們支持一個客戶完成了自動化測試腳本的開發(fā),而由于自身系統(tǒng)的頻繁變更以及測試環(huán)境的混亂丛肢,客戶后續(xù)投入了大量的精力在自動化腳本的維護和更新围肥、測試環(huán)境的準備和恢復、處理各種運行時的異常上蜂怎。于是穆刻,對于自動化測試從一開始的憧憬,變成了現(xiàn)在的懷疑杠步,可以說是一個典型的例子氢伟。
今年初,我們和一個客戶交流自動化測試幽歼。在聽到我描述過幾個成功案例取得的效果后朵锣,客戶方分管測試的副總信心滿滿、躍躍欲試甸私,開始規(guī)劃他們的目標以及盤算會帶來的成果诚些。其中,就提到了是否可以很快減少目前支持的測試人員皇型。因為關系還算不錯诬烹,我比較直白地潑了一下冷水:自動化測試在短期并不能減少多少人力(哪怕是手工測試的工作量)砸烦,而且還得增加可靠的投入;只有把戰(zhàn)線拉長到足夠可觀的時間绞吁,才有可能實現(xiàn)人力成本的縮減幢痘。這個時候,旁邊負責自動化測試實施的經(jīng)理則馬上接過我的話掀泳,對我的觀點表達了認同雪隧。好吧,她不敢直接對老板說的話员舵,我替她說了脑沿。畢竟外來的和尚好念經(jīng)啊~
自動化測試的決策本身就遠不是一個技術可行性分析,而更多是一個“投資回報”分析:在“合適的場景”下確實可以大幅提高測試效率马僻,但是這樣的效率也是以“高額”成本為前提的庄拇。做成一個自動化測試,需要有明智的場景和范圍選擇韭邓、需要有高額的投入措近、需要技術的正確選擇、需要項目的高水平實施女淑、還需要足夠時間去等待“盈利”瞭郑,可謂天時、地利鸭你、人和缺一不可屈张。