新聞中心
這不是一篇關(guān)于軟件測(cè)試人員的工作評(píng)論方面的文章。最近參加了一個(gè)測(cè)試總結(jié)會(huì),至少在兩個(gè)項(xiàng)目匯報(bào)過程中發(fā)現(xiàn),開發(fā)管理者感興趣的一個(gè)度量指標(biāo)是:你們發(fā)現(xiàn)了多少個(gè)bug?然后,當(dāng)?shù)玫降幕卮鹗且粋€(gè)很高的數(shù)目或是一個(gè)很嚴(yán)重的缺陷(如:3個(gè)嚴(yán)重的bug!),就會(huì)得到熱烈的鼓掌。

成都創(chuàng)新互聯(lián)成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元蕭縣做網(wǎng)站,已為上家服務(wù),為蕭縣各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
不過,我感覺這樣做是不對(duì)的!我的第一反應(yīng)是,好吧,讓我換種說法……
“在我們的產(chǎn)品中,我們?cè)谠O(shè)計(jì)和實(shí)現(xiàn)過程中出現(xiàn)了多少嚴(yán)重的缺陷?”“僅僅3個(gè)?”“太棒啦?。ü恼疲?/p>
或者是:“哦,測(cè)試團(tuán)隊(duì),你找出了多少個(gè)我們程序的致命錯(cuò)誤?”“才3個(gè)?”,帶著得意的笑容,“感謝測(cè)試團(tuán)隊(duì)(鼓掌)”
[[97427]]
安息吧,bug!
這表明,詢問“多少個(gè)bug?”是種錯(cuò)誤的方法,像這樣的事情,我一旦發(fā)現(xiàn)會(huì)嚴(yán)厲地批評(píng)。但后來我意識(shí)到,這個(gè)特有標(biāo)準(zhǔn)的誘惑也曾讓我深受其害,不僅在我過去無知的歲月中,甚至更多的是現(xiàn)在。為什么呢?對(duì)“多少個(gè)bug”的有效性來說,這意味著什么呢? 下面是我的一些觀點(diǎn)。
三個(gè)階段
軟件開發(fā)的生命周期可以按多種不同的方式進(jìn)行切分。在這里,按我的觀點(diǎn),我會(huì)把它描述成3個(gè)階段(見上圖)。
- 階段1:設(shè)計(jì)、開發(fā)、單元測(cè)試
- 階段2:功能測(cè)試、上線前的評(píng)估測(cè)試:性能測(cè)試、壓力測(cè)試、使用場(chǎng)景模擬
- 階段3:線上監(jiān)控、線上測(cè)試、客戶反饋
上面列出來的項(xiàng)目是我們?cè)诿總€(gè)階段參與的以質(zhì)量為中心的活動(dòng)。
當(dāng)我們?cè)儐柊l(fā)現(xiàn)了多少bug的時(shí)候,我們是針對(duì)第二階段。所以問這個(gè)問題本身不是錯(cuò)誤的,錯(cuò)誤在于我們忽略了第一和第三階段質(zhì)量的影響和貢獻(xiàn)。
階段1的質(zhì)量
在這篇博客開頭,我開了一些玩笑,我現(xiàn)在想說的是第二階段的高bug數(shù)意味著第一階段質(zhì)量下降。當(dāng)開發(fā)總是主導(dǎo)設(shè)計(jì),一個(gè)可靠的質(zhì)量將會(huì)來自測(cè)試(系統(tǒng)的可用性和可測(cè)性)和項(xiàng)目管理(客戶至上)的貢獻(xiàn)。開發(fā)完成的質(zhì)量不僅僅依賴于好的開發(fā)經(jīng)驗(yàn),當(dāng)測(cè)試驅(qū)動(dòng)開發(fā)(TDD)被用上的時(shí)候,還跟單元測(cè)試緊密相關(guān)。除此之外,單元測(cè)試也能讓我們對(duì)“所得是否所需”有個(gè)最基本的了解。
階段1的質(zhì)量指標(biāo):
- 開發(fā)和測(cè)試、PM一起展開設(shè)計(jì)評(píng)審(雙重檢查);
- 需要結(jié)對(duì)review的代碼的百分比。我的觀點(diǎn)是--100%。這不僅是為了指出代碼中的錯(cuò)誤,更是一種重要的方式,能讓高級(jí)開發(fā)人員指導(dǎo)更多初級(jí)開發(fā)人員使用更好的開發(fā)經(jīng)驗(yàn),比如采用設(shè)計(jì)模式和代碼重用;
- 單元測(cè)試代碼覆蓋率。咦,我有提到過?一些人可能會(huì)想象這是一個(gè)有爭議性的論斷。但就像bug的數(shù)目沒有盡頭,而是一個(gè)未知數(shù)一樣,代碼覆蓋率也是;
- 代碼覆蓋率缺口分析:那些沒有覆蓋的代碼,我們是否遺漏了什么?
- 靜態(tài)代碼檢查;
階段2的質(zhì)量
我想闡明的一個(gè)主要觀點(diǎn)是:當(dāng)許多軟件專業(yè)人員想到軟件質(zhì)量的時(shí)候,他們就會(huì)想到這個(gè)階段。這種觀念的錯(cuò)誤可以用一句諺語來概括:“質(zhì)量不是測(cè)試可以測(cè)出來的”(如果有人知道這句諺語是誰說的,請(qǐng)告訴我下)。
這只是整個(gè)過程的一個(gè)階段。有很多階段1的質(zhì)量評(píng)估方法在這有對(duì)應(yīng)的部分:
- 測(cè)試計(jì)劃是否被開發(fā)和PM review?
- 測(cè)試代碼結(jié)對(duì)review的百分比;
- 集成測(cè)試代碼的覆蓋率(和往常同樣的說明);
然后是這個(gè)階段特有的部分:
- 有記錄的測(cè)試結(jié)果:這個(gè)對(duì)性能測(cè)試和壓力測(cè)試尤為重要,因?yàn)樗峁┝宋覀兯哪茉谏a(chǎn)中接受的基準(zhǔn)指標(biāo)。
- 所發(fā)現(xiàn)的bug數(shù)目和嚴(yán)重程度。重點(diǎn)就在這了,因?yàn)樗且粋€(gè)有效的質(zhì)量/風(fēng)險(xiǎn)指示器。但它不能放在真空中,它必須和第1、第3階段的結(jié)果在一起才能說明問題。
- 難道發(fā)現(xiàn)大量的、很嚴(yán)重的bug,就意味著超級(jí)有效的第二階段會(huì)把這個(gè)產(chǎn)品所有的風(fēng)險(xiǎn)排除?或者意味著階段1質(zhì)量非常糟糕時(shí),我們可以期望更多的災(zāi)難折磨我們的客戶?
- 難道一個(gè)很少的bug數(shù)意味著我們階段2的工具是在浪費(fèi)時(shí)間?或者意味著階段1非常給力然后帶來了高質(zhì)量的代碼?
階段3的質(zhì)量
我之前講過線上測(cè)試(TiP),它是一個(gè)有效的針對(duì)軟件產(chǎn)品的測(cè)試方法。這種方法的接受程度(不是方法本身)還有點(diǎn)新。然而線上監(jiān)控就不新鮮了。亞馬遜就是一個(gè)很好的例子,快速開發(fā)和良好支撐的監(jiān)控工具,加上其它工具使得亞馬遜能對(duì)產(chǎn)品發(fā)布作出快速響應(yīng)(也就是補(bǔ)丁),這已經(jīng)成為亞馬遜各種服務(wù)的質(zhì)量保證制度的一部分。你也許會(huì)問,即使你能找到線上缺陷并快速修復(fù),難道就允許將這些缺陷帶到生產(chǎn)中?“質(zhì)量”,是的,你只要問問亞馬遜的用戶他們是否遇到過問題,或者看看亞馬遜的用戶滿意分?jǐn)?shù)就明白了。
既然我們承認(rèn)產(chǎn)品有一個(gè)合理的質(zhì)量階段,那為什么不在第2階段把所有的問題找出來,而不用管第3階段呢?問題的答案是成本。如果我們嘗試用第二階段的大規(guī)模預(yù)先測(cè)試找到所有的問題,那我們就會(huì)因?yàn)椴粩嘣黾拥某杀径玫皆絹碓缴俚幕貓?bào)。在前面兩個(gè)階段的基礎(chǔ)上,用上第3階段是一個(gè)合理的、劃算的方式,能讓各種產(chǎn)品的質(zhì)量最大化。那對(duì)第二階段的bug數(shù)這意味著什么呢?它意味著我們應(yīng)該非常強(qiáng)烈地意識(shí)到找出那些bug我們所付出的代價(jià),并確保它有所值。
結(jié)論
那些曾由于對(duì)Bug數(shù)目感興趣,而被我在會(huì)議中嚴(yán)厲責(zé)罵的伙計(jì)們,在整個(gè)軟件開發(fā)生命周期(SDLC)中, 只要你們能夠承認(rèn)Bug在不同階段出現(xiàn)的數(shù)量及其原因,我也非常愿意加入到你們之中,并樂于接受這個(gè)結(jié)果。
網(wǎng)站標(biāo)題:為了發(fā)現(xiàn)數(shù)量眾多的Bug而歡呼?
網(wǎng)頁URL:http://fisionsoft.com.cn/article/djedgsh.html


咨詢
建站咨詢
