作者 覃其慧 發(fā)布于 2009年3月2日 上午12時(shí)30分
我——作為一名測(cè)試人員——有一個(gè)與眾不同的習(xí)慣:每當(dāng)要加入一個(gè)新項(xiàng)目的時(shí)候,我總會(huì)找到項(xiàng)目中的同伴,真誠(chéng)而親切地說:“為了更好地合作,我有5個(gè)約定,希望大家能盡量遵守”。
約定1. 業(yè)務(wù)分析師們,我們其實(shí)是同一個(gè)角色的兩種面孔,請(qǐng)叫上我們參加客戶需求會(huì)議
我們的團(tuán)隊(duì)需要讓客戶頻繁的得到可用的軟件,客戶的不斷反饋會(huì)給軟件的未來做出最正確的方向指引。
如果我們交付的軟件有很多質(zhì)量的問題,存在大量的缺陷,客戶會(huì)被這些缺陷的奇怪行為干擾,沒有辦法把注意力放在軟件本身的價(jià)值是否符合他們的真正需求上, 不能給出最有價(jià)值的反饋。所以,我們只有頻繁的做測(cè)試,在每次交付之前都把質(zhì)量問題找出來告訴我們的團(tuán)隊(duì),問題才能及時(shí)的得到改正。
而我堅(jiān)信“prevention is better than cure”(預(yù)防勝于治療),我會(huì)要把工作的重點(diǎn)放在預(yù)防缺陷上,這樣可以節(jié)省Dev們很多修復(fù)缺陷的時(shí)間與精力。
為了達(dá)到這個(gè)目的,我需要跟你一起參加客戶需求會(huì)議,盡早的了解客戶需求與使用軟件的慣常行為。那么在你完成需求的驗(yàn)收條件的定義的時(shí)候,我也基本完成了測(cè)試用例的準(zhǔn)備。
我們可以趕在開發(fā)人員們寫代碼之前就告訴他們我要測(cè)什么,讓他們減少因?yàn)檫^于樂觀而漏掉的一些重要的有破壞性的情況,減少缺陷的發(fā)生。這是我測(cè)試的一項(xiàng)重要任務(wù)。
如果你們?cè)诖蟛糠中枨蠖颊砗昧嗽俳唤o我們,我會(huì)浪費(fèi)掉等待的時(shí)間。更重要的是,開發(fā)好的軟件里面已經(jīng)有很多本來可以不存在的缺陷在里面了,開發(fā)人員們可能需要加班加點(diǎn)來保證在項(xiàng)目最終交付時(shí)間之前把它們改好。這樣很容易產(chǎn)生新的缺陷的。
所以,請(qǐng)讓我盡早了解需求,請(qǐng)不要讓我到項(xiàng)目后期才能開始測(cè)試。
約定2. 開發(fā)人員們,雖然你們是編寫自動(dòng)化測(cè)試的專家,但請(qǐng)聽聽我們意見
我知道,對(duì)于你們,自動(dòng)化測(cè)試不過是利用junit, rspec, selenium,watir,uiautomation等等寫出的“另一段程序”而已。而對(duì)于80%的QA來說,編寫自動(dòng)化測(cè)試并不是一件簡(jiǎn)單的事情。
不過我仍然相信,有測(cè)試人員介入的自動(dòng)化測(cè)試更有價(jià)值。
你們用單元測(cè)試,集成測(cè)試來保證代碼的質(zhì)量。然而你們的這些日常測(cè)試離代碼更近,離最終用戶還點(diǎn)遠(yuǎn)。很多測(cè)試都不是在測(cè)軟件功能。
你們可以把功能測(cè)試寫的又快又多,而我們可以指出什么功能測(cè)試最有必要加到自動(dòng)化測(cè)試中。
你們平時(shí)大部分精力都在編碼上,沒有太多時(shí)間去查都有什么缺陷。而我們可以指出什么地方缺陷可能會(huì)出現(xiàn)的比較頻繁,建議在這些脆弱的地方加自動(dòng)化測(cè)試。
所以請(qǐng)聽聽我們的意見,我們可以給你們提供這些信息。
約定3. 項(xiàng)目經(jīng)理們,請(qǐng)不要要求我們測(cè)試軟件的所有路徑
軟件測(cè)試是一個(gè)永無止盡的任務(wù)。基本上沒有什么軟件簡(jiǎn)單到我們能夠嘗試完它的每一個(gè)可能的路徑的。就連一個(gè)看似簡(jiǎn)單的微軟計(jì)算器都有無窮盡的路徑,無止盡的輸入,更何況比這個(gè)更復(fù)雜的商用軟件。
如果你們擔(dān)心沒有嘗試過全部的路徑不可靠,疑惑我們?cè)趺锤艺f這個(gè)軟件質(zhì)量是好的還是壞,都有什么風(fēng)險(xiǎn)。請(qǐng)你們先注意,我們是跟業(yè)務(wù)分析師一樣,都了解軟件的價(jià)值的。價(jià)值可以幫我們做出判斷,什么時(shí)候可以停止測(cè)試并對(duì)客戶說我們的軟件已經(jīng)滿足您的要求了,請(qǐng)放心使用。
因?yàn)槲覀兞私鈨r(jià)值,我們可以肯定的說哪些軟件的使用方式是至關(guān)重要的,哪些是不太可能出現(xiàn)的。我們會(huì)在全面測(cè)試了軟件以后,把主要精力放在價(jià)值高的功能點(diǎn)上。合理的利用項(xiàng)目有限的時(shí)間。
因?yàn)槲覀兞私鈨r(jià)值,我們可以正確的把發(fā)現(xiàn)的問題分類。我們可以幫助dev們把精力放在重要的缺陷上,避免把時(shí)間放在對(duì)于客戶微不足道卻不得不花費(fèi)大量精力才能修正的問題上。
所以,請(qǐng)不要要求我們無止盡的測(cè)試一個(gè)軟件。我們了解價(jià)值,請(qǐng)相信我們的判斷。
約定4. 迭代經(jīng)理們,如果對(duì)于交付風(fēng)險(xiǎn)有任何疑問,請(qǐng)來詢問我
BA和Dev們都是關(guān)注一個(gè)軟件在什么情況是可以良好的工作。而我們除了驗(yàn)證這些情況以外,大量的時(shí)候都用在尋找什么樣的情況軟件不能正常的運(yùn)行。所以除 了針對(duì)定義好的軟件行為進(jìn)行測(cè)試,我們還會(huì)做很多探索性測(cè)試。我們通常可以通過這樣的測(cè)試發(fā)現(xiàn)一些沒有定義的、不曾預(yù)期的行為。這些行為往往將會(huì)構(gòu)成軟件 交付的風(fēng)險(xiǎn)。
我們會(huì)告訴你們現(xiàn)在都發(fā)生了什么問題,分別分布在哪里。
我們會(huì)告訴你們,在什么情況下軟件可能會(huì)有異常行為,是不是會(huì)牽連到其他的部分,是否可以繞過去。
我們會(huì)告訴你們,哪些部分功能比較不穩(wěn)定,需要更多的留意。
約定5. 測(cè)試人員們,那些敏捷實(shí)踐對(duì)于我們也是有用的。
結(jié)對(duì)不是dev們的專利。我不希望總見到你們獨(dú)自坐在自己的位置上冥思苦想。走出去,跟其他隊(duì)友多多交流!
多跟測(cè)試隊(duì)友交流,pair看看設(shè)計(jì)的測(cè)試用例是不是夠全面,獨(dú)自一個(gè)人想到的未必足夠好。他們會(huì)給你誠(chéng)懇的意見的。對(duì)他們,也請(qǐng)一樣認(rèn)真對(duì)待。
如果你發(fā)現(xiàn)開發(fā)人員們做出的架構(gòu)決定使測(cè)試工作變得更困難。那么請(qǐng)大聲地告訴他們,design for testability(提高你們?cè)O(shè)計(jì)的可測(cè)性)。
如果你發(fā)現(xiàn)業(yè)務(wù)分析師寫的需求無法驗(yàn)證,定義的客戶行為不夠具體,一個(gè)用戶故事中包含太多了功能點(diǎn),等等,那么也請(qǐng)大聲地告訴他,INVEST(獨(dú)立,可協(xié)商,價(jià)值,可估算,短小,可測(cè))。
也請(qǐng)你們多跟開發(fā)人員結(jié)對(duì)寫自動(dòng)化測(cè)試,既可以幫助你們學(xué)習(xí)怎樣更好的編寫自動(dòng)化測(cè)試,也能幫助開發(fā)人員們結(jié)對(duì)更多的了解用戶行為。
這就是我的五個(gè)約定,它們是我在團(tuán)隊(duì)中順利展開工作的基礎(chǔ)。
posted on 2009-03-04 17:36
周銳 閱讀(236)
評(píng)論(0) 編輯 收藏 所屬分類:
軟件工程