于吉吉的技術(shù)博客

          建造高性能門戶網(wǎng)

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            65 隨筆 :: 6 文章 :: 149 評論 :: 0 Trackbacks
          上個(gè)月參加的網(wǎng)易游戲部QA組的黑盒測試培訓(xùn),覺得挺有意思的,不過最讓我感興趣的是,能和真正專業(yè)的測試人員做了一點(diǎn)討論,發(fā)現(xiàn)站在開發(fā)人員的角度看待測試和站在測試人員看待測試時(shí)完全不同的一種東西.

          程序員和測試人員的心理差別
          程序員和測試人員的心理差別可以簡單的歸納為以下幾種

          成功 / 不成功
          什么才是一次成功的測試,大多數(shù)的開發(fā)人員對自己的程序測試完沒發(fā)現(xiàn)錯(cuò)誤,就會說"這是一個(gè)成功的測試",如果發(fā)現(xiàn)某些新的錯(cuò)誤則稱"這是不成功的測試";而測試人員剛好相反,當(dāng)然這也是因?yàn)殡p方的職責(zé)不同而引起的

          維護(hù) / 破壞,施虐
          開發(fā)人員對測試往往是一種維護(hù)性的測試,目標(biāo)在于證明自己開發(fā)的程序沒有錯(cuò)誤,可能跟我們開發(fā)人員經(jīng)常做建設(shè)性工作,更傾向創(chuàng)造事物,而不是將事物破壞有關(guān);而測試人員在測試更多是一種破壞的過程,甚至是一種施虐,擺出一種把雞蛋打碎攪黃來挑骨頭的姿態(tài)

          做了應(yīng)該做的 / 做了不該做的
          開發(fā)人員在做測試更多傾向于對實(shí)現(xiàn)的功能進(jìn)行檢查,當(dāng)測試證明了該完成的功能全部通過時(shí)就認(rèn)為測試完畢了,但程序即使能夠完成預(yù)定的功能,也可能隱藏了錯(cuò)誤,如做了應(yīng)該做的東西,同時(shí)也做了不應(yīng)該做的東西

          建立一種信心 / 必須做
          測試這個(gè)東西對于開發(fā)人員來說,更多的是建立一種信心的保證,例如我們盡可能多的單元測試,很多時(shí)候就是讓我們確信程序的正確性,并讓我們建立信心,而對于測試人員來說,測試是他們的職責(zé)所在,只有盡可能多的把系統(tǒng)挖出錯(cuò)誤來才證明他們的存在價(jià)值

          測試的態(tài)度
          測試是一項(xiàng)技術(shù)性的工作,但同時(shí)也涉及到了心里學(xué)的一些重要的因素.
          作為程序員的我們也經(jīng)常會對我們的程序進(jìn)行相關(guān)的測試,但你想想我們?yōu)槭裁匆獙ξ覀兊南到y(tǒng)做測試,原因大概有以下的幾種

          1.測試就是為了證明我們的系統(tǒng)是不存在錯(cuò)誤的.
          2.測試的目的是想證明系統(tǒng)能夠正確完成預(yù)定的功能.
          3.測試是保證一個(gè)系統(tǒng)強(qiáng)壯性的信心過程.
          4.測試是上級規(guī)定要做的.

          站在測試人員的角度來看,除了最后一點(diǎn),其他的都是本末倒置(難怪他們會抱怨我們做的測試很差)

          "測試就是為了證明我們的系統(tǒng)是不存在錯(cuò)誤的",試想一下,如果我們的目標(biāo)是證明程序中不存在錯(cuò)誤,那么我們的潛意識就會傾向于這個(gè)目標(biāo),我們會傾向選擇可能較少導(dǎo)致出現(xiàn)程序失效的測試數(shù)據(jù),如果我們的測試目標(biāo)證明程序中存在錯(cuò)誤,我們設(shè)計(jì)的測試數(shù)據(jù)就可能更多的發(fā)現(xiàn)問題.于前一種方法相比,后一種方法會更多地增加程序的價(jià)值.
          每當(dāng)測試一個(gè)程序,都是想為程序增加多一些的價(jià)值,通過測試發(fā)現(xiàn)系統(tǒng)的更多錯(cuò)誤來增加程序的可靠性質(zhì)量,提高了程序的可靠性,是指出并最終修改程序的錯(cuò)誤.與"測試就是為了證明我們的系統(tǒng)是不存在錯(cuò)誤的"比較,更適合的定義是
          測試時(shí)為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行的過程

          "測試的目的是想證明系統(tǒng)能夠正確完成預(yù)定的功能",這個(gè)定義又會帶來另一個(gè)問題,程序即使能夠完成預(yù)定的功能,也依然可能隱藏錯(cuò)誤,也就是說,當(dāng)程序沒有實(shí)現(xiàn)預(yù)期的功能,錯(cuò)誤時(shí)能夠清晰顯示出來,但程序做了不應(yīng)該做的呢,這同樣也是一個(gè)錯(cuò)誤,如我們程序?qū)崿F(xiàn)了一個(gè)除法計(jì)算器,即使我們通過各種數(shù)據(jù)正確的完成了計(jì)算任務(wù),但在完成了不應(yīng)執(zhí)行的任務(wù)(除數(shù)為0),程序依然是錯(cuò)誤的,如果我們將軟件測試作為發(fā)現(xiàn)錯(cuò)誤的過程,而不是只是證明"系統(tǒng)能夠正確完成預(yù)定的功能",我們發(fā)現(xiàn)這類的錯(cuò)誤可能性會打很多,所以更好的定義是
          測試就是建立程序即使能完成預(yù)定功能,也發(fā)現(xiàn)存在完成非預(yù)定功能

          ps:當(dāng)然了,測試更多是跟軟件成本方面相關(guān),這里就不細(xì)想了,附上講座的ppt<實(shí)用的黑盒測試方法>

          ----------------------------------------


          posted on 2010-12-03 16:00 陳于喆 閱讀(1731) 評論(3)  編輯  收藏 所屬分類: web開發(fā)java

          評論

          # re: 開發(fā)人員與軟件測試 2010-12-03 23:24 會飛的豬
          那個(gè)博主,不好意思哈,我從msdn上下來的你上傳的這個(gè)ppt都不能打開,是否可以發(fā)一份給我學(xué)習(xí)一下呢?十分感謝。  回復(fù)  更多評論
            

          # re: 開發(fā)人員與軟件測試 2010-12-04 00:30 陳于喆
          @會飛的豬
          學(xué)習(xí)千萬不敢當(dāng),大家討論一下,有什么寫的不好的也請指出
          http://www.aygfsteel.com/Files/dongbule/%E7%94%A8%E9%BB%91%E7%9B%92%E6%B5%8B%E8%AF%95%E6%96%B9%E6%B3%95.rar  回復(fù)  更多評論
            

          # re: 開發(fā)人員與軟件測試 2010-12-04 20:26 會飛的豬
          @陳于喆
          謝謝啦。 :-)  回復(fù)  更多評論
            

          主站蜘蛛池模板: 芮城县| 都兰县| 包头市| 太保市| 阿拉善盟| 宁陵县| 增城市| 郓城县| 蕉岭县| 莱阳市| 扬中市| 久治县| 安顺市| 肥西县| 霸州市| 玛纳斯县| 达州市| 克什克腾旗| 新泰市| 台南县| 建昌县| 老河口市| 灵丘县| 嘉定区| 苍梧县| 龙陵县| 江城| 保亭| 大连市| 漳平市| 定陶县| 铜鼓县| 樟树市| 太湖县| 黑龙江省| 滁州市| 布尔津县| 师宗县| 福建省| 鞍山市| 衡阳县|