以文本方式查看主題

-  曙海教育集團(tuán)論壇  (http://www.scb-ycwb.com/bbs/index.asp)
--  軟件測試  (http://www.scb-ycwb.com/bbs/list.asp?boardid=70)
----  軟件測試常識  (http://www.scb-ycwb.com/bbs/dispbbs.asp?boardid=70&id=2666)

--  作者:wangxinxin
--  發(fā)布時間:2010-12-15 14:38:16
--  軟件測試常識
軟件開發(fā)和使用的歷史已經(jīng)留給了我們很多由于軟件缺陷而導(dǎo)致的巨大財(cái)力、物力損失的經(jīng)驗(yàn)教訓(xùn)。這些經(jīng)驗(yàn)教訓(xùn)迫使我們這些測試工程師們必須采取強(qiáng)有力的檢測措施來檢測未發(fā)現(xiàn)的隱藏的軟件缺陷。

生產(chǎn)軟件的最終目的是為了滿足客戶需求,我們以客戶需求作為評判軟件質(zhì)量的標(biāo)準(zhǔn),認(rèn)為軟件缺陷( Software Bug )的具體含義包括下面幾個因素:

?  軟件未達(dá)到客戶需求的功能和性能;

?  軟件超出客戶需求的范圍;

?  軟件出現(xiàn)客戶需求不能容忍的錯誤;

?  軟件的使用未能符合客戶的習(xí)慣和工作環(huán)境。

考慮到設(shè)計(jì)等方面的因素,我們還可以認(rèn)為軟件缺陷還可以包括軟件設(shè)計(jì)不符合規(guī)范,未能在特定的條件(資金、范圍等)達(dá)到最佳等。可惜的是,我們中的很多人更傾向于把軟件缺陷看成運(yùn)行時出現(xiàn)問題上來,認(rèn)為軟件測試僅限于程序提交之后。

在目前的國內(nèi)環(huán)境下,我們幾乎看不到完整準(zhǔn)確的客戶需求說明書,加以客戶的需求時時在變,追求完美的測試變得不太可能。因此作為一個優(yōu)異的測試人員,追求軟件質(zhì)量的完美固然是我們的宗旨,但是明確軟件測試現(xiàn)實(shí)與理想的差距,在軟件測試中學(xué)會取舍和讓步,對軟件測試是有百益而無一弊的。

下面是一些軟件測試的常識,對這些常識的理解和運(yùn)用將有助于我們在進(jìn)行軟件測試時能夠更好的把握軟件測試的尺度。

?  測試是不完全的(測試不完全)

很顯然,由于軟件需求的不完整性、軟件邏輯路徑的組合性、輸入數(shù)據(jù)的大量性及結(jié)果多樣性等因素,哪怕是一個極其簡單的程序,要想窮盡所有邏輯路徑,所有輸入數(shù)據(jù)和驗(yàn)證所有結(jié)果是非常困難的一件事情。我們舉一個簡單的例子,比如說求兩個整數(shù)的最大公約數(shù)。其輸入信息為兩個正整數(shù)。但是如果我們將整個正整數(shù)域的數(shù)字進(jìn)行一番測試的話,從其數(shù)目的無限性我們便可證明是這樣的測試在實(shí)際生活中是行不通的,即便某一天我們能夠窮盡該程序,只怕我們乃至我們的子孫都早已作古了。為此作為軟件測試,我們一般采用等價(jià)類和邊界值分析等措施來進(jìn)行實(shí)際的軟件測試,尋找最小用例集合成為我們精簡測試復(fù)雜性的一條必經(jīng)之道。

?  測試具有免疫性(軟件缺陷免疫性)

軟件缺陷與病毒一樣具有可怕的 “ 免疫性 ” ,測試人員對其采用的測試越多,其免疫能力就越強(qiáng),尋找更多軟件缺陷就更加困難。由數(shù)學(xué)上的概率論我們可以推出這一結(jié)論。假設(shè)一個 50000 行的程序中有 500 個軟件缺陷并且這些軟件錯誤分布時均勻的,則每 100 行可以找到一個軟件缺陷。我們假設(shè)測試人員用某種方法花在查找軟件缺陷的精力為 X 小時 /100 行。照此推算,軟件存在 500 個缺陷時,我們查找一個軟件缺陷需要 X 小時,當(dāng)軟件只存在 5 個錯誤時,我們每查找一個軟件缺陷需要 100X 小時。實(shí)踐證明,實(shí)際的測試過程比上面的假設(shè)更為苛刻,為此我們必須更換不同的測試方式和測試數(shù)據(jù)。該例子還說明了在軟件測試中采用單一的方法不能高效和完全的針對所有軟件缺陷,因此軟件測試應(yīng)該盡可能的多采用多種途徑進(jìn)行測試。

?  測試是 “ 泛型概念 ” (全程測試)

我一直反對軟件測試僅存在于程序完成之后。如果單純的只將程序設(shè)計(jì)階段后的階段稱之為軟件測試的話,需求階段和設(shè)計(jì)階段的缺陷產(chǎn)生的放大效應(yīng)會加大。這非常不利于保證軟件質(zhì)量。需求缺陷、設(shè)計(jì)缺陷也是軟件缺陷,記住 “ 軟件缺陷具有生育能力 ” 。軟件測試應(yīng)該跨越整個軟件開發(fā)流程。需求驗(yàn)證(自檢)和設(shè)計(jì)驗(yàn)證(自檢)也可以算作軟件測試(建議稱為:需求測試和設(shè)計(jì)測試)的一種。軟件測試應(yīng)該是一個泛型概念,涵蓋整個軟件生命周期,這樣才能確保周期的每個階段禁得起考驗(yàn)。同時測試本身也需要有第三者進(jìn)行評估(信息系統(tǒng)審計(jì)和軟件工程監(jiān)理),即測試本身也應(yīng)當(dāng)被測試,從而確保測試自身的可靠性和高效性。否則自身不正,難以服人。

另外還需指出的是軟件測試是提高軟件產(chǎn)品質(zhì)量的必要條件而非充分條件,軟件測試是提高產(chǎn)品質(zhì)量最直接、最快捷的手段,但決不是一個根本手段。

?  80-20 原則

80% 的軟件缺陷常常生存在軟件 20% 的空間里。這個原則告訴我們,如果你想使軟件測試有效地話,記住常常光臨其高危多發(fā) “ 地段 ” 。在那里發(fā)現(xiàn)軟件缺陷的可能性會大的多。這一原則對于軟件測試人員提高測試效率及缺陷發(fā)現(xiàn)率有著重大的意義。聰明的測試人員會根據(jù)這個原則很快找出較多的缺陷而愚蠢的測試人員卻仍在漫無目的地到處搜尋。

80-20 原則的另外一種情況是,我們在系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)階段的復(fù)審,測試工作中能夠發(fā)現(xiàn)和避免 80% 的軟件缺陷,此后的系統(tǒng)測試能夠幫助我們找出剩余缺陷中的 80% ,最后的 5% 的軟件缺陷可能只有在系統(tǒng)交付使用后用戶經(jīng)過大范圍、長時間使用后才會曝露出來。因?yàn)檐浖䴗y試只能夠保證盡可能多地發(fā)現(xiàn)軟件缺陷,卻無法保證能夠發(fā)現(xiàn)所有的軟件缺陷。

80-20 原則還能反映到軟件測試的自動化方面上來,實(shí)踐證明 80% 的軟件缺陷可以借助人工測試而發(fā)現(xiàn), 20% 的軟件缺陷可以借助自動化測試能夠得以發(fā)現(xiàn)。由于這二者間具有交叉的部分,因此尚有 5% 左右的軟件缺陷需要通過其他方式進(jìn)行發(fā)現(xiàn)和修正。

?  為效益而測試

為什么我們要實(shí)施軟件測試,是為了提高項(xiàng)目的質(zhì)量效益最終以提高項(xiàng)目的總體效益。為此我們不難得出我們在實(shí)施軟件測試應(yīng)該掌握的度。軟件測試應(yīng)該在軟件測試成本和軟件質(zhì)量效益兩者間找到一個平衡點(diǎn)。這個平衡點(diǎn)就是我們在實(shí)施軟件測試時應(yīng)該遵守的度。單方面的追求都必然損害軟件測試存在的價(jià)值和意義。一般說來,在軟件測試中我們應(yīng)該盡量地保持軟件測試簡單性,切勿將軟件測試過度復(fù)雜化,拿物理學(xué)家愛因斯坦的話說就是: Keep it simple but not too simple 。

?  缺陷的必然性

軟件測試中,由于錯誤的關(guān)聯(lián)性,并不是所有的軟件缺陷都能夠得以修復(fù)。某些軟件缺陷雖然能夠得以修復(fù)但在修復(fù)的過程中我們會難免引入新的軟件缺陷。很多軟件缺陷之間是相互矛盾的,一個矛盾的消失必然會引發(fā)另外一個矛盾的產(chǎn)生。比如我們在解決通用性的缺陷后往往會帶來執(zhí)行效率上的缺陷。更何況在缺陷的修復(fù)過程中,我們常常還會受時間、成本等方面的限制因此無法有效、完整地修復(fù)所有的軟件缺陷。因此評估軟件缺陷的重要度、影響范圍,選擇一個折中的方案或是從非軟件的因素(比如提升硬件性能)考慮軟件缺陷成為我們在面對軟件缺陷時一個必須直面的事實(shí)。

?  軟件測試必須有預(yù)期結(jié)果

沒有預(yù)期結(jié)果的測試是不可理喻的。軟件缺陷是經(jīng)過對比而得出來的。這正如沒有標(biāo)準(zhǔn)無法進(jìn)行度量一樣。如果我們事先不知道或是無法肯定預(yù)期的結(jié)果,我們必然無法了解測試正確性。這很容易然人感覺如盲人摸象一般,不少測試人員常常憑借自身的感覺去評判軟件缺陷的發(fā)生,其結(jié)果往往是把似是而非的東西作為正確的結(jié)果來判斷,因此常常出現(xiàn)誤測的現(xiàn)象。

?  軟件測試的意義 - 事后分析

軟件測試的目的單單是發(fā)現(xiàn)缺陷這么簡單嗎?如果是 “ 是 ” 的話,我敢保證,類似的軟件缺陷在下一次新項(xiàng)目的軟件測試中還會發(fā)生。古語說得好, “ 不知道歷史的人必然會重蹈覆轍 ” 。沒有對軟件測試結(jié)果進(jìn)行認(rèn)真的分析,我們就無法了解缺陷發(fā)生的原因和應(yīng)對措施,結(jié)果是我們不得不耗費(fèi)的大量的人力和物力來再次查找軟件缺陷。很可惜,目前大多測試團(tuán)隊(duì)都沒有意識到這一點(diǎn),測試報(bào)告中缺乏測試結(jié)果分析這一環(huán)節(jié)。

結(jié)論:

軟件測試是一個需要 “ 自覺 ” 的過程,作為一個測試人員,遇事沉著,把持尺度,從根本上應(yīng)對軟件測試有著正確的認(rèn)識,希望本文對讀者對軟件測試的認(rèn)識有所幫助

主站蜘蛛池模板: 国产萌白酱在线观看| 亚洲人成网亚洲欧洲无码| 国产日韩欧美亚欧在线| 日本h在线精品免费观看 | 亚洲av成人精品网站在线播放 | 日本一区二区三区在线视频观看免费| 精品无码一区二区三区在线 | 亚洲激情电影在线| 国产在线观看免费完整版中文版| 性放荡日记高h| 欧美三级不卡视频| 精品久久久久久亚洲精品| 2019天堂精品视频在线观看| 久久久精品免费| 亚洲精品在线视频| 国产一区二区三区高清视频| 天堂网在线资源www最新版| 最新国产在线播放| 狠狠久久永久免费观看| 香瓜七兄弟第二季| 97精品伊人久久久大香线蕉| 中文字幕丰满孑伦| 亚洲AV福利天堂一区二区三| 免费a级午夜绝情美女视频| 国产偷窥熟女精品视频| 国产精品成熟老女人视频| 好男人社区在线www| 日本乱人伦电影在线观看| 欧美日韩在线视频专区免费| 精品国产一二三区在线影院 | 久久精品国产99久久久| 亚洲娇小性xxxx| 亚洲色图第四色| 内射中出日韩无国产剧情| 国产亚洲精品bt天堂精选| 国产欧美一区二区三区久久| 国语对白清晰好大好白| 女人高潮特级毛片| 成人免费视频试看120秒| 日日日天天射天天干视频| 日韩精品一区二区三区中文 |