總結(jié)是對(duì)某一特定時(shí)間段內(nèi)的學(xué)習(xí)和工作生活等表現(xiàn)情況加以回顧和分析的一種書面材料,它能夠使頭腦更加清醒,目標(biāo)更加明確,讓我們一起來學(xué)習(xí)寫總結(jié)吧。那么我們?cè)撊绾螌懸黄^為完美的總結(jié)呢?下面是小編為大家?guī)淼目偨Y(jié)書優(yōu)秀范文,希望大家可以喜歡。
軟件測(cè)試總結(jié)與建議 軟件測(cè)試總結(jié)自己的不足之處篇一
姓名:某某 學(xué)號(hào):20090001 在大慶浦東軟件平臺(tái)有限公司經(jīng)過一周的軟件測(cè)試實(shí)訓(xùn),從對(duì)軟件測(cè)試沒有什么經(jīng)驗(yàn)的我初步掌握了軟件測(cè)試的方法和技能,收獲頗多。
我在大學(xué)期間的專業(yè)是信息與計(jì)算科學(xué),原本打算從事網(wǎng)絡(luò)方面的工作,對(duì)活動(dòng)目錄、數(shù)據(jù)庫、操作系統(tǒng)等的知識(shí)比較感興趣。經(jīng)過這次理論學(xué)習(xí),了解到要做好軟件測(cè)試,要求掌握的知識(shí)并不僅僅是測(cè)試方面的,網(wǎng)絡(luò)、數(shù)據(jù)庫、操作系統(tǒng)等的知識(shí)對(duì)做好測(cè)試也是很有幫助的。這讓我明確了以后學(xué)習(xí)的目標(biāo),在不斷學(xué)習(xí)軟件測(cè)試的同時(shí),也應(yīng)該繼續(xù)其他相關(guān)知識(shí)的深入學(xué)習(xí)。通過此次學(xué)習(xí),對(duì)整個(gè)軟件測(cè)試行業(yè)的了解大大的加深。以前認(rèn)為軟件測(cè)試只是枯燥的反復(fù)的使用被測(cè)試軟件來發(fā)現(xiàn)異常的問題,以為軟件測(cè)試并不重要,低開發(fā)一等。現(xiàn)在認(rèn)識(shí)到了軟件測(cè)試的重要性,軟件測(cè)試是軟件產(chǎn)業(yè)向軟件工業(yè)化生產(chǎn)時(shí)代邁進(jìn)不可缺少的重要組成部分,是保證軟件質(zhì)量達(dá)到客戶需求不可缺少的環(huán)節(jié)。軟件測(cè)試在國內(nèi)是一個(gè)新的職業(yè),發(fā)展得比較晚,但它的重要性正在為行業(yè)所重視。
在學(xué)習(xí)過程中,我了解了作為一個(gè)合格的測(cè)試人員所應(yīng)具備的素質(zhì)與技能。其中個(gè)人素質(zhì)在測(cè)試工作中起到了非常重要的作用,它包括你的信心、耐心、細(xì)心和與人交流溝通的能力,它將貫穿你工作生涯的整個(gè)過程。在測(cè)試?yán)碚撋希覀兿到y(tǒng)學(xué)習(xí)了軟件測(cè)試的流程,各種測(cè)試階段和測(cè)試方法,以及測(cè)試工具的使用。通過這些課程的學(xué)習(xí),讓我們對(duì)軟件工程也有了更深刻的理解,為以后的測(cè)試工作作了很好的理論儲(chǔ)備和技能的提升。
軟件測(cè)試作為軟件開發(fā)過程中一個(gè)非常重要的環(huán)節(jié),越來越成為軟件開發(fā)商和用戶關(guān)注的焦點(diǎn)。完善的測(cè)試是軟件質(zhì)量的保證,因此軟件測(cè)試就成了一項(xiàng)重要而艱巨的工作,要做好這項(xiàng)工作當(dāng)然也絕非易事,我在做軟件測(cè)試工作中總結(jié)出了一些經(jīng)驗(yàn)和技巧。1.功能點(diǎn)的細(xì)化
在進(jìn)行測(cè)試前,先將所要測(cè)試的功能細(xì)分,填寫《測(cè)試用例表》,有針對(duì)性的運(yùn)行功能測(cè)試案例,逐個(gè)對(duì)每個(gè)功能細(xì)分點(diǎn)進(jìn)行測(cè)試。在每次運(yùn)行測(cè)試案例之前,明確此次運(yùn)行的目的和預(yù)期的輸出結(jié)果,并要做好記錄。2.注意測(cè)試中的錯(cuò)誤集中發(fā)生的現(xiàn)象
有一些錯(cuò)誤是和程序開發(fā)人員的編程水平和習(xí)慣有很大關(guān)系的。例如程序中的拼寫錯(cuò)誤,習(xí)慣用法等。注意收集并記錄這些現(xiàn)象,有助于更快、更多地發(fā)現(xiàn)類似的錯(cuò)誤。
3.盡可能多的使用非常規(guī)的測(cè)試 充分考慮到各種合法的輸入和不合法的輸入以及各種邊界條件。邊界值往往是最容易出現(xiàn)異常的情況,特殊的情況下甚至要制造極端的狀態(tài)和意外狀態(tài),比如網(wǎng)絡(luò)突然中斷,和電源突然斷電等情況。
4.對(duì)測(cè)試錯(cuò)誤結(jié)果一定要有一個(gè)確認(rèn)的過程
一般有a測(cè)試出來的錯(cuò)誤,一定要有一個(gè)b來確認(rèn)。5.制定嚴(yán)格的測(cè)試計(jì)劃
測(cè)試時(shí)間安排的盡量寬松,不要希望在極短的時(shí)間內(nèi)完成一個(gè)高水平的測(cè)試。6.回歸測(cè)試的關(guān)聯(lián)性一定要引起充分的注意
在開發(fā)人員剛修復(fù)bug之后的地方,再找一找,往往開發(fā)人員只修復(fù)報(bào)告出來的缺陷而不去考慮別的功能在修改時(shí)可能會(huì)重新造成錯(cuò)誤。修改一個(gè)錯(cuò)誤而引起更多的錯(cuò)誤出現(xiàn)的現(xiàn)象并不少見。
7.測(cè)試文檔要盡可能詳細(xì)
《測(cè)試用例表》中的功能點(diǎn)可盡量的詳細(xì),如實(shí)、詳細(xì)地記錄每次運(yùn)行測(cè)試案例的輸入數(shù)據(jù),輸出數(shù)據(jù),出錯(cuò)提示,進(jìn)行測(cè)試的時(shí)間,完成測(cè)試的時(shí)間等,便于以后對(duì)測(cè)試工作的回溯。8.重視交流和溝通
包括和程序開發(fā)人員的交流,同是測(cè)試人員之間的交流,網(wǎng)上技術(shù)論壇和網(wǎng)友的交流,和客戶的交流等。多思考,多交流,多提問,通過多種溝通交流的途徑,可以少走很多彎路,同時(shí)可以學(xué)到很多東西。9.善于總結(jié)
在測(cè)試過程中發(fā)現(xiàn)的所有問題,異常情況,發(fā)現(xiàn)程序開發(fā)人員易犯,常犯的錯(cuò)誤,各種有價(jià)值的經(jīng)驗(yàn)教訓(xùn),使用系統(tǒng)和操作數(shù)據(jù)庫時(shí)發(fā)現(xiàn)或者學(xué)到的技巧,使用測(cè)試工具時(shí)的心得等等,都可以隨手記錄在筆記本或者電腦上。這些都將是今后工作中可以參照的珍貴資料,同時(shí)也會(huì)成為自己的寶貴經(jīng)驗(yàn)。10.妥善保存一切測(cè)試過程文檔。
這次軟件測(cè)試實(shí)訓(xùn)為我們以后從事軟件測(cè)試工作打下了良好的專業(yè)基礎(chǔ),為我們的進(jìn)一步學(xué)習(xí)提高打下了扎實(shí)的理論基礎(chǔ)。對(duì)測(cè)試過程有了初步的認(rèn)識(shí),測(cè)試計(jì)劃、測(cè)試設(shè)計(jì)、測(cè)試開發(fā)、測(cè)試執(zhí)行、測(cè)試評(píng)估、測(cè)試報(bào)告貫穿整個(gè)軟件開發(fā)過程。單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)證測(cè)試每個(gè)階段都應(yīng)以用戶需求為依據(jù)。這些基本的概念雖然比較抽象,但對(duì)以后的實(shí)踐是大有益處的。總的來說,這次培訓(xùn)效果不錯(cuò),對(duì)自己有一定的提升,這完全不同與學(xué)校的學(xué)習(xí),因?yàn)樗淤N近工作,針對(duì)以后工作的內(nèi)容作了很多實(shí)例的練習(xí)與工具的使用,為我們更快的加入工作提供的很好的前提。接下來一段時(shí)間,我將利用假期進(jìn)入相關(guān)測(cè)試部門進(jìn)行實(shí)際項(xiàng)目的訓(xùn)練,我相信在我有了很好的理論基礎(chǔ)后,會(huì)在工作中很好的加以應(yīng)用,讓測(cè)試工作做得更好。同時(shí),我會(huì)更加努力的學(xué)習(xí)與工作,遇到問題會(huì)及時(shí)多渠道尋找解決方法,積極上進(jìn),希望早日成為一名優(yōu)秀的測(cè)試人員。
軟件測(cè)試總結(jié)與建議 軟件測(cè)試總結(jié)自己的不足之處篇二
面向?qū)ο蟪绦虻能浖y(cè)試方法
在軟件生命周期過程中,軟件測(cè)試是保證軟件質(zhì)量的關(guān)鍵環(huán)節(jié)之一。面向?qū)ο蠓椒▽W(xué)在軟件工程中的引入極大地方便了軟件的設(shè)計(jì)、開發(fā)和維護(hù),為創(chuàng)建高可靠性的軟件系統(tǒng)提供了重要保證。但面向?qū)ο蟪绦虻姆庋b、繼承、多態(tài)和異常處理機(jī)制等新特性卻給測(cè)試帶來新的挑戰(zhàn)。一方面需要調(diào)整、改進(jìn)傳統(tǒng)的測(cè)試策略和方法;另一方面探索出適應(yīng)面向?qū)ο蟪绦蛱卣鞯臏y(cè)試?yán)碚撆c技術(shù)也尤為必要。
面向?qū)ο?object oriented,oo)是當(dāng)前計(jì)算機(jī)界關(guān)心的重點(diǎn),它是90年代軟件開發(fā)方法的主流。面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計(jì)和軟件開發(fā),擴(kuò)展到很寬的范圍。如數(shù)據(jù)庫系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺(tái)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、cad技術(shù)、人工智能等領(lǐng)域。
面向?qū)ο蟮亩x或說明對(duì)象的定義的非常少。其初,“面向?qū)ο蟆笔菍V冈诔绦蛟O(shè)計(jì)中采用封裝、繼承、抽象等設(shè)計(jì)方法。可是,這個(gè)定義顯然不能再適合現(xiàn)在情況。面向?qū)ο蟮乃枷胍呀?jīng)涉及到軟件開發(fā)的各個(gè)方面。如,面向?qū)ο蟮姆治觯╫oa,object oriented analysis),面向?qū)ο蟮脑O(shè)計(jì)(ood,object oriented design)、以及我們經(jīng)常說的面向?qū)ο蟮木幊虒?shí)現(xiàn)(oop,object oriented programming)。許多有關(guān)面向?qū)ο蟮奈恼露贾皇侵v述在面向?qū)ο蟮拈_發(fā)中所需要注意的問題或所采用的比較好的設(shè)計(jì)方法。看這些文章只有真正懂得什么是對(duì)象,什么是面向?qū)ο螅拍茏畲蟪潭鹊貙?duì)自己有所裨益。這一點(diǎn),恐怕對(duì)初學(xué)者甚至是從事相關(guān)工作多年的人員也會(huì)對(duì)它們的概念模糊不清。
1、面向?qū)ο蟮幕靖拍?/p>
(1)對(duì)象。
對(duì)象是人們要進(jìn)行研究的任何事物,從最簡單的整數(shù)到復(fù)雜的飛機(jī)等均可看作對(duì)象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計(jì)劃或事件。
(2)對(duì)象的狀態(tài)和行為。
對(duì)象具有狀態(tài),一個(gè)對(duì)象用數(shù)據(jù)值來描述它的狀態(tài)。
對(duì)象還有操作,用于改變對(duì)象的狀態(tài),對(duì)象及其操作就是對(duì)象的行為。
對(duì)象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,使數(shù)據(jù)和操作封裝于對(duì)象的統(tǒng)一體中
(3)類。具有相同或相似性質(zhì)的對(duì)象的抽象就是類。因此,對(duì)象的抽象是類,類的具體化就是對(duì)象,也可以說類的實(shí)例是對(duì)象。
類具有屬性,它是對(duì)象的狀態(tài)的抽象,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性。
類具有操作,它是對(duì)象的行為的抽象,用操作名和實(shí)現(xiàn)該操作的方法來描述。
(4)類的結(jié)構(gòu)。
在客觀世界中有若干類,這些類之間有一定的結(jié)構(gòu)關(guān)系。通常有兩種主要的結(jié)構(gòu)關(guān)系,即一般--具體結(jié)構(gòu)關(guān)系,整體--部分結(jié)構(gòu)關(guān)系。
①一般——具體結(jié)構(gòu)稱為分類結(jié)構(gòu),也可以說是“或”關(guān)系,或者是“is a”關(guān)系。
②整體——部分結(jié)構(gòu)稱為組裝結(jié)構(gòu),它們之間的關(guān)系是一種“與”關(guān)系,或者是“has a”關(guān)系。
(5)消息和方法。
對(duì)象之間進(jìn)行通信的結(jié)構(gòu)叫做消息。在對(duì)象的操作中,當(dāng)一個(gè)消息發(fā)送給某個(gè)對(duì)象時(shí),消息包含接收對(duì)象去執(zhí)行某種操作的信息。發(fā)送一條消息至少要包括說明接受消息的對(duì)象名、發(fā)送給該對(duì)象的消息名(即對(duì)象名、方法名)。一般還要對(duì)參數(shù)加以說明,參數(shù)可以是認(rèn)識(shí)該消息的對(duì)象所知道的變量名,或者是所有對(duì)象都知道的全局變量名。
類中操作的實(shí)現(xiàn)過程叫做方法,一個(gè)方法有方法名、參數(shù)、方法體。消
2、面向?qū)ο蟮奶卣?/p>
(1)對(duì)象唯一性。
每個(gè)對(duì)象都有自身唯一的標(biāo)識(shí),通過這種標(biāo)識(shí),可找到相應(yīng)的對(duì)象。在對(duì)象的整個(gè)生命期中,它的標(biāo)識(shí)都不改變,不同的對(duì)象不能有相同的標(biāo)識(shí)。
(2)分類性。
分類性是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對(duì)象抽象成類。一個(gè)類就是這樣一種抽象,它反映了與應(yīng)用有關(guān)的重要性質(zhì),而忽略其他一些無關(guān)內(nèi)容。任何類的劃分都是主觀的,但必須與具體的應(yīng)用有關(guān)。
(3)繼承性。
繼承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。在定義和實(shí)現(xiàn)一個(gè)類的時(shí)候,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)之上來進(jìn)行,把這個(gè)已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新的內(nèi)容。繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)語言不同于其它語言的最重要的特點(diǎn),是其他語言所沒有的。
在類層次中,子類只繼承一個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為單重繼承。
在類層次中,子類繼承了多個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法,則稱為多重繼承。
在軟件開發(fā)中,類的繼承性使所建立的軟件具有開放性、可擴(kuò)充性,這是信息組織與分類的行之有效的方法,它簡化了對(duì)象、類的創(chuàng)建工作量,增加了代碼的可重性。
采用繼承性,提供了類的規(guī)范的等級(jí)結(jié)構(gòu)。通過類的繼承關(guān)系,使公共的特性能夠共享,提高了軟件的重用性。
(4)多態(tài)性(多形性)多態(tài)性使指相同的操作或函數(shù)、過程可作用于多種類型的對(duì)象上并獲得不同的結(jié)果。不同的對(duì)象,收到同一消息可以產(chǎn)生不同的結(jié)果,這種現(xiàn)象稱為多態(tài)性。
多態(tài)性允許每個(gè)對(duì)象以適合自身的方式去響應(yīng)共同的消息。
多態(tài)性增強(qiáng)了軟件的靈活性和重用性。
面向?qū)ο蠓椒ǖ幕舅枷胧且唬好嫦驅(qū)ο蠓椒ㄊ且环N運(yùn)用對(duì)象、類、封裝、繼承、多態(tài)和消息等概念來構(gòu)造、測(cè)試、重構(gòu)軟件的方法。
二: 面向?qū)ο蠓椒ㄊ且哉J(rèn)識(shí)論為基礎(chǔ),用對(duì)象來理解和分析問題空間,并設(shè)計(jì)和開發(fā)出由對(duì)象構(gòu)成的軟件系統(tǒng)(解空間)的方法。由于問題空間和解空間都是由對(duì)象組成的,這樣可以消除由于問題空間和求解空間結(jié)構(gòu)上的不一致帶來的問題。簡言之,面向?qū)ο缶褪敲嫦蚴虑楸旧恚嫦驅(qū)ο蟮姆治鲞^程就是認(rèn)識(shí)客觀世界的過程。
面向?qū)ο蠓椒◤膶?duì)象出發(fā),發(fā)展出對(duì)象,類,消息,繼承等概念。
面向?qū)ο蠓椒ǖ闹饕獌?yōu)點(diǎn)是:符合人們通常的思維方式;從分析到設(shè)計(jì)再到編碼采用一致的模型表示具有高度連續(xù)性;軟件重用性好。
面向?qū)ο筌浖y(cè)試的特點(diǎn)是: 1.掌握代碼檢查、走查與評(píng)審的基本方法和技術(shù); 2.掌握白盒測(cè)試和黑盒測(cè)試的測(cè)試用例的設(shè)計(jì)原則和方法; 3.掌握單元測(cè)試和集成測(cè)試的基本策略和方法;
4.了解系統(tǒng)測(cè)試、性能測(cè)試和可靠性測(cè)試的基本概念和方法; 5.了解面向?qū)ο筌浖蛍eb應(yīng)用軟件測(cè)試的基本概念和方法; 6.掌握軟件測(cè)試過程管理的基本知識(shí)和管理方法; 7.熟悉軟件測(cè)試的標(biāo)準(zhǔn)和文檔;
8.掌握qesuite軟件測(cè)試過程管理平臺(tái)和qesat/c++軟件分析和工具的使用方法。
軟件測(cè)試總結(jié)與建議 軟件測(cè)試總結(jié)自己的不足之處篇三
1.軟件測(cè)試定義:由人工或自動(dòng)方法來執(zhí)行或評(píng)價(jià)系統(tǒng)或系統(tǒng)部分的過程,以驗(yàn)證它是否滿足規(guī)定的需求,或識(shí)別出期望的結(jié)果和實(shí)際結(jié)果之間的差異。2.軟件測(cè)試的分類:
測(cè)試對(duì)象或范圍分類:需求評(píng)審、設(shè)計(jì)評(píng)審、單元測(cè)試、程序測(cè)試、系統(tǒng)
測(cè)試、文檔測(cè)試、web應(yīng)用測(cè)試、客戶端測(cè)試、數(shù)據(jù)庫測(cè)試等;
測(cè)試目的分類:集成測(cè)試、功能測(cè)試、壓力測(cè)試、性能測(cè)試等等; 靜態(tài)測(cè)試、動(dòng)態(tài)測(cè)試; 白盒測(cè)試、黑盒測(cè)試。3.軟件測(cè)試的基本流程與原則
基本流程:
測(cè)試用例設(shè)計(jì)-輸入數(shù)據(jù)、預(yù)期結(jié)果; 測(cè)試執(zhí)行-輸入數(shù)據(jù)執(zhí)行被測(cè)對(duì)象; 檢查實(shí)際輸出與預(yù)期結(jié)果。基本原則:
開始測(cè)試時(shí)認(rèn)定軟件有錯(cuò),測(cè)試要證明有錯(cuò); 測(cè)試應(yīng)該由獨(dú)立的測(cè)試團(tuán)隊(duì)來完成; 測(cè)試設(shè)計(jì)必須設(shè)計(jì)對(duì)應(yīng)的預(yù)期輸出;
要對(duì)合理、不合理(有效、無效)輸入數(shù)據(jù)都進(jìn)行測(cè)試; 檢查軟件的完備性、多余; 完整保留測(cè)試文檔;
一個(gè)被測(cè)對(duì)象中有錯(cuò)誤的概率與已發(fā)現(xiàn)錯(cuò)誤的個(gè)數(shù)成正比。測(cè)試成熟度級(jí)別:
0級(jí):沒有區(qū)分測(cè)試與調(diào)試;
1級(jí):測(cè)試的目的是證明軟件能用; 2級(jí):測(cè)試的目的是證明軟件不能用;
3級(jí):測(cè)試的目的不是為了證明什么,而是為了降低軟件使用風(fēng)險(xiǎn); 4級(jí):測(cè)試是一種智能訓(xùn)練,能夠幫助專業(yè)人員開發(fā)出更高質(zhì)量的軟件。5.軟件測(cè)試與軟件工程,軟件過程的關(guān)系:
軟件工程:在給定的條件下(成本、時(shí)間)開發(fā)出高質(zhì)量的軟件產(chǎn)品。軟件生產(chǎn)過程的特性決定了軟件產(chǎn)品中不可避免包含有錯(cuò)誤。軟件測(cè)試則是盡可能多地發(fā)現(xiàn)錯(cuò)誤,從而保障軟件產(chǎn)品的質(zhì)量。的質(zhì)量因素:
產(chǎn)品修改:
可維護(hù)性,靈活性,可測(cè)試性 產(chǎn)品轉(zhuǎn)移:
可移植性,可復(fù)用性,互操作性 產(chǎn)品運(yùn)行:
正確性,易用性,可靠性,效率,完整性 7.軟件質(zhì)量困境
軟件質(zhì)量必須足夠好:存在價(jià)值
軟件產(chǎn)品無法完美:需要消耗過多的資源、時(shí)間、成本
軟件開發(fā)需要在兩個(gè)極端之間進(jìn)行平衡:軟件足夠好的同時(shí)又不完美。8.質(zhì)量控制、質(zhì)量保證和質(zhì)量管理
軟件質(zhì)量控制其實(shí)是基本方法,通過一系列的技術(shù)來科學(xué)地測(cè)量過程的狀態(tài)。如缺陷率、測(cè)試覆蓋率等。
軟件質(zhì)量保證則是過程的參考、指南的集合,如iso9000、cmm/cmmi等,著重內(nèi)部的檢查,確保已獲取認(rèn)可的標(biāo)準(zhǔn)和步驟都已經(jīng)遵循。
軟件質(zhì)量管理則是實(shí)際操作的思想,質(zhì)量管理控制和協(xié)調(diào)組織的質(zhì)量活動(dòng),包括質(zhì)量控制、質(zhì)量保證和質(zhì)量改進(jìn)。應(yīng)用的屬性:
網(wǎng)絡(luò)密集型應(yīng)用;并發(fā)性;大負(fù)載量;性能;高可靠性、高可用性;安全性-內(nèi)容敏感;
10.軟件評(píng)審的目的,評(píng)審度量及其應(yīng)用
評(píng)審的目標(biāo)在于:盡早發(fā)現(xiàn)軟件過程中的錯(cuò)誤,防止錯(cuò)誤傳遞、蔓延至后續(xù)活動(dòng),防止錯(cuò)誤轉(zhuǎn)化為缺陷。
準(zhǔn)備工作量ep-實(shí)際評(píng)審會(huì)之前所需工作量; 評(píng)估工作量ea-實(shí)際評(píng)審所花費(fèi)的工作量 返工工作量er-修改評(píng)審所發(fā)現(xiàn)錯(cuò)誤的工作量 工作產(chǎn)品規(guī)模wps-評(píng)審對(duì)象的規(guī)模
發(fā)現(xiàn)的主要錯(cuò)誤數(shù)errmajor-多于預(yù)期的改錯(cuò)工作量的錯(cuò)誤數(shù)目 發(fā)現(xiàn)的次要錯(cuò)誤數(shù)errminor-少于預(yù)期的改錯(cuò)工作量的錯(cuò)誤數(shù)目 總評(píng)審工作量ereview = ep+ea+er 錯(cuò)誤總數(shù)errtot = errmajor+errminor 錯(cuò)誤密度:評(píng)審的每單位工作產(chǎn)品發(fā)現(xiàn)的錯(cuò)誤數(shù)ed = errtot / wps 錯(cuò)誤密度數(shù)值的含義:較小(產(chǎn)品質(zhì)量非常好或評(píng)審不夠徹底);較大(產(chǎn)品質(zhì)量存在缺陷)
11.軟件測(cè)試計(jì)劃:描述對(duì)計(jì)算機(jī)軟件配置項(xiàng)、子系統(tǒng)、系統(tǒng)進(jìn)行測(cè)試的計(jì)劃安排,內(nèi)容包括測(cè)試的環(huán)境、測(cè)試工作的標(biāo)識(shí)及測(cè)試工作的時(shí)間安排。
軟件測(cè)試報(bào)告:是對(duì)計(jì)算機(jī)軟件配置項(xiàng)、軟件系統(tǒng)或子系統(tǒng),或與軟件相關(guān)項(xiàng)目執(zhí)行合格性測(cè)試的記錄 12.軟件測(cè)試活動(dòng)
制訂測(cè)試計(jì)劃(測(cè)試分析員)
測(cè)試設(shè)計(jì)(測(cè)試設(shè)計(jì)人員)-方案設(shè)計(jì) 測(cè)試及測(cè)試用例設(shè)計(jì) 測(cè)試過程
樁模塊、驅(qū)動(dòng)模塊設(shè)計(jì)
測(cè)試實(shí)施(測(cè)試設(shè)計(jì)員)-實(shí)現(xiàn)測(cè)試設(shè)計(jì) 單元測(cè)試(測(cè)試員)集成測(cè)試(測(cè)試員)系統(tǒng)測(cè)試(測(cè)試員)
評(píng)估測(cè)試(測(cè)試設(shè)計(jì)人員)
13.無向圖的相關(guān)定義:
連接性:節(jié)點(diǎn)ni、nj是連接的,當(dāng)且僅當(dāng)ni、nj在同一條路徑上。組件:圖的組件是相連節(jié)點(diǎn)的最大集合
圖g的圈復(fù)雜度v(g)=e-n+2p,其中e為g的邊數(shù),n為節(jié)點(diǎn)數(shù),p為組件數(shù)。14.圖覆蓋:給定一個(gè)關(guān)于圖g的準(zhǔn)則c的測(cè)試需求集合tr,測(cè)試集合t在圖g上滿足準(zhǔn)則c當(dāng)且僅當(dāng)對(duì)tr中每個(gè)測(cè)試需求tr,path(t)中至少存在一條測(cè)試路徑p滿足tr。
簡單路徑:如果從ni到nj的一條路徑中,除了始節(jié)點(diǎn)和終節(jié)點(diǎn)可以相同外,沒有任何節(jié)點(diǎn)出現(xiàn)次數(shù)多于一次,則該路徑為簡單路徑。
主路徑:如果從ni到nj是一條簡單路徑,并且它不作為任何其他簡單路徑的子路徑出現(xiàn),則稱之為主路徑。
主路徑覆蓋(ppc)準(zhǔn)則:tr包含圖中每一條主路徑。
指定路徑覆蓋(spc):tr包含一個(gè)測(cè)試路徑集s,s為指定參數(shù)。15.白盒測(cè)試方法
白盒測(cè)試:根據(jù)被測(cè)對(duì)象的內(nèi)部結(jié)構(gòu)和運(yùn)行機(jī)制來設(shè)計(jì)測(cè)試用例的方法,又稱為結(jié)構(gòu)測(cè)試、邏輯驅(qū)動(dòng)測(cè)試、覆蓋測(cè)試
被測(cè)對(duì)象的獨(dú)立路徑至少覆蓋一次; 所有邏輯取值測(cè)試[真、假]; 循環(huán)邊界測(cè)試;
檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)、邊界條件。16.黑盒測(cè)試方法
黑盒測(cè)試方法又稱功能測(cè)試方法、數(shù)據(jù)驅(qū)動(dòng)測(cè)試方法,測(cè)試設(shè)計(jì)時(shí)不考慮被測(cè)對(duì)象的內(nèi)部結(jié)構(gòu),以檢查系統(tǒng)功能(功能的正確、完整、邏輯流程、人機(jī)界面、文檔內(nèi)容、系統(tǒng)安裝/初始化)
以被測(cè)對(duì)象的外部特征為測(cè)試依據(jù)。17.模糊測(cè)試方法
模糊測(cè)試方法:構(gòu)造大量的隨機(jī)數(shù)據(jù)作為系統(tǒng)的輸入,從而檢驗(yàn)系統(tǒng)在各種數(shù)據(jù)情況下是否出現(xiàn)問題。
18.增量測(cè)試:單元測(cè)試、調(diào)用依賴的模塊集成測(cè)試,逐步擴(kuò)展直到形成整個(gè)軟件系統(tǒng)。
19.突擊測(cè)試:所有模塊一次性集成為一個(gè)完整的系統(tǒng),然后進(jìn)行完全測(cè)試。20.等價(jià)類劃分:
等價(jià)類劃分基于對(duì)輸入或輸出數(shù)據(jù)情況的評(píng)估,劃分成兩個(gè)或多個(gè)子集(等價(jià)類),然后從每個(gè)子集中選取一定的代表進(jìn)行測(cè)試的測(cè)試用例設(shè)計(jì)方法。21.極限測(cè)試
極限編程:利用輕量、敏捷的開發(fā)過程,使開發(fā)人員能夠更快地完成應(yīng)用程序的開發(fā)。強(qiáng)調(diào)頻繁測(cè)試、測(cè)試驅(qū)動(dòng)的方式保證軟件質(zhì)量。
極限測(cè)試:為滿足極限編程思想和過程而設(shè)計(jì)的一套測(cè)試策略和流程,原來的測(cè)試技術(shù)、方法均可以使用 22.配置項(xiàng)測(cè)試的內(nèi)容
功能: 適合性
準(zhǔn)確性:功能的準(zhǔn)確與精度要求 互操作性:與外部設(shè)備、系統(tǒng)的接口 安全保密性:數(shù)據(jù)訪問的可控制性 可靠性: 成熟性:容錯(cuò)處理、平均無故障時(shí)間
容錯(cuò)性:邊界條件、功能、性能的降級(jí)情況、誤操作模式、故障模式 易恢復(fù)性:自動(dòng)修復(fù)能力/時(shí)間、平均宕機(jī)時(shí)間、平均恢復(fù)時(shí)間、恢復(fù)能力等 易用性
易理解性:功能描述清晰、準(zhǔn)確;界面含義精確
易學(xué)性:在線幫助、幫助定位、各類手冊(cè)的易學(xué)、易用 易操作性:數(shù)據(jù)的有效檢查、解釋信息明確、界面切換 吸引性:人機(jī)界面定制 效率
時(shí)間特性:響應(yīng)時(shí)間、平均響應(yīng)時(shí)間、響應(yīng)極限時(shí)間、吞吐量、平均吞吐量、極限吞吐量,多任務(wù)并行測(cè)試
資源利用:大量并發(fā)任務(wù)下i/o設(shè)備利用、極限負(fù)載下i/o設(shè)備的負(fù)載、大量并發(fā)任務(wù)下用戶等待時(shí)間、內(nèi)存使用情況、數(shù)據(jù)傳輸能力等
維護(hù)性
易分析性:運(yùn)行狀態(tài)數(shù)據(jù)易分析 易變更性:軟件的可配置、修改能力 易測(cè)試性:變更之后的易測(cè)試情況 可移植性
適應(yīng)性:不同軟件、硬件環(huán)境的適應(yīng)能力 易安裝性:安裝、配置的復(fù)雜程度、難以程度 共存性:與其他軟件協(xié)同的能力 易替換性:版本的替換難以程度 依從性
以上所有特性遵循標(biāo)準(zhǔn)、規(guī)范的情況測(cè)試
23系統(tǒng)測(cè)試:系統(tǒng)非功能性測(cè)試,以檢驗(yàn)系統(tǒng)在超常數(shù)據(jù)規(guī)模或負(fù)載下,線程、cpu、內(nèi)存資源的利用和響應(yīng)時(shí)間、數(shù)據(jù)傳輸?shù)刃阅苤笜?biāo)是否滿足要求
24.測(cè)試計(jì)劃
確定測(cè)試充分性要求:覆蓋范圍、覆蓋程度 確定測(cè)試終止要求; 確定測(cè)試所需資源; 確定測(cè)試的軟件特性; 確定測(cè)試技術(shù)、方法; 確定測(cè)試準(zhǔn)出條件; 確定測(cè)試進(jìn)度計(jì)劃; 測(cè)試風(fēng)險(xiǎn)分析。
25.測(cè)試設(shè)計(jì):測(cè)試設(shè)計(jì)人員、測(cè)試程序員
測(cè)試用例設(shè)計(jì):依據(jù)測(cè)試特性; 獲取測(cè)試數(shù)據(jù);
確定測(cè)試順序:資源、被測(cè)特性; 獲取測(cè)試資源:軟硬件、工具; 編寫測(cè)試程序; 建立測(cè)試環(huán)境; 撰寫測(cè)試設(shè)計(jì)說明。
26.測(cè)試總結(jié):
測(cè)試分析員-測(cè)試報(bào)告
總結(jié)測(cè)試計(jì)劃、測(cè)試說明的變化情況; 異常終止時(shí)測(cè)試未覆蓋范圍; 未能解決的測(cè)試問題; 總結(jié)測(cè)試結(jié)果(發(fā)現(xiàn)問題); 編寫測(cè)試報(bào)告;
根據(jù)問題報(bào)告、測(cè)試記錄,編寫測(cè)試問題報(bào)告。
27.軟件可靠性:在給定的運(yùn)行時(shí)間內(nèi)和給定的系統(tǒng)配置環(huán)境下,運(yùn)行給定的軟件功能時(shí)所 表現(xiàn)出來的質(zhì)量能力 28.系統(tǒng)性能指標(biāo)
系統(tǒng)資源利用率:分析性能指標(biāo),改善性能系統(tǒng)行為指標(biāo) 請(qǐng)求響應(yīng)時(shí)間:一次請(qǐng)求完成時(shí)間
事務(wù)響應(yīng)時(shí)間:一個(gè)事務(wù)所有請(qǐng)求完成的總時(shí)間
數(shù)據(jù)吞吐量:單位時(shí)間內(nèi)服務(wù)器接收、發(fā)送的數(shù)據(jù)量。
29.驗(yàn)收測(cè)試:用戶執(zhí)行的、使用真實(shí)數(shù)據(jù)進(jìn)行的測(cè)試,依據(jù)需求規(guī)格中的確認(rèn)標(biāo)準(zhǔn)進(jìn)行測(cè)試。回歸測(cè)試:驗(yàn)證已測(cè)試過的內(nèi)容不受變更影響,確認(rèn)變更沒有引入新的錯(cuò)誤。
30.α測(cè)試是由一個(gè)用戶在開發(fā)環(huán)境下進(jìn)行的測(cè)試,也可以是公司內(nèi)部的用戶在模擬實(shí)際操 作環(huán)境下進(jìn)行的測(cè)試。
beta測(cè)試由軟件的最終用戶在一個(gè)或多個(gè)客戶場(chǎng)所進(jìn)行,開發(fā)者通常不在beta測(cè)試的現(xiàn)場(chǎng)。
測(cè)試關(guān)注的主要內(nèi)容 web內(nèi)容測(cè)試 界面 構(gòu)件
導(dǎo)航測(cè)試 安全性 性能
32.測(cè)試用例(test case)是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測(cè)試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求。
33.軟件生存期定義:從軟件產(chǎn)品設(shè)計(jì)到軟件被淘汰的時(shí)間段。又稱軟件生命周期、生存周期。進(jìn)一步劃分為兩個(gè)階段:開發(fā)階段和維護(hù)階段(40%+60%)。
34.軟件安全定義:一種軟件質(zhì)量保證活動(dòng),他主要用來識(shí)別和評(píng)估可能對(duì)軟件產(chǎn)生負(fù)面影響并促使整個(gè)系統(tǒng)失效的潛在災(zāi)難。
35.軟件評(píng)審的目標(biāo)在于:盡早發(fā)現(xiàn)軟件過程中的錯(cuò)誤,防止錯(cuò)誤傳遞、蔓延至后續(xù)活動(dòng),防止錯(cuò)誤轉(zhuǎn)化為缺陷。36.v模型
優(yōu)點(diǎn):既有底層測(cè)試又有高層測(cè)試。底層:單元測(cè)試。高層:系統(tǒng)測(cè)試。
將開發(fā)階段清楚的表現(xiàn)出來,便于控制開發(fā)的過程。當(dāng)所有階段都結(jié)束時(shí),軟件開發(fā)就結(jié)束了。
缺點(diǎn):容易讓人誤解為測(cè)試是在開發(fā)完成之后的一個(gè)階段。
由于它的順序性,當(dāng)編碼完成之后,正式進(jìn)入測(cè)試時(shí),這時(shí)發(fā)現(xiàn)的一些bug可能不容易找到其根源。
實(shí)際中,由于需求變更較大,導(dǎo)致要重復(fù)變更需求、設(shè)計(jì)、編碼、測(cè)試,返工量大。37.w模型:
優(yōu)點(diǎn):
將測(cè)試貫穿到整個(gè)軟件生命周期中,且除了代碼要測(cè)試,需求、設(shè)計(jì)等都要測(cè)試。更早介入軟件開發(fā)中,能盡早發(fā)現(xiàn)缺陷并修復(fù)。
測(cè)試與開發(fā)獨(dú)立起來,并與開發(fā)并行。缺點(diǎn):
對(duì)有些項(xiàng)目,開發(fā)過程中根本沒有文檔產(chǎn)生,故w模型無法使用。
對(duì)于需求和設(shè)計(jì)的測(cè)試技術(shù)要求很高,實(shí)踐起來很困難。
從n0中某節(jié)點(diǎn)開始到nf中某節(jié)點(diǎn)結(jié)束的一條路徑稱為一條測(cè)試路徑。
1.軟件缺陷:(符合下列規(guī)則的叫軟件缺陷):
1).軟件未達(dá)到產(chǎn)品說明書的功能
2).軟件出現(xiàn)了產(chǎn)品說明書指明不會(huì)出現(xiàn)的錯(cuò)誤
3).軟件功能超出產(chǎn)品說明書指明范圍
4).軟件未達(dá)到產(chǎn)品說明書雖未指出但應(yīng)達(dá)到的目標(biāo)
5).軟件測(cè)試員認(rèn)為難以理解、不易使用、運(yùn)行速度緩慢、或者最終用戶認(rèn)為不好
2.單元測(cè)試:單元測(cè)試是對(duì)軟件設(shè)計(jì)的最小單元——模塊進(jìn)行正確性檢驗(yàn)的測(cè)試工作,主要測(cè)試模塊在語法、格式和邏輯上的錯(cuò)誤。3.回歸測(cè)試
指軟件系統(tǒng)被修改或擴(kuò)充(如系統(tǒng)功能增強(qiáng)或升級(jí))后重新進(jìn)行的測(cè)試,是為了保證對(duì)軟件所做的修改沒有引入新的錯(cuò)誤而重復(fù)進(jìn)行的測(cè)試。
4.等價(jià)類:指某個(gè)輸入域的子集合,在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的。
軟件測(cè)試總結(jié)與建議 軟件測(cè)試總結(jié)自己的不足之處篇四
軟件測(cè)試的目的是盡可能發(fā)現(xiàn)并改正被測(cè)試軟件中的錯(cuò)誤,提高軟件的可靠性。
測(cè)試的目的就是為了保證軟件質(zhì)量
使用人工或自動(dòng)手段來運(yùn)行或測(cè)定某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。
軟件缺陷
軟件缺陷是對(duì)軟件產(chǎn)品預(yù)期屬性的偏離現(xiàn)象 1.對(duì)產(chǎn)品規(guī)格說明的偏離
2.對(duì)用戶期望的偏離,即用戶要求未體現(xiàn)在產(chǎn)品中(可能是規(guī)格說明有疏漏,也可能是實(shí)現(xiàn)中的問題)
注意:軟件缺陷不可能完全避免
軟件質(zhì)量
軟件需求是衡量軟件質(zhì)量的基礎(chǔ)
規(guī)定了的標(biāo)準(zhǔn)是軟件開發(fā)必須遵循的準(zhǔn)則
如果已開發(fā)的軟件已經(jīng)滿足了那些明文規(guī)定的需求,卻沒有滿足隱含的需求,軟件產(chǎn)品的質(zhì)量仍然是有問題的
測(cè)試目的
測(cè)試是程序執(zhí)行的過程,目的在于發(fā)現(xiàn)錯(cuò)誤(缺陷)
好的測(cè)試用例能有效地發(fā)現(xiàn)別的測(cè)試用例未發(fā)現(xiàn)的錯(cuò)誤(缺陷)成功的測(cè)試是發(fā)現(xiàn)了未曾發(fā)現(xiàn)的錯(cuò)誤
確保軟件的功能符合用戶的需求,把盡可能多的問題在發(fā)布或交付前發(fā)現(xiàn)并改正: 確保軟件完成了它所承諾或公布的功能 確保軟件滿足性能的要求
確保軟件是健壯的和適應(yīng)用戶環(huán)境的
一些原則:
一個(gè)好的測(cè)試用例具有較高的發(fā)現(xiàn)過去未被發(fā)現(xiàn)過的錯(cuò)誤的概率; 自己不能測(cè)試自己編寫的程序;
對(duì)期望結(jié)果的描述是每個(gè)測(cè)試用例的必要組成部分; 杜絕不能重現(xiàn)或匆忙的測(cè)試;
既要編寫使用有效輸入條件的測(cè)試用例,也要編寫使用非法輸入條件的測(cè)試用例; 深入細(xì)致地審查測(cè)試結(jié)果 充分注意測(cè)試中的集群現(xiàn)象:測(cè)試后程序中殘存的錯(cuò)誤數(shù)目與該程序中已發(fā)現(xiàn)的錯(cuò)誤數(shù)目成正比;
讓最優(yōu)秀的人員去完成測(cè)試;
保證軟件的可測(cè)試性是軟件設(shè)計(jì)的一個(gè)重要目標(biāo); 不要為了測(cè)試方便而修改程序;
測(cè)試工作必須在任務(wù)建立之初就確定目標(biāo)。good-enough: 一種權(quán)衡投入/產(chǎn)出比的原則; 保證測(cè)試的覆蓋程度,但窮舉測(cè)試是不可能的; 所有的測(cè)試都應(yīng)該追朔到用戶需求;
越早測(cè)試越好,測(cè)試過程與開發(fā)過程應(yīng)該是相結(jié)合的; 測(cè)試的規(guī)模由小而大,從單元測(cè)試到系統(tǒng)測(cè)試;
為了盡可能多的發(fā)現(xiàn)錯(cuò)誤,應(yīng)該由獨(dú)立的第三方來測(cè)試; 不能為了便于測(cè)試修改程序
既應(yīng)該測(cè)試軟件該做什么,也應(yīng)該測(cè)試軟件不該做什么
測(cè)試方法
(1)測(cè)試方法分類:
根據(jù)軟件測(cè)試的策略分類:
黑盒測(cè)試與白盒測(cè)試(功能性測(cè)試和結(jié)構(gòu)性測(cè)試),靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試,手工測(cè)試與自動(dòng)測(cè)試
根據(jù)測(cè)試的階段分類: 單元測(cè)試,集成測(cè)試,系統(tǒng)測(cè)試
(2)功能性測(cè)試和結(jié)構(gòu)性測(cè)試 a、功能性測(cè)試 基本觀點(diǎn):任何程序都可以看作是將從輸入定義域取值映射到輸出值域的函數(shù)(工程中的黑盒)。
測(cè)試在軟件的接口處進(jìn)行,測(cè)試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特征,只根據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明(也稱“數(shù)據(jù)驅(qū)動(dòng)測(cè)試”)。
黑盒測(cè)試一般為了發(fā)現(xiàn)以下幾類錯(cuò)誤: 是否有不正確或遺漏的功能?
在接口上,輸入能否正確地接受?能否輸出正確的結(jié)果? 是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(如數(shù)據(jù)文件)訪問錯(cuò)誤? 性能上是否能夠滿足要求? 是否有初始化或終止行錯(cuò)誤? ??
常用方法:邊界值分析,健壯性分析,最壞情況分析,特殊值測(cè)試,輸入(輸出)等價(jià)類,基于決策樹的測(cè)試??
功能性測(cè)試的優(yōu)點(diǎn):
功能性測(cè)試與軟件如何實(shí)現(xiàn)無關(guān),所以如果實(shí)現(xiàn)發(fā)生變化,測(cè)試用例仍然有效; 測(cè)試用例開發(fā)可以與實(shí)現(xiàn)并行,可以壓縮總的項(xiàng)目開發(fā)時(shí)間。缺點(diǎn):
測(cè)試用例的冗余
b 結(jié)構(gòu)性測(cè)試
對(duì)軟件的過程性細(xì)節(jié)做細(xì)致的檢查,對(duì)所有的邏輯路徑進(jìn)行測(cè)試(也稱邏輯驅(qū)動(dòng)測(cè)試)。結(jié)構(gòu)性測(cè)試一般對(duì)程序模塊做如下的檢查:
對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至少測(cè)試一次;
對(duì)所有的邏輯判定,取“真”與“假”的情況都能至少測(cè)試一次; 在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體; 測(cè)試內(nèi)部數(shù)據(jù)的有效性 ??
(3)功能性測(cè)試與結(jié)構(gòu)性測(cè)試的比較 測(cè)試用例的基礎(chǔ):
功能性測(cè)試:需求規(guī)格說明
結(jié)構(gòu)性測(cè)試:程序源代碼(實(shí)現(xiàn))兩種方法單獨(dú)使用都是不充分的
如果所有已描述行為都沒有被實(shí)現(xiàn),結(jié)構(gòu)性測(cè)試永遠(yuǎn)也發(fā)現(xiàn)不了; 如果程序?qū)崿F(xiàn)了沒有被描述的行為,功能性測(cè)試用也發(fā)現(xiàn)不了;
測(cè)試級(jí)別與功能性和結(jié)構(gòu)性測(cè)試存在現(xiàn)實(shí)的關(guān)系: 結(jié)構(gòu)性測(cè)試最適合在單元級(jí)別上進(jìn)行; 功能性測(cè)試最適合在系統(tǒng)級(jí)別上進(jìn)行;
完全測(cè)試程序是不可能的: 原因: 輸入量太大 輸出結(jié)果太多 軟件實(shí)現(xiàn)途徑太多
軟件說明書沒有客觀標(biāo)準(zhǔn)
邊界值分析 程序與函數(shù): 程序的輸入——定義域 程序的輸出——值域 程序中變量的值域: 強(qiáng)類型語言 非強(qiáng)類型語言
邊界值測(cè)試的基本原理: 錯(cuò)誤更可能出現(xiàn)在輸入變量的極值附近.單缺陷假設(shè):失效極少由兩個(gè)(或多個(gè))缺陷的同時(shí)發(fā)生引起的。min、min+、nom、max-和max。
次邊界條件:
有些邊界條件在軟件內(nèi)部,最終用戶幾乎看不到,但是軟件測(cè)試仍有必要檢查。這樣的邊界條件稱為次邊界條件或者內(nèi)部邊界條件。如2的乘方和ascⅱ。
邊界值分析的特點(diǎn)和局限性
對(duì)于一n個(gè)變量函數(shù),邊界值分析會(huì)產(chǎn)生4n+1個(gè)測(cè)試用例。邊界值的取值取決于變量本身的性質(zhì)。邊界值分析對(duì)布爾變量沒有什么意義。邊界值分析假設(shè)變量是完全獨(dú)立的。
邊界值分析的問題 測(cè)試用例存在大量冗余 存在不完備現(xiàn)象 等價(jià)類測(cè)試
希望進(jìn)行完備性測(cè)試 同時(shí)又希望避免冗余 等價(jià)類測(cè)試考慮的因素 單/多缺陷假設(shè) 健壯性
等價(jià)類劃分:
把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分,然后從每一部分中選取少數(shù)有代表性的數(shù)據(jù)做為測(cè)試用例。希望進(jìn)行完備性測(cè)試 同時(shí)又希望避免冗余
等價(jià)類測(cè)試步驟
使用這一方法設(shè)計(jì)測(cè)試用例要經(jīng)歷劃分等價(jià)類(列出等價(jià)類表)和選取測(cè)試用例兩步。(1)劃分等價(jià)類
等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的。測(cè)試某等價(jià)類的代表值就等價(jià)于對(duì)這一類其它值的測(cè)試。等價(jià)類的劃分有兩種不同的情況:
① 有效等價(jià)類:是指對(duì)于程序的規(guī)格說明來說,是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。② 無效等價(jià)類:是指對(duì)于程序的規(guī)格說明來說,是不合理的,無意義的輸入數(shù)據(jù)構(gòu)成的集合。
在設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮有效等價(jià)類和無效等價(jià)類的設(shè)計(jì)。
(2)等價(jià)類測(cè)試--等價(jià)類劃分原則 ①如果輸入條件規(guī)定了取值范圍,或值的個(gè)數(shù),則可以確立一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。
②如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)定了“必須如何”的條件,這時(shí)可確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。
③如果輸入條件是一個(gè)布爾量,則可以確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。④如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對(duì)每個(gè)輸入值分別進(jìn)行處理。
⑤如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。
(3)等價(jià)類測(cè)試—選取測(cè)試用例 在確立了等價(jià)類之后,建立等價(jià)類表,列出所有劃分出的等價(jià)類。再從劃分出的等價(jià)類中按以下原則選擇測(cè)試用例: ① 為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一編號(hào);
② 設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價(jià)類,重復(fù)這一步,直到所有的有效等價(jià)類都被覆蓋為止;
③ 設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類,重復(fù)這一步,直到所有的無效等價(jià)類都被覆蓋為止。
基于決策表的測(cè)試
在所有功能測(cè)試方法中,基于決策表的測(cè)試方法是最嚴(yán)格的,因?yàn)闆Q策表具有邏輯嚴(yán)格性。
決策表很適合描述不同條件集合下采取行動(dòng)的若干組合的情況。
決策表的組成
條件樁:列出了問題的所有條件。
動(dòng)作樁:列出了問題規(guī)定可能采取的操作。
條件項(xiàng):列出針對(duì)它所列條件的取值,在所有可能情況下的真假值。動(dòng)作項(xiàng):列出在條件項(xiàng)的各種取值情況下應(yīng)該采取的動(dòng)作。規(guī)則:任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作。在決策表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則。
功能性測(cè)試的選擇規(guī)則
如果變量引用的是物理量,可采用定義域測(cè)試和等價(jià)類測(cè)試。如果變量是獨(dú)立的,可采用定義域測(cè)試和等價(jià)類測(cè)試。如果變量不是獨(dú)立的,可以采用決策表測(cè)試。
如果可保證是單缺陷假設(shè),可以采用邊界值分析和健壯性測(cè)試。
如果可保證是多缺陷假設(shè),可采用最壞情況測(cè)試、健壯最壞測(cè)試和決策表測(cè)試。如果程序包含大量例外處理,可采用健壯性測(cè)試和決策表測(cè)試。如果變量引用的是邏輯量,可以采用等價(jià)類測(cè)試用例和決策表測(cè)試。
結(jié)構(gòu)性測(cè)試 靜態(tài)測(cè)試: 括代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。它可以由人工進(jìn)行,充分發(fā)揮人的邏輯思維優(yōu)勢(shì),也可以借助軟件工具自動(dòng)進(jìn)行。
檢查項(xiàng): * 代碼風(fēng)格和規(guī)則審核 * 程序設(shè)計(jì)和結(jié)構(gòu)的審核 * 業(yè)務(wù)邏輯的審核
靜態(tài)白盒測(cè)試是在不執(zhí)行的條件下有條理地仔細(xì)審查軟件設(shè)計(jì)、體系結(jié)構(gòu)和代碼,從而找出軟件缺陷的過程。好處:
盡早發(fā)現(xiàn)軟件缺陷。
dd路徑測(cè)試
該測(cè)試方法的突出特點(diǎn),是它們都基于被測(cè)程序的源代碼,而不是基于定義。由于這種絕對(duì)化的基礎(chǔ),結(jié)構(gòu)性測(cè)試方法支持嚴(yán)格定義、數(shù)據(jù)分析和精確度量。
程序圖 定義
給定一個(gè)采用命令式程序設(shè)計(jì)語言編寫的程序,其程序圖是一種有向圖,其中:節(jié)點(diǎn)是程序語句,邊表示控制流。從節(jié)點(diǎn)i到節(jié)點(diǎn)j有一條邊,當(dāng)且僅當(dāng)對(duì)應(yīng)節(jié)點(diǎn)j的語句可以立即在節(jié)點(diǎn)i對(duì)應(yīng)的語句之后執(zhí)行。
dd路徑
決策到?jīng)Q策的路徑(dd-路徑)是指語句的一個(gè)序列,從決策語句的“出路”開始,到下一個(gè)決策語句的“入路”結(jié)束。在這種序列中沒有內(nèi)部分支,因此對(duì)應(yīng)的節(jié)點(diǎn)像排列起來的一行多米諾骨牌,當(dāng)?shù)谝粔K牌推倒后,序列中的其他牌也會(huì)倒下。
鏈?zhǔn)且粭l起始節(jié)點(diǎn)和終止節(jié)點(diǎn)不同的路徑,并且每個(gè)節(jié)點(diǎn)都滿足內(nèi)度=1、外度=1。初始節(jié)點(diǎn)與鏈中的所有其他節(jié)點(diǎn)有2-連接,不會(huì)存在1-連接或3-連接。(p55, 4.2.6)有一種長度為0的退化鏈情況,即鏈有一個(gè)節(jié)點(diǎn)和0條邊組成。
dd路徑測(cè)試定義 定義
dd-路徑是程序圖中的一條鏈,使得:
情況1:由一個(gè)節(jié)點(diǎn)組成,內(nèi)度=0。
情況2:由一個(gè)節(jié)點(diǎn)組成,外度=0。
情況3:由一個(gè)節(jié)點(diǎn)組成,內(nèi)度≥2或外度≥2。
情況4:由一個(gè)節(jié)點(diǎn)組成,內(nèi)度=1并且外度=1。
情況5:長度≥1的最大鏈。
對(duì)于給定的程序,可以使用多種不同的程序圖,所有這些程序圖都可以簡化為惟一的dd-路徑。
dd-路徑圖定義
給定采用命令式語言編寫的一段程序,其dd-路徑圖是有向圖。其中,節(jié)點(diǎn)表示其程序圖的dd-路徑,邊表示連續(xù)dd-路徑之間的控制流。
實(shí)際上dd-路徑圖是一種壓縮圖,在這種壓縮圖中,2-連接組件被壓縮為對(duì)應(yīng)情況5 dd-路徑的單節(jié)點(diǎn)。
如果每條dd-路徑都被遍歷(c1指標(biāo)),則我們知道每個(gè)判斷分支都被執(zhí)行,這要求遍歷dd-路徑圖中的每一條邊。
較長的dd-路徑一般代表復(fù)雜計(jì)算,可以合理地認(rèn)為是單獨(dú)的函數(shù)。對(duì)于這樣的dd-路徑,應(yīng)用多個(gè)功能性測(cè)試可能比較合適,尤其是邊界值和特殊值。
dd-路徑的依賴對(duì)偶
dd-路徑對(duì)偶之間的最常見得依賴關(guān)系是定義/引用關(guān)系,其中變量在一個(gè)dd-路徑中定義(接受值),在另一個(gè)dd-路徑中引用。這種依賴關(guān)系的重要性在于,它們與不可行路徑問題有關(guān)。
定義/使用測(cè)試覆蓋指標(biāo)
t是擁有變量集合v的程序p的程序圖g(p)中的一個(gè)路徑集合。定義
集合t滿足程序p的全定義準(zhǔn)則,當(dāng)且僅當(dāng)所有變量v∈v,t包含從v的每個(gè)定義節(jié)點(diǎn)到v的一個(gè)使用的定義清除路徑。定義
集合t滿足程序p的全使用準(zhǔn)則,當(dāng)且僅當(dāng)所有變量v∈v,t包含從v的每個(gè)定義節(jié)點(diǎn)到v的所有使用,以及到所有use(v,n)后續(xù)節(jié)點(diǎn)的定義清除路徑。定義
集合t滿足程序p全謂詞使用/部分計(jì)算使用準(zhǔn)則,當(dāng)且僅當(dāng)所有變量v∈v,t包含從v的每個(gè)定義節(jié)點(diǎn)到v的所有謂詞使用的定義清除路徑,并且如果v的一個(gè)定義沒有謂詞使用,則定義清除路徑導(dǎo)致至少一個(gè)計(jì)算使用。定義
集合t滿足程序p全計(jì)算使用/部分謂詞使用準(zhǔn)則,當(dāng)且僅當(dāng)所有變量v∈v,t包含從v的每個(gè)定義節(jié)點(diǎn)到v的所有計(jì)算使用的定義清除路徑,并且如果v的一個(gè)定義沒有計(jì)算使用,則定義清除路徑導(dǎo)致至少一個(gè)謂詞使用。定義
集合t滿足程序p的全定義-使用路徑準(zhǔn)則,當(dāng)且僅當(dāng)所有變量v∈v,t包含從v的每個(gè)定義節(jié)點(diǎn)到v的所有使用,以及到所有use(v,n)后續(xù)節(jié)點(diǎn)的定義清除路徑,并且這些路徑要么有一次的環(huán)經(jīng)過,要么沒有環(huán)路。
單元測(cè)試
單元測(cè)試時(shí)對(duì)軟件基本組成單元進(jìn)行的測(cè)試,這里的基本單元不一定是指一個(gè)具體的函數(shù)或一個(gè)類的方法。
單元具有一些基本屬性,如:明確的功能、規(guī)格定義,與其他部分明確的接口定義等,可以清晰地與同一程序的其他部分單元?jiǎng)澐珠_來。
單元測(cè)試的目的
驗(yàn)證代碼是與設(shè)計(jì)相符合的; 跟蹤需求和設(shè)計(jì)的實(shí)現(xiàn);
發(fā)現(xiàn)設(shè)計(jì)和需求中存在的錯(cuò)誤; 發(fā)現(xiàn)在編碼過程中引入的錯(cuò)誤。
對(duì)單元測(cè)試的錯(cuò)誤認(rèn)識(shí)
單元測(cè)試?yán)速M(fèi)了太多的時(shí)間;
單元測(cè)試僅僅是證明這些代碼做了什么; 很棒的編程人員的工作不需要單元測(cè)試; 不管怎樣,集成測(cè)試將會(huì)抓住所有的bug; 單元測(cè)試的成本效率不高。
單元測(cè)試應(yīng)堅(jiān)持的原則
對(duì)全新的代碼或修改過的代碼進(jìn)行單元測(cè)試; 對(duì)被測(cè)試單元需達(dá)到的一定的代碼覆蓋率要求; 當(dāng)程序進(jìn)行了修改,要進(jìn)行回歸測(cè)試。
集成測(cè)試
也叫做組裝測(cè)試、聯(lián)合測(cè)試、子系統(tǒng)測(cè)試和部件測(cè)試。是在單元測(cè)試的基礎(chǔ)上,將所有模塊按照概要設(shè)計(jì)要求組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測(cè)試。
集成測(cè)試關(guān)注的重點(diǎn)
在把各個(gè)模塊連接起來時(shí),穿越模塊接口的數(shù)據(jù)是否會(huì)丟失。各個(gè)子功能組合起來,能否達(dá)到預(yù)期要求的父功能。
一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不利的影響。全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題,會(huì)不會(huì)被異常修改。
單個(gè)模塊的誤差積累起來,是否會(huì)放大,從而達(dá)到不可以接受的程度。
集成測(cè)試策略
功能分解法,調(diào)用圖法,mm路徑法
基于功能分解的集成測(cè)試:
自頂向下集成,自底向上集成,三明治集成,大爆炸集成
自頂向下集成
自頂向下集成從主程序(樹根)開始。所有被主程序調(diào)用的下層單元都作為“樁”出現(xiàn),樁就是模擬被調(diào)用單元的一次性代碼。
自底向上集成
自底向上集成是自頂向下順序的“鏡像”,不同的是,樁由模擬功能分解樹上一層單元的驅(qū)動(dòng)器模塊替代。需要編寫驅(qū)動(dòng)器。
三明治集成
三明治是自頂向下和自底向上集成的組合。
樁和驅(qū)動(dòng)器的開發(fā)工作都比較小,不過代價(jià)是有大爆炸的后果。
大爆炸集成
這種方法最容易:這種集成將所有單元在一起編譯并進(jìn)行一次性測(cè)試。這種方法的缺點(diǎn)是,當(dāng)發(fā)現(xiàn)缺陷時(shí),沒有多少線索能夠用來幫助確定缺陷位置。
因果圖是從用自然語言書寫的程序規(guī)格說明的描述中找到因(輸入條件)和果(輸出或程序狀態(tài)的改變),通過因果圖轉(zhuǎn)化為判別表。因果圖方法最終生成的就是判定表。因果圖的適用范圍
如果在測(cè)試時(shí)必須考慮輸入條件的各種組合,可使用一種適合于描述對(duì)于多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來設(shè)計(jì)測(cè)試用例,這就需要利用因果圖。因果圖方法最終生成的就是判定表。它適合于檢查程序輸入條件的各種組合情況。
用因果圖生成測(cè)試用例的基本步驟:(1)分析軟件規(guī)格說明描述中,哪些是原因(即輸入條件或輸入條件的等價(jià)類),哪些是結(jié)果(即輸出條件),并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。
(2)分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)果之間,原因與原因之間對(duì)應(yīng)的是什么關(guān)系? 根據(jù)這些關(guān)系,畫出因果圖。
(3)由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號(hào)標(biāo)明約束或限制條件。(4)把因果圖轉(zhuǎn)換成判定表。
(5)把判定表的每一列拿出來作為依據(jù),設(shè)計(jì)測(cè)試用例。