国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

軟件測試組織與方法

2019-11-17 04:51:59
字體:
供稿:網(wǎng)友
軟件測試組織與方法  隨著計(jì)算機(jī)硬件成本的不斷下降,軟件在整個(gè)計(jì)算機(jī)系統(tǒng)的成本中占有越來越高的比例,如何提高軟件質(zhì)量是整個(gè)計(jì)算機(jī)軟件行業(yè)的重大課題。軟件測試作為軟件開發(fā)的一個(gè)重要環(huán)節(jié),日益受到人們的重視。為了盡可能多地找出程序中的錯(cuò)誤,生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,加強(qiáng)對測試工作的組織和治理就顯得尤為重要。

  一、 軟件生存周期

  一個(gè)軟件從開始計(jì)劃起,到廢棄不用止,稱為軟件生存周期。一般來說,軟件生存周包括計(jì)劃、開發(fā)、運(yùn)行三個(gè)時(shí)期,每一時(shí)期又可分為若干更小的階段。計(jì)劃時(shí)期的主要任務(wù)是分析用戶要求,分析新系統(tǒng)的主要目標(biāo)以及開發(fā)該系統(tǒng)的可行性。開發(fā)時(shí)期要完成設(shè)計(jì)和實(shí)現(xiàn)兩大任務(wù)具體。具體分為需求分析、概要設(shè)計(jì)、具體設(shè)計(jì)、編碼、測試。其中編碼和測試是軟件開發(fā)期的最后兩個(gè)階段。運(yùn)行時(shí)期是軟件生存周期的最后一個(gè)時(shí)期,軟件人員在這一時(shí)期的工作,主要是做好軟件維護(hù)。

  統(tǒng)計(jì)表明,開發(fā)較大規(guī)模的軟件,有40%以上的精力是耗費(fèi)在測試上的,即使富有經(jīng)驗(yàn)的程序員,也難免在編碼中發(fā)生錯(cuò)誤,何況,有寫錯(cuò)誤在設(shè)計(jì)甚至分析階段早已埋下禍根,無論是早期潛伏下來的錯(cuò)誤或編碼中新引入的錯(cuò)誤,若不及時(shí)排除,輕者降低軟件的可靠性,重者導(dǎo)致整個(gè)系統(tǒng)的失敗。為防患于未然,強(qiáng)調(diào)軟件測試的重要性是必要的。

  二、 測試的過程與方法

  1、 測試的目的

  在G.J.Myers的經(jīng)典著作《軟件測試技巧》中,給出了測試的定義: "程序測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程"。測試的目的是發(fā)現(xiàn)程序中的錯(cuò)誤,是為了證實(shí)程序有錯(cuò),而不是證實(shí)程序無錯(cuò)。在軟件開發(fā)過程中,分析、設(shè)計(jì)與編碼等工作都是建設(shè)性的,惟獨(dú)測試是帶有"破壞性",測試可視為分析、設(shè)計(jì)和編碼3個(gè)階段的"最終復(fù)審",在軟件質(zhì)量保證中具有重要地位。為了確保軟件的質(zhì)量,較理想的做法應(yīng)該是對軟件的開發(fā)過程,按軟件工程各階段形成的結(jié)果,分別進(jìn)行嚴(yán)格的審查。

  2、測試的過程

  當(dāng)設(shè)計(jì)工作完成以后,就應(yīng)該著手測試的預(yù)備工作了,一般來講,由一位對整個(gè)系統(tǒng)設(shè)計(jì)熟悉的設(shè)計(jì)人員編寫測試大綱,明確測試的內(nèi)容和測試通過的準(zhǔn)則,設(shè)計(jì)完整合理的測試用例,以便系統(tǒng)實(shí)現(xiàn)后進(jìn)行全面測試。

  在實(shí)現(xiàn)組將所開發(fā)的程序經(jīng)驗(yàn)證后,提交測試組,由測試負(fù)責(zé)人組織測試,測試一般可按下列方式組織:

  (1)首先,測試人員要仔細(xì)閱讀有關(guān)資料,包括規(guī)格說明、設(shè)計(jì)文檔、使用說明書及在設(shè)計(jì)過程中形成的測試大綱、測試內(nèi)容及測試的通過準(zhǔn)則,全面熟悉系統(tǒng),編寫測試計(jì)劃,設(shè)計(jì)測試用例,作好測試前的預(yù)備工作。

  (2)為了保證測試的質(zhì)量,將測試過程分成幾個(gè)階段,即:代碼審查、單元測試、集成測試和驗(yàn)收測試。

  (3)代碼會(huì)審:

  代碼會(huì)審是由一組人通過閱讀、討論和爭議對程序進(jìn)行靜態(tài)分析的過程。會(huì)審小組由組長,2~3名程序設(shè)計(jì)和測試人員及程序員組成。會(huì)審小組在充分閱讀待審程序文本、控制流程圖及有關(guān)要求、規(guī)范等文件基礎(chǔ)上,召開代碼會(huì)審會(huì),程序員逐句講解程序的邏輯,并展開熱烈的討論甚至爭議,以揭示錯(cuò)誤的要害所在。實(shí)踐表明,程序員在講解過程中能發(fā)現(xiàn)許多自己原來沒有發(fā)現(xiàn)的錯(cuò)誤,而討論和爭議則進(jìn)一步促使了問題的暴露。例如,對某個(gè)局部性小問題修改方法的討論,可能發(fā)現(xiàn)與之有牽連的甚至能涉及到模塊的功說明、模塊間接口和系統(tǒng)總結(jié)構(gòu)的大問題,導(dǎo)致對需求定義的重定義、重設(shè)計(jì)驗(yàn)證,大大改善了軟件的質(zhì)量。

  (4)單元測試:

  單元測試集中在檢查軟件設(shè)計(jì)的最小單位-模塊上,通過測試發(fā)現(xiàn)實(shí)現(xiàn)該模塊的實(shí)際功能與定義該模塊的功能說明不符合的情況,以及編碼的錯(cuò)誤。由于模塊規(guī)模小、功能單一、邏輯簡單,測試人員有可能通過模塊說明書和源程序,清楚地了解該模塊的I/O條件和模塊的邏輯結(jié)構(gòu),采用結(jié)構(gòu)測試(白盒法)的用例,盡可能達(dá)到徹底測試,然后輔之以功能測試(黑盒法)的用例,使之對任何合理和不合理的輸入都能鑒別和響應(yīng)。高可靠性的模塊是組成可靠系統(tǒng)的堅(jiān)實(shí)基礎(chǔ)。

  (5)集成測試:

  集成測試是將模塊按照設(shè)計(jì)要求組裝起來同時(shí)進(jìn)行測試,主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。如數(shù)據(jù)穿過接口時(shí)可能丟失;一個(gè)模塊與另一個(gè)模塊可能有由于疏忽的問題而造成有害影響;把子功能組合起來可能不產(chǎn)生預(yù)期的主功能;個(gè)別看起來是可以接受的誤差可能積累到不能接受的程度;全程數(shù)據(jù)結(jié)構(gòu)可能有錯(cuò)誤等。

  (6)驗(yàn)收測試:

  驗(yàn)收測試的目的是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng),接口錯(cuò)誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性,這就是驗(yàn)收測試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。

  經(jīng)過上述的測試過程對軟件進(jìn)行測試后,軟件基本滿足開發(fā)的要求,測試宣告結(jié)束,經(jīng)驗(yàn)收后,將軟件提交用戶。

  3.測試方法分析

  集成測試及其后的測試階段,一般采用黑盒方法。

  (1)用邊值分析法和(或)等價(jià)分類法提出基本的測試用例;

  (2)用猜測法補(bǔ)充新的測試用例;

  (3)假如在程序的功能說明中含有輸入條件的組合,宜在一開始就用因果圖法,然后再按以上(1)、(2)兩步進(jìn)行。

  單元測試的設(shè)計(jì)策略稍有不同。因?yàn)樵跒槟K設(shè)計(jì)程序用例時(shí),可以直接參考模塊的源程序。所以單元測試的策略,總是把白盒法和黑盒法結(jié)合運(yùn)用。具體做法有兩種:

  a、先仿照上述步驟用黑盒法提出一組基本的測試用例,然后用白盒法作驗(yàn)證。假如發(fā)現(xiàn)用黑盒法產(chǎn)生的測試用例未能滿足所需的覆蓋標(biāo)準(zhǔn),就用白盒法增補(bǔ)新的測試用例來滿足它們。覆蓋的標(biāo)準(zhǔn)應(yīng)該根據(jù)模塊的具體情況確定。對可靠性要求較高的模塊,通常要滿足條件組合覆蓋或路徑覆蓋標(biāo)準(zhǔn)。

  b、先用白盒法分析模塊的邏輯結(jié)構(gòu),提出一批測試用例,然后根據(jù)模塊的功能用黑盒法進(jìn)行補(bǔ)充。
