最近1直在學(xué)習(xí)測(cè)試方面的知識(shí),也閱讀了許多博客,通過這些博客也了解到了許多未曾接觸過的關(guān)于測(cè)試方面的理
論和原則和1些常識(shí)性的東西,比如測(cè)試的不完全性,測(cè)試中的28定律,缺點(diǎn)的必定性等。這篇文章做下整理,
分享給大家。了解這些將對(duì)我們?cè)谶M(jìn)行軟件測(cè)試時(shí)掌控軟件測(cè)試尺度很有幫助。
☆測(cè)試的不完全性
很明顯,由于軟件需求的不完全性、軟件邏輯路徑的組合性、輸入數(shù)據(jù)的大量性及結(jié)果多樣性等因素,哪怕是1個(gè)極
其簡(jiǎn)單的程序,要想窮盡所有邏輯路徑,所有輸入數(shù)據(jù)和驗(yàn)證所有結(jié)果是非常困難的1件事情。我們舉1個(gè)簡(jiǎn)單的例
子,比如說求兩個(gè)整數(shù)的最大公約數(shù)。其輸入信息為兩個(gè)正整數(shù)。但是如果我們將全部正整數(shù)域的數(shù)字進(jìn)行1番測(cè)試
的話,從其數(shù)目的無窮性我們即可證明是這樣的測(cè)試在實(shí)際生活中是行不通的。為此作為軟件測(cè)試,我們1般采取等
價(jià)類和邊界值分析等措施來進(jìn)行實(shí)際的軟件測(cè)試,尋覓最小用例集合成為我們精簡(jiǎn)測(cè)試復(fù)雜性的1條必經(jīng)之道。
☆測(cè)試具有免疫性(軟件缺點(diǎn)免疫性)
軟件缺點(diǎn)與病毒1樣具有可怕的“ 免疫性 ” ,測(cè)試人員對(duì)其采取的測(cè)試越多,其免疫能力就越強(qiáng),尋覓更多軟件缺
陷就更加困難。由數(shù)學(xué)上的幾率論我們可以推出這1結(jié)論。假定1個(gè) 50000行的程序中有 500 個(gè)軟件缺點(diǎn)并且這些
軟件毛病散布時(shí)均勻的,則每 100 行可以找到1個(gè)軟件缺點(diǎn)。我們假定測(cè)試人員用某種方法花在查找軟件缺點(diǎn)的精力
為 X小時(shí) /100 行。照此推算,軟件存在 500 個(gè)缺點(diǎn)時(shí),我們查找1個(gè)軟件缺點(diǎn)需要 X 小時(shí),當(dāng)軟件只存在 5 個(gè)錯(cuò)
誤時(shí),我們每查找1個(gè)軟件缺點(diǎn)需要 100X小時(shí)。實(shí)踐證明,實(shí)際的測(cè)試進(jìn)程比上面的假定更加刻薄,為此我們必須
更換不同的測(cè)試方式和測(cè)試數(shù)據(jù)。該例子還說明了在軟件測(cè)試中采取單1的方法不能高效和完全的針對(duì)所有軟件缺
陷,因此軟件測(cè)試應(yīng)當(dāng)盡量的多采取多種途徑進(jìn)行測(cè)試。
☆測(cè)試是 “泛型概念 ” (要全程測(cè)試)
軟件測(cè)試僅存在于程序完成以后?現(xiàn)在這個(gè)概念恐怕難以立足了。由于如果單純的只將程序設(shè)計(jì)階段后的階段稱之為
軟件測(cè)試的話,需求階段和設(shè)計(jì)階段的缺點(diǎn)產(chǎn)生的放大效應(yīng)會(huì)加大。這非常不利于保證軟件質(zhì)量。需求缺點(diǎn)、設(shè)計(jì)缺
陷也是軟件缺點(diǎn),記住“ 軟件缺點(diǎn)具有生育能力 ”。軟件測(cè)試應(yīng)當(dāng)逾越全部軟件開發(fā)流程。需求驗(yàn)證(自檢)和設(shè)計(jì)驗(yàn)
證(自檢)也能夠算作軟件測(cè)試的1種。軟件測(cè)試應(yīng)當(dāng)是1個(gè)泛型概念,涵蓋全部軟件生命周期,這樣才能確保周期的
每一個(gè)階段禁得起考驗(yàn)。同時(shí)測(cè)試本身也需要有第3者進(jìn)行評(píng)估(信息系統(tǒng)審計(jì)和軟件工程監(jiān)理),即測(cè)試本身也應(yīng)當(dāng)被
測(cè)試,從而確保測(cè)試本身的可靠性和高效性。否則本身不正,難以服人。
另外還需指出的是軟件測(cè)試是提高軟件產(chǎn)品質(zhì)量的必要條件而非充分條件,軟件測(cè)試是提高產(chǎn)品質(zhì)量最直接、最快捷
的手段,但決不是1個(gè)根本手段。
☆28定律
28定律,這里感覺非常親切,原來28定律也能夠用在測(cè)試?yán)铮?0%的軟件缺點(diǎn)常常生存在軟件 20% 的空間里。
這個(gè)原則告知我們,如果你想使軟件測(cè)試有效地話,記住常常光臨其高危多發(fā) “ 地段 ”。在那里發(fā)現(xiàn)軟件缺點(diǎn)的可
能性會(huì)大的多。這1原則對(duì)軟件測(cè)試人員提高測(cè)試效力及缺點(diǎn)發(fā)現(xiàn)率有側(cè)重大的意義。聰明的測(cè)試人員會(huì)根據(jù)這個(gè)
原則很快找出較多的缺點(diǎn)而笨拙的測(cè)試人員卻仍在漫無目的地到處搜索。
28定律的另外1種情況是,我們?cè)谙到y(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)階段的復(fù)審,測(cè)試工作中能夠發(fā)現(xiàn)和避免 80%
的軟件缺點(diǎn),爾后的系統(tǒng)測(cè)試能夠幫助我們找出剩余缺點(diǎn)中的 80% ,最后的 5%的軟件缺點(diǎn)可能只有在系統(tǒng)交付使
用后用戶經(jīng)過大范圍、長(zhǎng)時(shí)間使用后才會(huì)曝露出來。由于軟件測(cè)試只能夠保證盡量多地發(fā)現(xiàn)軟件缺點(diǎn),卻沒法保證
能夠發(fā)現(xiàn)所有的軟件缺點(diǎn)。
28定律還能反應(yīng)到軟件測(cè)試的自動(dòng)化方面上來,實(shí)踐證明 80%的軟件缺點(diǎn)可以借助人工測(cè)試而發(fā)現(xiàn), 20% 的軟件
缺點(diǎn)可以借助自動(dòng)化測(cè)試能夠得以發(fā)現(xiàn)。由于這2者間具有交叉的部份,因此尚有5% 左右的軟件缺點(diǎn)需要通過其他
方式進(jìn)行發(fā)現(xiàn)和修正。
☆為效益而測(cè)試
為何我們要實(shí)行軟件測(cè)試,是為了提高項(xiàng)目的質(zhì)量效益終究以提高項(xiàng)目的整體效益。為此我們不難得出我們?cè)趯?shí)行
軟件測(cè)試應(yīng)當(dāng)掌握的度。軟件測(cè)試應(yīng)當(dāng)在軟件測(cè)試本錢和軟件質(zhì)量效益二者間找到1個(gè)平衡點(diǎn)。這個(gè)平衡點(diǎn)就是我們
在實(shí)行軟件測(cè)試時(shí)應(yīng)當(dāng)遵照的度。單方面的尋求都必定侵害軟件測(cè)試存在的價(jià)值和意義。1般說來,在軟件測(cè)試中我
們應(yīng)當(dāng)盡可能地保持軟件測(cè)試簡(jiǎn)單性,切勿將軟件測(cè)試過度復(fù)雜化,拿物理學(xué)家愛因斯坦的話說就是:Keep it simple
but not too simple 。
☆缺點(diǎn)的必定性
軟件測(cè)試中,由于毛病的關(guān)聯(lián)性,其實(shí)不是所有的軟件缺點(diǎn)都能夠得以修復(fù)。某些軟件缺點(diǎn)雖然能夠得以修復(fù)但在修復(fù)
的進(jìn)程中我們會(huì)難免引入新的軟件缺點(diǎn)。很多軟件缺點(diǎn)之間是相互矛盾的,1個(gè)矛盾的消失必定會(huì)引發(fā)另外1個(gè)矛盾
的產(chǎn)生。比如我們?cè)诮鉀Q通用性的缺點(diǎn)后常常會(huì)帶來履行效力上的缺點(diǎn)。更何況在缺點(diǎn)的修復(fù)進(jìn)程中,我們常常還會(huì)
受時(shí)間、本錢等方面的限制因此沒法有效、完全地修復(fù)所有的軟件缺點(diǎn)。因此評(píng)估軟件缺點(diǎn)的重要度、影響范圍,選
擇1個(gè)折衷的方案或是從非軟件的因素(比如提升硬件性能)斟酌軟件缺點(diǎn)成為我們?cè)诿鎸?duì)軟件缺點(diǎn)時(shí)1個(gè)必須直面的
事實(shí)。
這些常識(shí)性的理論原則我覺得非常有必要了解1下,由于這些都是先輩們經(jīng)過無數(shù)次嘗試總結(jié)出來的,站在偉人的肩
膀上能使我們少走1些彎路,關(guān)于測(cè)試的學(xué)習(xí)仍在繼續(xù)!
參考: <http://www.ltesting.net/ceshi/ceshijishu/rjcsgcsrm/2013/1023/206738.html>