![軟件測(cè)試課程設(shè)計(jì)報(bào)告書_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/12/7ce48e53-f516-40f7-9556-69c5848f7fbb/7ce48e53-f516-40f7-9556-69c5848f7fbb1.gif)
![軟件測(cè)試課程設(shè)計(jì)報(bào)告書_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/12/7ce48e53-f516-40f7-9556-69c5848f7fbb/7ce48e53-f516-40f7-9556-69c5848f7fbb2.gif)
![軟件測(cè)試課程設(shè)計(jì)報(bào)告書_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/12/7ce48e53-f516-40f7-9556-69c5848f7fbb/7ce48e53-f516-40f7-9556-69c5848f7fbb3.gif)
![軟件測(cè)試課程設(shè)計(jì)報(bào)告書_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/12/7ce48e53-f516-40f7-9556-69c5848f7fbb/7ce48e53-f516-40f7-9556-69c5848f7fbb4.gif)
![軟件測(cè)試課程設(shè)計(jì)報(bào)告書_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/12/7ce48e53-f516-40f7-9556-69c5848f7fbb/7ce48e53-f516-40f7-9556-69c5848f7fbb5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、大學(xué)課 程 設(shè) 計(jì) 說 明 書課程名稱 軟件測(cè)試技術(shù)課程設(shè)計(jì) 題 目 CppCheck測(cè)試 院 系 信息工程學(xué)院 班 級(jí) 計(jì)科131 學(xué)生姓名 指導(dǎo)教師 日 期 2016.7.5 課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)題目CppCheck測(cè)試姓名學(xué)號(hào)1專業(yè)班級(jí)計(jì)算機(jī)組別組長(zhǎng)同組成員 指導(dǎo)教師課程設(shè)計(jì)目的通過本課程設(shè)計(jì),深刻理解和掌握軟件測(cè)試的基本方法、基本技術(shù)和常用測(cè)試工具,熟練掌握測(cè)試用例的設(shè)計(jì),同時(shí)進(jìn)一步提高學(xué)生對(duì)于復(fù)雜程序的編寫能力,為學(xué)生將來從事實(shí)際軟件測(cè)試工作和進(jìn)一步深入研究打下堅(jiān)實(shí)的理論基礎(chǔ)和實(shí)踐基礎(chǔ)。課程設(shè)計(jì)環(huán)境硬件:裝有windows操作系統(tǒng)的計(jì)算機(jī)軟件:CppCheck課程設(shè)計(jì)任務(wù)和要求任務(wù)
2、要求:1理解CPPCheck軟件的基本功能和特征;2. 掌握軟件測(cè)試方法在CPPCheck測(cè)試中的運(yùn)用;3完成CPPCheck相關(guān)任務(wù)模塊測(cè)試用例的設(shè)計(jì);4實(shí)現(xiàn)CPPCheck的核心功能的測(cè)試;5撰寫測(cè)試CPPCheck軟件的相關(guān)文檔;6撰寫出符合要求的課程設(shè)計(jì)報(bào)告。參考文獻(xiàn)1.鄭人杰,軟件測(cè)試技術(shù),清華大學(xué)出版社2.徐仁佐,軟件可靠性技術(shù),清華大學(xué)出版社3.林寧、孟慶余,軟件測(cè)試使用指南,清華大學(xué)出版社4.古樂、史九林,軟件測(cè)試技術(shù)概論,清華大學(xué)出版社時(shí) 間 進(jìn) 度 安 排序號(hào)起止日期工 作 內(nèi) 容15.4學(xué)生熟悉題目背景,選題25.5-6.3CppCheck測(cè)試需求分析36.4-6.9Cp
3、pCheck測(cè)試設(shè)計(jì)46.10-6.15CppCheck測(cè)試56.16-6.22撰寫上交課程設(shè)計(jì)報(bào)告任課教師: 時(shí)間:2016.7.5目錄一任務(wù)的描述11.1目標(biāo)11.2測(cè)試對(duì)象介紹:11.2.1 概述:11.2.2介紹:21.2.3 基本使用:21.2.4 高級(jí)使用:21.4運(yùn)行環(huán)境:51.5條件與限制:5二測(cè)試設(shè)計(jì)521測(cè)試階段的選擇:52.1.1單元測(cè)試52.1.2集成測(cè)試72.1.3系統(tǒng)測(cè)試(System Testing):722測(cè)試方法的選擇:72.3 選擇工具:82.4設(shè)計(jì)測(cè)試用例:92.4.1靜態(tài)測(cè)試9三測(cè)試執(zhí)行和結(jié)果103.1白盒測(cè)試103.2黑盒測(cè)試16四測(cè)試的結(jié)果19五.
4、感想認(rèn)識(shí)20六參考文獻(xiàn)21歡迎下載課程設(shè)計(jì)報(bào)告文檔一任務(wù)的描述1.1目標(biāo)測(cè)試的目的就是希望能以最少的人力和時(shí)間發(fā)現(xiàn)潛在的各種錯(cuò)誤和缺陷。應(yīng)根據(jù)開發(fā)各階段的需求、設(shè)計(jì)等文檔或程序的內(nèi)部結(jié)構(gòu)精心設(shè)計(jì)測(cè)試用例,并利用這些實(shí)例來運(yùn)行程序,以便發(fā)現(xiàn)錯(cuò)誤。信息系統(tǒng)測(cè)試應(yīng)包括軟件測(cè)試、硬件測(cè)試和網(wǎng)絡(luò)測(cè)試。硬件測(cè)試、網(wǎng)絡(luò)測(cè)試可以根據(jù)具體的性能指標(biāo)來進(jìn)行,此處所說的測(cè)試更多的是指軟件測(cè)試。一是對(duì)質(zhì)量或可接受性做出判斷:通過測(cè)試給出所測(cè)系統(tǒng)總體質(zhì)量現(xiàn)狀,譬如滿足工件的出入口標(biāo)準(zhǔn),達(dá)到發(fā)布要求,遺留缺陷或者風(fēng)險(xiǎn)二是發(fā)現(xiàn)問題,而且盡可能早一些,并確保其得以修復(fù):目的是要發(fā)現(xiàn)問題,就需要使用不同的方法類型進(jìn)行測(cè)試,盡可
5、能早的發(fā)現(xiàn)問題,就是盡快的參與測(cè)試,并提高測(cè)試的效率和有效性,使嚴(yán)重的問題盡早被發(fā)現(xiàn);確保缺陷得以修復(fù),需要說明的是不是所有的缺陷都可以被修復(fù)的,那么我們要在提交缺陷單的時(shí)候自己首先已經(jīng)有一個(gè)尺度,哪些是必須解決的,哪些是有時(shí)間可以解決的,那些是可以推遲到下個(gè)版本,哪些是無法解決但是要提出來的,跟自己的團(tuán)隊(duì)磨合久了,測(cè)試人員心理這個(gè)尺度應(yīng)該是很清楚的,再則就是注意與開發(fā)之間的溝通技巧和專業(yè)度,特別在國(guó)內(nèi)團(tuán)隊(duì),隨意性比較大,某個(gè)缺陷的解決很可能是因?yàn)殚_發(fā)心情好或者跟開發(fā)者交情好,或者開發(fā)覺得你夠?qū)I(yè)。三是改進(jìn)測(cè)試過程或者軟件開發(fā)過程:通過測(cè)試,對(duì)一些測(cè)試數(shù)據(jù)的度量和報(bào)告,對(duì)團(tuán)隊(duì)合作上一些問題的發(fā)
6、現(xiàn)和總結(jié),可以反過來為測(cè)試過程和開發(fā)過程的改進(jìn)提供依據(jù),從而促進(jìn)團(tuán)隊(duì)朝著更積極有效的方向發(fā)展??傊龅揭宰钌俚娜肆Α⑽锪?、時(shí)間找出軟件潛在的錯(cuò)誤和缺陷。1.2測(cè)試對(duì)象介紹:1.2.1 概述:Cppcheck是一種C/C+代碼缺陷靜態(tài)檢查工具。不同于C/C+編譯器及其它分析工具,Cppcheck只檢查編譯器檢查不出來的bug,不檢查語法錯(cuò)誤。1.2.2介紹:cppcheck 是一個(gè)靜態(tài)代碼檢查工具,支持c, c+ 代碼;作為編譯器的一種補(bǔ)充檢查,cppcheck對(duì)產(chǎn)品的源代碼執(zhí)行嚴(yán)格的邏輯檢查。 執(zhí)行的檢查包括:1. 自動(dòng)變量檢查2. 數(shù)組的邊界檢查3. class類檢查4. 過期的函數(shù),廢棄
7、函數(shù)調(diào)用檢查5. 異常內(nèi)存使用,釋放檢查6. 內(nèi)存泄漏檢查,主要是通過內(nèi)存引用指針7. 操作系統(tǒng)資源釋放檢查,中斷,文件描述符等8. 異常STL 函數(shù)使用檢查9. 代碼格式錯(cuò)誤,以及性能因素檢查1.2.3 基本使用: 首先下載安裝,例如我的是安裝在C:CpptestCppcheck 目錄下,要使用它必須先轉(zhuǎn)到該路徑下:1.檢查一個(gè)文件:cppcheck filepath例如,我檢查一個(gè)file1.c的文件代碼,在命令工具中可以輸入:D:CpptestCppcheckcppcheck file1.c 來審查。2.檢查一個(gè)文件夾中的所有文件: cppcheck filspath例如,我檢查file
8、s文件下的所有文件:C:CpptestCppcheckcppcheck files3. 格式化輸出內(nèi)容格式:C:CpptestCppcheckcppcheck -enable=all -template=vs C:files.c 2C:Cpptesterr.txt-template=vs 就是指定以vs這種格式輸出,還可以自定義輸出格式, 1.2.4 高級(jí)使用:1.xml 輸出a.使用方式:cppcheck -xml-version=2 foo.cppb.error的組成元素:id:error的idseverity:error的性質(zhì)(error、warning.)msg:error的具體信息(
9、短格式)verbose:error的信息(長(zhǎng)格式)c.location的組成元素:file:含有相對(duì)或者絕對(duì)路徑的文件名line:行數(shù)msg:消息描述 2.改良輸出結(jié)果cppcheck -template=vs path (Visual Studio 兼容模式)cppcheck -template=gcc path (Gcc兼容模式)cppcheck -template=file,line,severity,id,message3.輸出過濾器(選特定的錯(cuò)誤信息輸出)命令行模式:cppcheck -suppress=memleak:src/file1.cpp src/使用文件模式(將過濾規(guī)則存到
10、文件中)cppcheck-suppressions suppressions.txt src/1.3. 任務(wù)描述: 1理解CPPCheck軟件的基本功能和特征;2. 掌握軟件測(cè)試方法在CPPCheck測(cè)試中的運(yùn)用;3完成CPPCheck相關(guān)任務(wù)模塊測(cè)試用例的設(shè)計(jì);4實(shí)現(xiàn)CPPCheck的核心功能的測(cè)試;5撰寫測(cè)試CPPCheck軟件的相關(guān)文檔;6撰寫出符合要求的課程設(shè)計(jì)報(bào)告。各種注冊(cè)的check子類及ruleC+ codecppcheck系統(tǒng)結(jié)構(gòu)圖: Sotting tokensCppcheck核心代碼解析錯(cuò)誤輸出檢查錯(cuò)誤報(bào)告輸出ErrorLogger參數(shù)分析1.4運(yùn)行環(huán)境:硬件:裝有wind
11、ows操作系統(tǒng)的計(jì)算機(jī)測(cè)試工具:CppCheck Quick Test Professional VC+6.01.5條件與限制:條件:被測(cè)試代碼的路徑必須是全英文,內(nèi)存要?jiǎng)討B(tài)分配限制:只能執(zhí)行C/C+源代碼,該軟件只能進(jìn)行靜態(tài)檢測(cè)二測(cè)試設(shè)計(jì)21測(cè)試階段的選擇:2.1.1單元測(cè)試(1)定義:?jiǎn)卧獪y(cè)試(又稱為模塊測(cè)試)是針對(duì)程序模塊軟件設(shè)計(jì)的最小單位)來進(jìn)行正確性檢驗(yàn)的測(cè)試工作。程序單元是應(yīng)用的最小可測(cè)試部件。在過程化編程中,一個(gè)單元就是單個(gè)程序、函數(shù)、過程等;對(duì)于面向?qū)ο缶幊?,最小單元就是方法,包括基類(超類)、抽象類、或者派生類(子類)中的方法。?)單元測(cè)試任務(wù)包括:1模塊接口測(cè)試;2模塊局
12、部數(shù)據(jù)結(jié)構(gòu)測(cè)試;3模塊邊界條件測(cè)試;4模塊中所有獨(dú)立執(zhí)行通路測(cè)試;5模塊的各條錯(cuò)誤處理通路測(cè)試。1、 單元的基本屬性:1.明確的功能 2.可定義的規(guī)格 3.與其他單元接口的清晰劃分2、 單元測(cè)試的目的: 在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤,主要是基于白盒測(cè)試。1.驗(yàn)證代碼是與設(shè)計(jì)相符合的;2.發(fā)現(xiàn)設(shè)計(jì)和需求中存在的錯(cuò)誤;3.發(fā)現(xiàn)在編碼過程中引入的錯(cuò)誤。(和設(shè)計(jì)不相符或和設(shè)計(jì)相符,但是由于編碼疏漏引起)3、 單元測(cè)試關(guān)注的重點(diǎn):1.出錯(cuò)處理、2.單元接口、3.局部數(shù)據(jù)結(jié)構(gòu)、4.獨(dú)立路徑、5.邊界條件 4、 單元測(cè)試的主要關(guān)注點(diǎn):1.參數(shù)的屬性、順序、個(gè)數(shù)是否與LLD一致2.不能修改只做輸入用的
13、形參,否則可能導(dǎo)致數(shù)據(jù)的錯(cuò)誤修改3.約束條件是否通過形參來傳送5、驅(qū)動(dòng)和樁的功能: 1. 驅(qū)動(dòng)單元:被測(cè)函數(shù)的主函數(shù),能接受輸入數(shù)據(jù),輸出實(shí)際測(cè)試結(jié)果2.樁單元:用來代替所測(cè)單元調(diào)用的子單元6、單元測(cè)試策略:孤立的測(cè)試策略、自頂向下、自底向上的單元測(cè)試策略1) 孤立的測(cè)試策略: 方法:不考慮每個(gè)模塊與其他模塊之間的關(guān)系,為每個(gè)模塊設(shè)計(jì)樁模塊和驅(qū)動(dòng)模塊。每個(gè)模塊進(jìn)行獨(dú)立的單元測(cè)試。 優(yōu)點(diǎn):該方法是最簡(jiǎn)單,最容易操作的??梢赃_(dá)到高的結(jié)構(gòu)覆蓋率。該方法是純粹的單元測(cè)試。 缺點(diǎn):樁函數(shù)和驅(qū)動(dòng)函數(shù)工作量很大,效率低。2) 自頂向下的單元測(cè)試策略: 方法:先對(duì)最頂層的單元進(jìn)行測(cè)試,把頂層所調(diào)用的單元做成樁
14、模塊。其次對(duì)第二層進(jìn)行測(cè)試,使用上面已測(cè)試的單元做驅(qū)動(dòng)模塊。如此類推直到測(cè)試完所有模塊。 優(yōu)點(diǎn):可以節(jié)省驅(qū)動(dòng)函數(shù)的開發(fā)工作量,測(cè)試效率較高。 缺點(diǎn):隨著被測(cè)單元一個(gè)一個(gè)被加入,測(cè)試過程將變得越來越復(fù)雜,并且開發(fā)和維護(hù)的成本將增加。3) 自底向上的單元測(cè)試策略: 方法:先對(duì)模塊調(diào)用層次圖上最低層的模塊進(jìn)行單元測(cè)試,模擬調(diào)用該模塊的模塊做驅(qū)動(dòng)模塊。然后再對(duì)上面一層做單元測(cè)試,用下面已被測(cè)試過的模塊做樁模塊。以此類推,直到測(cè)試完所有模塊。 優(yōu)點(diǎn):可以節(jié)省樁函數(shù)的開發(fā)工作量,測(cè)試效率較高。 缺點(diǎn):不是純粹的單元測(cè)試,底層函數(shù)的測(cè)試質(zhì)量對(duì)上層函數(shù)的測(cè)試將產(chǎn)生很大的影響。4、 單元測(cè)試的四個(gè)階段: 測(cè)試計(jì)
15、劃:完成單元測(cè)試計(jì)劃; 測(cè)試設(shè)計(jì):完成單元測(cè)試方案; 測(cè)試實(shí)現(xiàn):完成單元測(cè)試用例、單元測(cè)試規(guī)程、單元測(cè)試腳本及數(shù)據(jù)文件; 測(cè)試執(zhí)行:執(zhí)行單元測(cè)試用例,修改發(fā)現(xiàn)的問題并進(jìn)行回歸測(cè)試,提交單元測(cè)試報(bào)告。2.1.2集成測(cè)試1. 集成測(cè)試的目的:確保各組件組合在一起后能夠按照既定意圖寫作運(yùn)行,并確保增量的行為正確(屬于灰盒測(cè)試)1) 驗(yàn)證接口是否與設(shè)計(jì)相符2) 發(fā)現(xiàn)設(shè)計(jì)和需求中存在的錯(cuò)誤2. 集成測(cè)試關(guān)注的重點(diǎn):?jiǎn)卧g的接口、集成后的功能3. 集成測(cè)試的層次:模塊內(nèi)集成、子系統(tǒng)內(nèi)集成、子系統(tǒng)間集成4. 集成測(cè)試策略:1) 大爆炸集成2) 自頂向下集成3) 自底向上集成4) 三明治(混合式)集成5) 基
16、干集成6) 分層集成7) 基于功能的集成8) 基于消息的集成9) 基于進(jìn)度的集成10) 基于風(fēng)險(xiǎn)的集成2.1.3系統(tǒng)測(cè)試(System Testing):系統(tǒng)測(cè)試,是將通過確認(rèn)測(cè)試的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其它系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試的目的在于通過與系統(tǒng)的需求定義作比較, 發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合或與之矛盾的地方。1. 系統(tǒng)測(cè)試目的:1) 通過與需求做比較,發(fā)現(xiàn)與系統(tǒng)定義不符合或與之矛盾的地方2) 系統(tǒng)測(cè)試的用例應(yīng)根據(jù)需求分析說明書來設(shè)計(jì),并在實(shí)際使用環(huán)境下運(yùn)行2.
17、 系統(tǒng)測(cè)試對(duì)象1) 軟硬件集合在一起的系統(tǒng)2) 驗(yàn)證時(shí)應(yīng)盡可能模擬實(shí)際的運(yùn)行環(huán)境與條件3. 系統(tǒng)測(cè)試常用類型:功能、性能、壓力、容量、安全性、GUI、可用性、安裝、配置、異常(恢復(fù)性)、備份、健壯性、文檔、在線幫助、網(wǎng)絡(luò)、穩(wěn)定性測(cè)試22測(cè)試方法的選擇:同行評(píng)審的概念 :同行評(píng)分是一種依據(jù)程序整體質(zhì)量,可維護(hù)性、可擴(kuò)展性、易用性和清晰性對(duì)匿名的 程序進(jìn)行技術(shù)評(píng)價(jià)的技術(shù)。改技術(shù)的目的是為程序員提供自我評(píng)價(jià)的手段。 2、實(shí)施過程: 選出一名程序員來擔(dān)任這個(gè)評(píng)分過程的管理員,管理員又會(huì)挑選出大約220名參與者,保持匿名,這些參與者否應(yīng)具有相似的背景要求每名參與者都挑選出兩個(gè)由自己編寫的程序以供評(píng)審。其
18、中的一個(gè)程序應(yīng)是參與者自認(rèn)為能代表其自身能力的最好的作品,而了另一個(gè)則是參與者自認(rèn)為質(zhì)量較差的作品。 當(dāng)所有程序都收集完畢后,就將這些程序隨即分發(fā)給參與者。沒名參與者拿到4個(gè)程序進(jìn)行評(píng)審,其中的兩個(gè)是“最好”的程序,另外兩個(gè)則是相對(duì)“較差”的程序,單評(píng)審人自己并不知道。每名參與者沒評(píng)審一個(gè)程序得花費(fèi)30分鐘,評(píng)審?fù)旰筇顚懸粡堅(jiān)u價(jià)表。所有4個(gè)程序都評(píng)審?fù)旰?,參與者對(duì)4個(gè)程序的相對(duì)質(zhì)量進(jìn)行分級(jí)。評(píng)價(jià)表要求評(píng)審人用從17的分值對(duì)諸如下面的問題進(jìn)行回答: 1)程序是夠易于理解?2)高層次的設(shè)計(jì)是夠可見且合理?3)低層次的設(shè)計(jì)是否可見且合理? 4)修改此程序?qū)υu(píng)審者而言是否容易?5)評(píng)審者是否會(huì)以編寫出
19、該程序而驕傲?還要要求評(píng)審人給出總的評(píng)價(jià)和建議的改進(jìn)意見。評(píng)審結(jié)束后,參與者會(huì)收到自己的那兩個(gè)程序的匿名評(píng)價(jià)愛表,此外還會(huì)收到一個(gè)帶統(tǒng)計(jì)的總結(jié),說明在所有的程序中其程序的整體和具體得分情況,以及他對(duì)其他程序的評(píng)價(jià)愛與其他評(píng)審人同意程序打分的比較分析情況。評(píng)審目的:讓程序員對(duì)自身的編程技術(shù)進(jìn)行自我評(píng)價(jià)。2.3 選擇工具:請(qǐng)描述用QTP(Quick Test Professional)進(jìn)行功能測(cè)試的步驟:1.創(chuàng)建測(cè)試或建組 首先通過在應(yīng)用程序或網(wǎng)站上錄制會(huì)話,活著建立對(duì)象庫并使用關(guān)鍵字驅(qū)動(dòng)功能向關(guān)鍵字視圖中手動(dòng)添加步驟來創(chuàng)建測(cè)試或組件。在QTP里面我們可以通過兩種方式添加步驟來創(chuàng)建測(cè)試或組件: 在
20、應(yīng)用程序或網(wǎng)站上錄制會(huì)話。 建立對(duì)象庫并使用這些對(duì)象在關(guān)鍵字視圖或?qū)<乙晥D中手動(dòng)添加步驟 然后在測(cè)試或組件中插入檢查點(diǎn),檢查頁面、對(duì)象或文本字符串中的特定值或特征,通過它可以表示網(wǎng)站或應(yīng)用程序是否正常運(yùn)行。 2.運(yùn)行測(cè)試和組建 控制運(yùn)行會(huì)話,幫助標(biāo)識(shí)和消除測(cè)試或組件中的缺陷。使用“單步執(zhí)行”、“單步跳過”和“單步退出”命令逐步運(yùn)行測(cè)試或組件,或設(shè)置斷點(diǎn)使測(cè)試或組件在預(yù)訂點(diǎn)暫停。 3.分析結(jié)果 在運(yùn)行測(cè)試或組件之后,通過兩種方式可以查看其結(jié)果:在“結(jié)果”窗口中查看;自動(dòng)報(bào)告在運(yùn)行對(duì)話過程中檢測(cè)到的缺陷,可能的話并上報(bào)到其他缺陷管理產(chǎn)品中。2.4設(shè)計(jì)測(cè)試用例: 2.4.1靜態(tài)測(cè)試測(cè)試計(jì)劃、測(cè)試人員
21、、測(cè)試方式和測(cè)試結(jié)果1、進(jìn)度/工作量度量任務(wù)計(jì)劃開始計(jì)劃結(jié)束實(shí)際開始實(shí)際結(jié)束工作量(人時(shí))測(cè)試計(jì)劃與設(shè)計(jì)2016-6-102016-6-222016-6-82016-6-204測(cè)試執(zhí)行2016-6-122016-6-222016-6-132016-6-204測(cè)試總結(jié)2016-6-202016-6-222016-6-202016-6-224(1) 代碼審查:代碼審查是通過代碼走讀的方式來實(shí)現(xiàn)的。(2) 代碼走讀是開發(fā)人員在對(duì)某個(gè)模塊的代碼(必須編譯通過)依據(jù)設(shè)計(jì)說明書完成編碼后,進(jìn)行的代碼評(píng)審活動(dòng)。代碼走讀前要在內(nèi)部統(tǒng)一標(biāo)準(zhǔn),明確質(zhì)量目標(biāo)。評(píng)審中,除了看編碼是否緊扣設(shè)計(jì)外,走讀還應(yīng)兼顧三個(gè)層面:
22、第一個(gè)層可稱之為單元走讀,關(guān)注的是“單元”,一般是一個(gè)方法或一個(gè)類,需要查找代碼層面的錯(cuò)誤,比如數(shù)據(jù)庫網(wǎng)絡(luò)資源的回收、一些異常的捕捉、空指針的檢查及關(guān)鍵字的使用是否正確等;第二個(gè)層面可稱之為集成走讀,關(guān)注的是接口和流程,包括傳人的參數(shù)檢查、返回值檢查及流程能否順利地進(jìn)行和正確串聯(lián)等;第三個(gè)層面可稱之為系統(tǒng)走讀,關(guān)注的是功能層面和業(yè)務(wù)邏輯,這時(shí)發(fā)現(xiàn)更多的應(yīng)該是邏輯錯(cuò)誤和功能缺陷。當(dāng)然,在走讀過程中這三個(gè)層面不是截然分開的,很多時(shí)候是并行的、互相交織和滲透的。代碼走讀的另一個(gè)重要內(nèi)容是看代碼是否遵守編程規(guī)范引,是否具有可讀性和可維護(hù)性,注釋是否充足等。按編程規(guī)范編碼對(duì)提高代碼的可讀性以及降低編碼的
23、出錯(cuò)率至關(guān)重要,在大型項(xiàng)目中,具備可讀性、規(guī)范性的代碼更是日后進(jìn)行有效維護(hù)的保障。因此,代碼走讀不僅可以保證代碼的質(zhì)量,更能有效地促進(jìn)整個(gè)項(xiàng)目的編碼水平。(3)代碼走讀:代碼檢查是通過桌面檢查、走查方式和代碼審查進(jìn)行的檢查: 包括: 檢查代碼和設(shè)計(jì)是否一致; 代碼是否對(duì)遵循標(biāo)準(zhǔn)、是否可讀; 代碼邏輯表達(dá)是否正確; 代碼結(jié)構(gòu)是否合理; 程序編寫與編寫標(biāo)準(zhǔn)是否符合; 程序中是否有不安全、不明確和模糊的部分; 編程風(fēng)格是否符合要求。 檢查變量的交叉引用表:是否有未說明的變量和違反了類型規(guī)定的變量。 檢查標(biāo)號(hào)的交叉引用表:驗(yàn)證所有標(biāo)號(hào)是否有正確。 檢查子程序、宏、函數(shù):驗(yàn)證每次調(diào)用與所調(diào)用位置是否正確
24、,調(diào)用的子程序、宏、函數(shù)是否存在,參數(shù)是否一致。 檢查全部等價(jià)變量的類型的一致性。 確認(rèn)常量的取值和數(shù)制、數(shù)據(jù)類型。 選擇、激活路徑:在設(shè)計(jì)控制流圖中選擇某條路徑,到實(shí)際的程序中激活這條路徑,如果不能激活,則程序可能有錯(cuò)。 對(duì)照程序的規(guī)格說明,詳細(xì)閱讀源代碼,比較實(shí)際的代碼,從差異中發(fā)現(xiàn)程序的問題和錯(cuò)誤。 2代碼檢查方式 桌面檢查 對(duì)源程序代碼進(jìn)行分析、檢驗(yàn),根據(jù)相關(guān)的文檔,檢驗(yàn)程序中是否有錯(cuò)誤的過程。 3. 靜態(tài)結(jié)構(gòu)分析 可以檢查函數(shù)的調(diào)用關(guān)系是否正確; 是否存在孤立的函數(shù)而沒有被調(diào)用; 編碼的規(guī)范性; 資源是否釋放; 數(shù)據(jù)結(jié)構(gòu)是否完整和正確; 是否有死代碼和死循環(huán); 代碼本身是否存在明顯的
25、效率和性能問題; 代碼本身方法,類和函數(shù)的劃分是否清晰,易理解; 代碼本身是否健壯,是否有完善的異常處理和錯(cuò)誤處理。三測(cè)試執(zhí)行和結(jié)果3.1白盒測(cè)試(1) 選擇測(cè)試平臺(tái):VC(原因、優(yōu)缺點(diǎn))原因:VC是我熟悉的C/C+環(huán)境,學(xué)習(xí)C和C+語言都是用的VC,因此這個(gè)環(huán)境我并不陌生,測(cè)試起來相對(duì)壓力較小,并且它本身對(duì)C/C+有很好的兼容性。VC6優(yōu)點(diǎn):a,內(nèi)容少,學(xué)習(xí)成本低。b,常用功能操作簡(jiǎn)單。c,占用資源少。有個(gè)笑話是:?jiǎn)?dòng)VC6后寫了20行代碼,對(duì)方的VS201X還在啟動(dòng)中。d,Win2000和以后的操作系統(tǒng)自帶mfc.dll。VC6缺點(diǎn):a,對(duì)stl支持不友好,VC6是98年,stl成為標(biāo)準(zhǔn)是
26、99年。b,Watch窗口,看到字符串太短。VC7也有這個(gè)問題,但能看到的長(zhǎng)得多。c,VC6不可以附加。比如先啟動(dòng)AutoCAD,再啟動(dòng)VC7調(diào)試。d,調(diào)試時(shí),無法改變常量的值。e,調(diào)試時(shí),無法看到靜態(tài)變量的值。缺點(diǎn): 由于C+是由C語言發(fā)展起來的,也支持C語言的編譯。6.0版本是使用最多的版本,很經(jīng)典。最大的缺點(diǎn)是對(duì)于模版的支持比較差?,F(xiàn)在最新補(bǔ)丁為SP6,推薦安裝,否則易出現(xiàn)編譯時(shí)假死狀態(tài)。僅支持Windows操作系統(tǒng)。目前發(fā)現(xiàn)與windows 7兼容性不好,安裝成功后可能會(huì)出現(xiàn)無法打開cpp文件的現(xiàn)象。實(shí)驗(yàn)?zāi)康模耗苁炀殤?yīng)用白盒測(cè)試技術(shù)設(shè)計(jì)測(cè)試用例白盒測(cè)試原理:已知產(chǎn)品的內(nèi)部工作過程,可以
27、通過測(cè)試證明每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否已經(jīng)過檢查。它是把測(cè)試對(duì)象看作裝在一個(gè)透明的白盒子里,也就是完全了解程序的結(jié)構(gòu)和處理過程。這種方法按照程序內(nèi)部的邏輯測(cè)試程序,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作。其又稱為結(jié)構(gòu)測(cè)試。對(duì)于該實(shí)驗(yàn)的例子給出其流程圖如下圖所示,我們來了解白盒測(cè)試的基本技術(shù)和方法。1) 語句覆蓋測(cè)試用例輸入輸出magic判定M的取值判定N的取值覆蓋路徑x=1,y=112TFabefx=1,y=-10FTacdf2) 判定覆蓋測(cè)試用例輸入輸出magic判定M的取值判定N的取值覆蓋路徑x=1,y=112TFabefx=1,y=-10FTacdf1)
28、語句覆蓋x=1,y=1x=1,y=-12) 判定覆蓋x=1,y=1x=1,y=-1條件覆蓋x=1,y=1x=-1,y=-1。3.程序代碼#include/*static */int sign=0;static char m=T,n=T;/int logicExample(int,int);int logicExample(int x,int y)int magic=0;if(x0&y0)magic=x+y+10;sign+;elsemagic=x+y-10;m=F;if(magic0)magic=0;sign+=2;else n=F;return magic;main()int x,y;/st
29、atic int sign=0;/static char m=T,n=T,char p45=acef,abef,acdf,abdf;cout-n;coutx;couty;coutmagic 已知:0endl;cout-n;cout測(cè)試結(jié)果分別是:n;cout-n;coutx的值 y的值 logic的值 判定M 判定N 覆蓋路徑endl;cout-n;coutx y logicExample(x,y) m;cout n psignendl;4.畫出程序的控制流圖流程圖:3.2黑盒測(cè)試 1)選擇測(cè)試方法 選擇greatCircleDistance()函數(shù)greatCircleDistance()計(jì)
30、算球面距離,輸入的分別為兩個(gè)點(diǎn)的經(jīng)度和緯度以及球的半徑,以下為其源代碼 2) 設(shè)計(jì)測(cè)試用例(用例列表)針對(duì)此函數(shù)我運(yùn)用了等價(jià)類劃分的方法生成JUnit測(cè)試用例總共劃分出25個(gè)用例,等價(jià)類分別是:對(duì)LatitudeS劃分:-90到0,0到90以及不合法輸入;對(duì)LongitudeS劃分:-180到0,0到180以及不合法輸入;對(duì)LatitudeF劃分:-90到0,0到90以及不合法輸入;對(duì)LongitudeF劃分:-180到0,0到180以及不合法輸入;對(duì)半徑R的劃分:大于0以及不合法輸入;以下為具體的測(cè)試用例:LatitudeSLongitudeSLatitudeFLongitudeFR預(yù)期結(jié)果
31、實(shí)際測(cè)試結(jié)果303030301000通過303030-120100115.98通過3030-6030100157.08通過3030-60-12010063.003通過30-603030100131.812通過30-6030-12010089.566通過30-60-6030100112.296通過30-60-60-120100135.256通過-60303030100157.08通過-603030-12010063.003通過-6030-60301000通過-6030-60-120100100.807通過-60-603030100112.296通過-60-6030-120100135.256通過
32、-60-60-603010072.273通過-60-60-60-12010050.536通過軟件測(cè)試報(bào)告:1203060120100拋出異常通過-1203060120100拋出異常通過6030120120100拋出異常通過6030-120120100拋出異常通過303060120100拋出異常通過30-21060120100拋出異常通過3021060120100拋出異常通過303060-210100拋出異常通過303060120100拋出異常通過303060120-100拋出異常通過Bug引入階段由上圖可以看出,主要為前臺(tái)編碼和頁面設(shè)計(jì)方面的 bug,占到了全部 bug 的 2/3。 四測(cè)試的結(jié)果單元測(cè)試的嘗試?yán)镂矣龅搅藥讉€(gè)問題:?jiǎn)栴}1:代碼重復(fù)的問題太多 解決辦法:這個(gè)問題很容易解決,只需要把判斷預(yù)期結(jié)果和實(shí)際結(jié)果的邏輯提取
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版數(shù)學(xué)八年級(jí)上冊(cè)《用坐標(biāo)表示軸對(duì)稱》聽評(píng)課記錄
- 現(xiàn)代物流業(yè)與科技教育的新機(jī)遇
- 物聯(lián)網(wǎng)時(shí)代下的Java嵌入式系統(tǒng)開發(fā)探討
- 2025年度醫(yī)療設(shè)備養(yǎng)護(hù)與故障快速響應(yīng)合同
- 2025年度智能物流配送平臺(tái)建設(shè)合同
- 2025年度大型商業(yè)綜合體消防設(shè)施供水供電合同協(xié)議書
- 生產(chǎn)效率提升的秘訣標(biāo)準(zhǔn)化的現(xiàn)場(chǎng)管理
- 蘇科版數(shù)學(xué)七年級(jí)上冊(cè)聽評(píng)課記錄《6-2角(第2課時(shí))》
- 2025年度荒灘綜合養(yǎng)殖區(qū)特許經(jīng)營(yíng)權(quán)出讓合同
- 電信網(wǎng)絡(luò)與物聯(lián)網(wǎng)的融合發(fā)展趨勢(shì)
- 2024年江蘇省中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點(diǎn)附帶答案
- 臨床思維能力培養(yǎng)
- 人教版高中物理必修第三冊(cè)第十章靜電場(chǎng)中的能量10-1電勢(shì)能和電勢(shì)練習(xí)含答案
- 中國(guó)宗教文化 中國(guó)古代宗教文化的特點(diǎn)及現(xiàn)代意義
- 2024年四川省巴中市級(jí)事業(yè)單位選聘15人歷年高頻難、易錯(cuò)點(diǎn)練習(xí)500題附帶答案詳解
- 《中國(guó)香文化》課件
- 演出經(jīng)紀(jì)人培訓(xùn)
- 蓋房四鄰簽字協(xié)議書范文
- 2024年新人教版七年級(jí)上冊(cè)數(shù)學(xué)教學(xué)課件 第六章 幾何圖形初步 數(shù)學(xué)活動(dòng)
- 《新時(shí)代大學(xué)生勞動(dòng)教育》全套教學(xué)課件
- 2024簡(jiǎn)易租房合同下載打印
評(píng)論
0/150
提交評(píng)論