更多的請看:http://www.QQread.com/windows/2003/index.Html三、測試人員組織

 人是測試工作中最有價(jià)值也是最重要的資源,沒有一個(gè)合格的、積極的測試小組,測試就不可能實(shí)現(xiàn)。為高質(zhì)高效地完成測試任務(wù),好的測試工程師應(yīng)具有如下能力:

  1、溝通能力

  一名理想的測試者必須能夠同測試涉及到的所有人進(jìn)行溝通,具有與技術(shù)(開發(fā)者)和非技術(shù)人員(客戶,治理人員)的交流能力。既要可以和用戶談得來,又能同開發(fā)人員說得上話,不幸的是這兩類人沒有共同語言。和用戶談話的重點(diǎn)必須放在系統(tǒng)可以正確地處理什么和不可以處理什么上。而和開發(fā)者談相同的信息時(shí),就必須將這些活重新組織以另一種方式表達(dá)出來,測試小組的成員必須能夠同等地同用戶和開發(fā)者溝通。

  2、技術(shù)能力

  就總體言,開發(fā)人員對那些不懂技術(shù)的人持一種輕視的態(tài)度。一旦測試小組的某個(gè)成員作出了一個(gè)錯(cuò)誤的斷定,那么他們的可信度就會(huì)馬上被傳揚(yáng)了出去。一個(gè)測試者必須既明白被測軟件系統(tǒng)的概念又要會(huì)使用工程中的那些工具。要做到這一點(diǎn)需要有幾年以上的編程經(jīng)驗(yàn),前期的開發(fā)經(jīng)驗(yàn)可以幫助對軟件開發(fā)過程有較深入的理解,從開發(fā)人員的角度正確的評價(jià)測試者,簡化自動(dòng)測試工具編程的學(xué)習(xí)曲線。

  3、自信心

  開發(fā)者指責(zé)測試者出了錯(cuò)是常有的事,測試者必須對自己的觀點(diǎn)有足夠的自信心。假如容許別人對自己指東指西,就不能完成什么更多的事情了。

  4、外交能力

  當(dāng)你告訴某人他出了錯(cuò)時(shí),就必須使用一些外交方法。機(jī)智老練和外交手法有助于維護(hù)與開發(fā)人員的協(xié)作關(guān)系,測試者在告訴開發(fā)者他的軟件有錯(cuò)誤時(shí),也同樣需要一定的外交手腕。假如采取的方法過于強(qiáng)硬,對測試者來說,在以后和開發(fā)部門的合作方面就相當(dāng)于"贏了戰(zhàn)爭卻輸了戰(zhàn)爭"。

  5、幽默感

  在碰到狡辯的情況下,一個(gè)幽默的批評將是很有幫助的。

  6、很強(qiáng)的記憶力

  一個(gè)理想的測試者應(yīng)該有能力將以前曾經(jīng)碰到過的類似的錯(cuò)誤從記憶深處挖掘出來,這一能力在測試過程中的價(jià)值是無法衡量的。因?yàn)樵S多新出現(xiàn)的問題和我們已經(jīng)發(fā)現(xiàn)的問題相差無幾。

  7、懷疑精神

  可以預(yù)料,開發(fā)者會(huì)盡他們最大的努力將所有的錯(cuò)誤解釋過去。測式者必須聽每個(gè)人的說明,但他必須保持懷疑直到他自己看過以后。

  8、自我督促

  干測試工作很輕易使你變得懶散。只有那些具有自我督促能力的人才能夠使自己天天正常地工作。

  9、洞察力

  一個(gè)好的測試工程師具有"測試是為了破壞"的觀點(diǎn),捕捉用戶觀點(diǎn)的能力,強(qiáng)烈的質(zhì)量追求,對細(xì)節(jié)的關(guān)注能力。應(yīng)用的高風(fēng)險(xiǎn)區(qū)的判定能力以便將有限的測試針對重點(diǎn)環(huán)節(jié)。   總之,測試是軟件生存周期中的一個(gè)要害的階段,也是保證軟件質(zhì)量的重要活動(dòng)之一。無論怎樣強(qiáng)調(diào)軟件測試的重要性和它對軟件可靠性的影響都不過分,面對軟件開發(fā)規(guī)模的增大、復(fù)雜程度的增加,更應(yīng)高度重視軟件測試工作的組織與治理,以提到軟件質(zhì)量。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 岑巩县| 塔城市| 尚义县| 金平| 正宁县| 崇明县| 庄河市| 枝江市| 崇文区| 和顺县| 金堂县| 察隅县| 平罗县| 于田县| 汶川县| 都匀市| 依兰县| 彰化县| 仙桃市| 黄骅市| 马山县| 临澧县| 阜南县| 加查县| 平顺县| 扶沟县| 陇川县| 武乡县| 扎兰屯市| 姜堰市| 崇仁县| 紫金县| 革吉县| 宜阳县| 宁波市| 迭部县| 沅陵县| 韶山市| 略阳县| 东丽区| 哈巴河县|