qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          對(duì)軟件測(cè)試的幾點(diǎn)看法

           軟件測(cè)試作為軟件質(zhì)量保證的重要手段已引起軟件用戶(hù)和開(kāi)發(fā)人員越來(lái)越多的關(guān)注。然而在對(duì)測(cè)試認(rèn)識(shí)逐漸深化的過(guò)程中,首先應(yīng)該弄清幾個(gè)問(wèn)題。

            非進(jìn)行測(cè)試不可嗎?

            世界軟件市場(chǎng)將有一個(gè)突飛猛進(jìn)的發(fā)展,應(yīng)用程序的類(lèi)型越來(lái)越復(fù)雜,從傳統(tǒng)客戶(hù)/服務(wù)器應(yīng)用,到基于瀏覽的Internet/Intranet應(yīng)用,再到混合型應(yīng)用等等。在這些大量的、日漸復(fù)雜的應(yīng)用程序中,由于GUI的對(duì)象豐富,使得狀態(tài)組合數(shù)量巨增;軟、硬件來(lái)自不同廠商,程序運(yùn)行環(huán)境復(fù)雜;版本不斷升級(jí)以及同時(shí)使用某個(gè)廠家的不同版本,致使程序運(yùn)行環(huán)境經(jīng)常改變;并發(fā)用戶(hù)的數(shù)量逐漸增多,對(duì)性能要求不斷提高等等??梢?jiàn),隨著軟件業(yè)的發(fā)展,測(cè)試成為必然。

            據(jù)統(tǒng)計(jì),在軟件開(kāi)發(fā)總成本中,用在測(cè)試上的開(kāi)銷(xiāo)要占30%到50%。如果把維護(hù)階段考慮在內(nèi),討論整個(gè)軟件生存期時(shí),測(cè)試的成本比例也許會(huì)有所降低,但實(shí)際上維護(hù)工作相當(dāng)于二次開(kāi)發(fā),乃至多次開(kāi)發(fā),其中必定還包含有許多測(cè)試工作。因此,有人估計(jì)軟件工作有50%的時(shí)間和50%以上的成本花在測(cè)試工作上。因此,測(cè)試是必需的,問(wèn)題是我們應(yīng)該思考“采用什么方法、如何安排測(cè)試?”

            測(cè)試和調(diào)試可以相互替代嗎?

            為了判斷應(yīng)用系統(tǒng)是否合格,而用預(yù)先確定的一系列數(shù)據(jù)在系統(tǒng)中運(yùn)行,并與預(yù)期的結(jié)果進(jìn)行比較,這一過(guò)程稱(chēng)為測(cè)試。它是軟件質(zhì)量保證的重要手段。然而,有些人往往把測(cè)試和調(diào)試混為一談,這是不正確的。

            簡(jiǎn)單地說(shuō),測(cè)試是一種檢驗(yàn),經(jīng)過(guò)測(cè)試人們會(huì)看到一些現(xiàn)象。這些現(xiàn)象也許是可疑的征兆,但往往不能直接從測(cè)試的結(jié)果中找到錯(cuò)誤的根源。這就需要充分利用測(cè)試結(jié)果和測(cè)試提供的信息進(jìn)行全面分析,以便找到錯(cuò)誤的根源和出現(xiàn)錯(cuò)誤的原因。緊接著便是糾正已發(fā)現(xiàn)的錯(cuò)誤。測(cè)試以后進(jìn)行的這些工作稱(chēng)為調(diào)試或排錯(cuò)。

            我們不能把兩者混為一談。但它們畢竟有著密切的關(guān)系,常常是在測(cè)試以后緊接著要著手排錯(cuò)。實(shí)際上,這兩種工作經(jīng)常交叉進(jìn)行,是不可相互替代的。

            科學(xué)的測(cè)試應(yīng)從何時(shí)開(kāi)始?

            有一種傳統(tǒng)的觀念認(rèn)為:“應(yīng)用系統(tǒng)開(kāi)發(fā)完畢,再對(duì)它進(jìn)行測(cè)試。”用這種思想來(lái)指導(dǎo)測(cè)試工作是相當(dāng)危險(xiǎn)的。

            對(duì)于軟件質(zhì)量的判斷決不只限于程序本身,它和編碼以前所完成的需求分析及軟件設(shè)計(jì)工作密切相關(guān)。很顯然,表現(xiàn)在程序中的錯(cuò)誤,并不一定是編碼所引起的,很可能是詳細(xì)設(shè)計(jì)、概要設(shè)計(jì)階段,甚至是需求分析階段的問(wèn)題引起的。錯(cuò)誤在初期也許只是范圍很小的隱藏問(wèn)題,但由于各開(kāi)發(fā)階段的連續(xù)性,使其逐步擴(kuò)展。如果早期開(kāi)發(fā)中出現(xiàn)的錯(cuò)誤不能及時(shí)發(fā)現(xiàn)和解決,將帶到設(shè)計(jì)、編碼、測(cè)試等各階段,影響會(huì)逐步擴(kuò)大。這就要付出不必要的人力、物力來(lái)修正錯(cuò)誤??梢?jiàn),解決問(wèn)題、糾正錯(cuò)誤應(yīng)追溯到前期的工作,越早著手越好。科學(xué)的測(cè)試是貫穿整個(gè)產(chǎn)品生命周期中的測(cè)試。

            考慮到以上這些情況,我們將測(cè)試分成如下階段:模塊測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。對(duì)程序的最小單位——模塊進(jìn)行測(cè)試,是為了檢驗(yàn)每個(gè)模塊能否單獨(dú)工作,從而發(fā)現(xiàn)模塊的編碼問(wèn)題和算法問(wèn)題;集成測(cè)試是將多個(gè)模塊連接起來(lái),以檢驗(yàn)概要設(shè)計(jì)中對(duì)模塊之間接口設(shè)計(jì)的問(wèn)題;確認(rèn)測(cè)試則應(yīng)以需求規(guī)格說(shuō)明書(shū)中的規(guī)定作為檢驗(yàn)尺度,發(fā)現(xiàn)需求分析的問(wèn)題;最后的系統(tǒng)測(cè)試是將開(kāi)發(fā)的軟件與硬件和其他相關(guān)因素(如人員的操作、數(shù)據(jù)的獲取等)綜合起來(lái)進(jìn)行全面檢驗(yàn),這樣的做法涉及到軟件需求以及軟件與系統(tǒng)中其他方面的關(guān)系。

            我們應(yīng)著眼于整個(gè)軟件生存期,特別是著眼于編碼以前各開(kāi)發(fā)階段的測(cè)試工作,以保證軟件的質(zhì)量,這就要突破原來(lái)對(duì)測(cè)試的理解。據(jù)有關(guān)機(jī)構(gòu)研究表明:在開(kāi)發(fā)周期中,每推后一步實(shí)施錯(cuò)誤檢查,成本就會(huì)增加10%。因此,查找、修改錯(cuò)誤的最佳開(kāi)始時(shí)間是在項(xiàng)目設(shè)計(jì)階段,之后還要伴隨著開(kāi)發(fā)過(guò)程的每一個(gè)環(huán)節(jié),保證測(cè)試與開(kāi)發(fā)的同步進(jìn)行。

            對(duì)軟件能夠做到徹底測(cè)試嗎?

            既然測(cè)試的目的就是查找軟件中的錯(cuò)誤,那么為了得到高質(zhì)量的軟件,能不能借助測(cè)試工具將所有隱藏的錯(cuò)誤全部找出來(lái)呢?

            我們知道,只有對(duì)應(yīng)用的每一個(gè)運(yùn)行環(huán)境、語(yǔ)句、條件分支、路徑等進(jìn)行窮舉測(cè)試,才能確保測(cè)試的徹底性。但往往這種做法工作量過(guò)大,所用時(shí)間過(guò)長(zhǎng),實(shí)際是不現(xiàn)實(shí)的,因而也就失去了實(shí)用價(jià)值。軟件工程的總目標(biāo)是充分利用有限的人力和物力資源,高效率、高質(zhì)量地完成測(cè)試開(kāi)發(fā)項(xiàng)目。在測(cè)試階段既然窮舉測(cè)試是不現(xiàn)實(shí)的,為了節(jié)省時(shí)間和資源,提高測(cè)試效率,就必須精心設(shè)計(jì)測(cè)試用例,這樣采用這些測(cè)試數(shù)據(jù)能夠取得最佳的測(cè)試效果。掌握測(cè)試量的度是至關(guān)重要的。一位有經(jīng)驗(yàn)的軟件開(kāi)發(fā)管理人員在談到軟件測(cè)試時(shí)曾這樣說(shuō)過(guò):“不充分的測(cè)試是愚蠢的,而過(guò)度的測(cè)試是一種罪孽。”測(cè)試不足意味著讓用戶(hù)承擔(dān)隱藏錯(cuò)誤帶來(lái)的危險(xiǎn);過(guò)度測(cè)試則會(huì)浪費(fèi)許多寶貴的資源。到測(cè)試后期,即使找到了錯(cuò)誤,然而已經(jīng)付出了過(guò)高的代價(jià)。總之,進(jìn)行測(cè)試是為了使軟件中蘊(yùn)涵的缺陷低于某一特定閾值,使產(chǎn)出/投入比達(dá)到最大。

          posted on 2013-01-14 11:53 順其自然EVO 閱讀(138) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2013年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 凭祥市| 耒阳市| 正宁县| 藁城市| 忻城县| 通海县| 河东区| 定安县| 侯马市| 南靖县| 老河口市| 迁西县| 黄浦区| 丹巴县| 马公市| 云林县| 武山县| 芮城县| 孙吴县| 朝阳市| 昌图县| 金阳县| 连州市| 郴州市| 稷山县| 峨眉山市| 桂平市| 松潘县| 平谷区| 英德市| 塔城市| 会同县| 叶城县| 伊川县| 金川县| 城固县| 新河县| 无锡市| 安义县| 上犹县| 泗水县|