? ? 繼續(xù)附錄2的下半篇...
? ? 4.三擊不中出局念搬,是新的打擊手上場(chǎng)的時(shí)候了
? ? 20世紀(jì)早期瓷产,軟件質(zhì)量的問(wèn)題顯而易見(jiàn)倒慧,為了糾正這些問(wèn)題按摘,提出了多種方法,如下:
? ? 1)正式方法
? ? 正式方法是一個(gè)很好的想法纫谅。本質(zhì)上炫贤,它將電腦編程等同于解決一個(gè)數(shù)學(xué)問(wèn)題。但首先付秕,軟件開(kāi)發(fā)人員不會(huì)使用它們兰珍。其次,使用正式方法的人仍然會(huì)寫(xiě)出有很多缺陷的代碼盹牧。
? ? 2)工具
? ? 工具在很大程度上能減輕軟件開(kāi)發(fā)任務(wù)的痛苦,但是它們不能保證零缺陷励幼。工具在使用正確時(shí)很有幫助汰寓,但是它們很難掌握而且功能有限。還有苹粟,它們自己有缺陷有滑。
? ? 3)流程改進(jìn)
? ? 最新的關(guān)于控制軟件質(zhì)量問(wèn)題的嘗試是由流程改進(jìn)的提倡者開(kāi)始的。因?yàn)檐浖_(kāi)發(fā)是一個(gè)技術(shù)問(wèn)題而流程? 改進(jìn)卻是一個(gè)管理問(wèn)題嵌削,所以它不大可能對(duì)質(zhì)量產(chǎn)生多大的影響毛好。
? ? 因此,需要第四種提案苛秕,它應(yīng)該很平常肌访,這樣開(kāi)發(fā)人員可以將其無(wú)縫集成到它們正常的設(shè)計(jì)模式;它應(yīng)該很直觀艇劫,這樣開(kāi)發(fā)人員會(huì)評(píng)價(jià)它“簡(jiǎn)單吼驶,不難做嘛!”
? ? 5.軟件測(cè)試是藝術(shù)、技巧或?qū)W科蟹演?
? ? ?最適合軟件測(cè)試書(shū)籍的標(biāo)題應(yīng)該是軟件測(cè)試學(xué)(Discipline of Software Testing)风钻。“學(xué)科”這個(gè)詞能更好地定義我們作為測(cè)試人員的工作酒请,并為我們提供一個(gè)有用的訓(xùn)練和職業(yè)模式的模型骡技。掌握一門(mén)學(xué)科是通過(guò)訓(xùn)練來(lái)實(shí)現(xiàn)的。訓(xùn)練的意思是理解學(xué)科的每一個(gè)細(xì)節(jié)羞反。
? ? 每個(gè)人在訓(xùn)練時(shí)應(yīng)該注意:首先布朦,精通軟件測(cè)試的測(cè)試人員應(yīng)該理解軟件;第二苟弛,精通軟件測(cè)試的測(cè)試人員應(yīng)該理解軟件故障喝滞;第三,精通軟件測(cè)試的測(cè)試人員應(yīng)該理解軟件失效膏秫。
? ? 6.恢復(fù)對(duì)軟件行業(yè)的尊重
? ? 我們充滿缺陷的軟件創(chuàng)造了多少新的單詞:垃圾郵件右遭、網(wǎng)絡(luò)釣魚(yú)、域名欺騙等缤削。
? ? 1)事與愿違的過(guò)去
? ? 過(guò)去窘哈,軟件開(kāi)發(fā)實(shí)踐的重點(diǎn)一直被放在Spec、體系結(jié)構(gòu)和開(kāi)發(fā)上亭敢,它們都位于軟件開(kāi)發(fā)生命周期的早期部分滚婉,因?yàn)椤百|(zhì)量不是測(cè)試來(lái)的”。最后帅刀,我們發(fā)現(xiàn)這種流程失效了让腹,事實(shí)上,需求經(jīng)常變化扣溺,導(dǎo)致計(jì)劃趕不上變化骇窍。
? ? 2)尋找更好的方法
? ? 我們學(xué)習(xí)失敗以創(chuàng)建新的開(kāi)發(fā)流程,我提議停止將缺陷當(dāng)作一件壞事锥余。因?yàn)闆](méi)有比直接研究那些使我們的行業(yè)成為工程學(xué)科中笑柄的東西更好的改進(jìn)方法了腹纳。
? ? 3)分析安全漏洞和質(zhì)量問(wèn)題的流程
? ? 我覺(jué)得應(yīng)該做如下的事情:
? ? 第一步,收集我們發(fā)布給用戶的所有缺陷(特別是安全漏洞)
? ? 第二步驱犹,分析每一個(gè)缺陷嘲恍,這樣我們可以做到:停止寫(xiě)出類(lèi)似的缺陷;更擅長(zhǎng)尋找類(lèi)似的缺陷雄驹;明白類(lèi)似的缺陷發(fā)生時(shí)佃牛,如何識(shí)別它們。
? ? 第三步医舆,在團(tuán)隊(duì)中培養(yǎng)這樣一種文化吁脱,每個(gè)開(kāi)發(fā)人員桑涎、測(cè)試人員或技術(shù)人員都理解我們?cè)鴮?xiě)過(guò)的每一個(gè)缺陷。
? ? 第四步兼贡,將學(xué)到的內(nèi)容整理成文檔攻冷,它也是創(chuàng)建新的方法集的基礎(chǔ),這些方法可以預(yù)防我們?cè)俜改切┳钤愀獾腻e(cuò)誤遍希。
? ? 可通過(guò)質(zhì)問(wèn)自己寫(xiě)過(guò)的缺陷來(lái)完成上述工作:
? ? a)一開(kāi)始是什么錯(cuò)誤導(dǎo)致了這個(gè)缺陷等曼?
? ? 這個(gè)問(wèn)題的答案將教會(huì)開(kāi)發(fā)人員更好地理解他們?cè)趯?xiě)代碼時(shí)犯下的錯(cuò)誤。理解錯(cuò)誤后凿蒜,開(kāi)發(fā)小組內(nèi)部形成一套系統(tǒng)知識(shí)禁谦,這樣進(jìn)入測(cè)試階段的軟件質(zhì)量更高。
? ? b)出現(xiàn)什么樣的失效癥狀時(shí)废封,能警示我們現(xiàn)在存在這個(gè)缺陷州泊?
? ? 一般缺陷出現(xiàn)可能由于某種原因沒(méi)能被發(fā)現(xiàn),或者被發(fā)現(xiàn)了卻有意不修復(fù)漂洋。前者遥皂,測(cè)試人員可建立起一套關(guān)于如何更好地將缺陷分離出來(lái)的系統(tǒng)知識(shí)和工具。后者刽漂,整個(gè)軟對(duì)需要對(duì)真正重要的缺陷有統(tǒng)一的認(rèn)識(shí)演训。結(jié)果是發(fā)布給用戶的軟件質(zhì)量更高。
? ? c)哪些測(cè)試技術(shù)能找到這個(gè)缺陷贝咙?
? ? 可在測(cè)試系統(tǒng)知識(shí)中加入真正能有效找到重要缺陷的測(cè)試样悟。
? ? 因?yàn)榧热晃覀儾豢赡芾斫馊绾握_開(kāi)發(fā)軟件,那么就讓我們理解自己是如何做錯(cuò)的庭猩,然后停止那樣做窟她。作為結(jié)果的系統(tǒng)知識(shí)無(wú)法告訴我們應(yīng)該如何開(kāi)發(fā)軟件益楼,但是它可以告訴我們什么是不該做的他嚷。
? ? 至此氨距,附錄2下半篇學(xué)完了草雕,整體感受是,讓我對(duì)缺陷有了更深刻的認(rèn)識(shí)帅涂,原來(lái)缺陷的作用不僅僅是缺陷!